Software Engineering Architecture Lab

Level 1: Engineering Foundations

Make changes cheap: spot duplicated knowledge, hidden coupling and irreversible decisions early. Level 1 of 11: 8 lessons on engineering foundations.

Outcome: Make changes cheap: spot duplicated knowledge, hidden coupling and irreversible decisions early.

Habits that separate engineers who build systems that last from those who build systems that rot. We meet ShopFlow as a one-developer Spring Boot app and learn the pragmatic ideas that keep it changeable.

The pressure on ShopFlow: One developer ships fast, but every new feature takes longer than the last.

Lessons in level 1

  1. Meet ShopFlow: The System You Will Architect — One small Spring Boot app, five years of growth, and the questions architects ask at every step.
  2. DRY Is About Knowledge, Not Code — The same business rule in three places is a bug waiting to happen — but similar-looking code is not always duplication.
  3. Orthogonality: Change One Thing, Break One Thing — Coupling, cohesion and designing parts that can change independently.
  4. Contracts, Assertions & Crashing Early — Defensive programming done right: fail loudly at the boundary instead of corrupting data quietly.
  5. Tracer Bullets & Prototypes — Build a thin end-to-end slice first, and throw prototypes away on purpose.
  6. Reversibility: Don’t Bet the Company on One Decision — Keep expensive decisions reversible with seams, abstractions and configuration.
  7. Debugging Like an Engineer — Reproduce, isolate, hypothesise, verify — a repeatable method instead of guessing.
  8. Automate Everything: Version Control, Builds & Pipelines — If you do it twice by hand, the third time it will go wrong.

Source books

Other levels