Software-design courses for teams building long-lived systems. Learn with working code, tests, metrics, and real design decisions.
Build software. Measure change. Compare design decisions.
Three products. Three different domains.
Measured with the same metrics.
Each course uses a working software product
to compare implementation choices,
software complexity, and cost-of-change metrics.
The starting point
A complete Breakout game used to
study software-design decisions,
code structure, tests, and cost-of-change metrics
in a working Python product.
A different domain
A text-editor product used to study
software-design decisions in a different
domain and compare implementation
choices using the same metrics.
Another product domain
A trading-alert product used to study design decisions,
implementation choices, and cost-of-change metrics
in another software domain.
Contact us for personalized recommendations.