How to Decide Without Dogma
The six principles form not a code of laws but a sequence of questions to ask a decision. Go through it top to bottom: the early steps keep the system from premature growth, the later ones draw boundaries once growth has arrived.
- Name the current problem
- Simplest working solution (KISS)
- Remove the unneeded without a requirement (YAGNI)
- Find duplicated knowledge (DRY)
- Don't generalize too early (AHA)
- Separate reasons to change (SoC, SOLID)
Each step is a separate principle in its place. Name the current problem (not a future or theoretical one - what's in the way right now). Choose the simplest working solution - the KISS zone. Remove options with no confirmed requirement - the YAGNI check. Find duplicated knowledge, not similar lines - here DRY helps. Don't generalize until a stable regularity appears - the AHA limit. Separate parts that change for different reasons - here SoC and SOLID work.
To run your task through these steps and get a recommendation, use the decision-builder lab.
Decision builder
0 of 6 passed. Go through the remaining questions before calling the decision justified.
Order matters more than the set. The same principles applied in reverse (abstractions and boundaries first, task later) give exactly that architecture for architecture's sake. The model's strength is the sequence from task to structure.
The model is assembled. Let's test it on three short tasks with no single right answer.