Skip to content

Instantly share code, notes, and snippets.

@hacklschorsch
Created December 20, 2024 01:10
Show Gist options
  • Save hacklschorsch/ea2ef09f1ab97b38cf41f9ac10264a59 to your computer and use it in GitHub Desktop.
Save hacklschorsch/ea2ef09f1ab97b38cf41f9ac10264a59 to your computer and use it in GitHub Desktop.
Lightweight Design Template

Lightweight Design: Subject

The goal here is to do the minimum amount of design we can get away with while still making a quality product. Think of this as a tool to help define the problem, analyze solutions and share results. Feel free to skip sections that you don’t think are relevant (but say that you are doing so). Delete the bits in italics.

Contacts: The primary contacts for this spec.
Date: YYYY-MM-DD

Short description of feature. Consider clarifying by describing what it is not.

Rationale

Why are we doing this now? What value does this give our users? Which users?

Definitions

User stories

Have as many as you like. Group user stories together into meaningfully deliverable units.

Constraints and requirements

Must
What things will make the project a failure if not done?
Nice to have
What things will improve the project if done but which are not fatal if not done?
Must not
What things will make the project a failure if done?
Out of scope
What things may or may not be nice but which belong in a separate project?

Success

How will we know when we are done?

How will we measure how well we have done?

It might be a good idea to stop at this point & get feedback, to make sure you’re solving the right problem.

Alternatives considered

What we’ve considered. What trade-offs are involved with each choice. Why we’ve chosen the one we did.

Detailed design

Focus on external and internal interfaces, how externally-triggered system events (e.g. sudden reboot; network congestion) will affect the system, scalability and performance.

Data integrity

If we get this wrong once, we lose forever.

Security

Backwards compatibility

Performance and scalability

Further reading

Links to related things. Other designs, tickets, epics, mailing list threads, etc.

Open Questions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment