Design Decisions

This can document decisions on the design of the software.


If you want to use it, keep track of decisions that someone further developing this software or using it in the future might want to know about. This might save them time or clarify expectations. You can put them as a list, or whatever.

Things to consider:

  • What exactly is the challenge?

  • Why is it relevant for the architecture?

  • What consequences does the decision have?

  • Which constraints do you have to keep in mind?

  • What factors influence the decision?

  • Which assumption have you made?

  • How can you check those assumptions?

  • Which risks are you facing?

  • Which alternative options did you consider?

  • How do you judge each one?

  • Which alternatives are you excluding deliberately?

  • Who (if not you) has decided?

  • How has the decision been justified?

  • When did you decide?