Intro

Theory doesn't convince. Understanding theory optimizes application.

The forever questions in software design are:

  • When do I start making software design decisions?

  • When do I stop making software design decisions and get on with changing the behavior of the system?

  • How do I make the next decision?

These questions aren't immediately answerable because we lack the information needed.

Understanding theory sharpens judgement for when you have to answer the questions (above) on speculation. Understanding theory let's you disagree constructively with fellow geeks.

This section addresses the following questions:

  1. What is software design?

  2. How does software design drive the cost of software development and operation, and how does the cost of software development & operation drive software design?

  3. What are the trade-offs between investing in structure and not investing in structure.

  4. What principles, economic & human, can we use to inform whether and how to change the structure of software?

Last updated