Learning Software Architecture

· coding · Source ↗

TLDR

  • Matfej Krajci (matklad) argues software architecture is learned by doing, and Conway’s Law outweighs any technical design principle.

Key Takeaways

  • Conway’s Law is the core insight: social and incentive structures determine software shape more than technical decisions.
  • rust-analyzer’s architecture was explicitly designed around contributor types: deep contributors for the compiler core, weekend warriors for isolated features guarded by catch_unwind.
  • “Scientific code” quality gap is explained by PhD publication incentives, not missing software knowledge.
  • Recommended resources: Gary Bernhardt’s Boundaries talk, Jamii’s Reflections on a Decade of Coding, Ted Kaminski’s blog, ZMQ Guide by Pieter Hintjens, and Ousterhout’s A Philosophy of Software Design.
  • Adapting to bad incentive structures is valid strategy, but the future is uncertain – rust-analyzer was a prototype that became a production compiler.

Hacker News Comment Review

  • Commenters broadly agree on learning-by-maintaining: supporting large, multi-team projects over multiple codebases builds architectural intuition faster than greenfield work.
  • Several commenters pushed back on the reading list as too general, recommending Shaw/Garlan’s classic architecture texts and “Architecture of Open Source Applications” for concrete structural examples.
  • Discussion on design vocabulary: commenters argued that fuzzy terms like “clean code” fail juniors; explicit, measurable goals (maintainability, testability, observability) are more actionable.

Notable Comments

  • @CSMastermind: Condensed cheat sheet including “data models outlive code” and “if your system allows it, people will do it.”
  • @miki123211: Recommends “Architecture of Open Source Applications” – maintainer-written chapters show constraints and history that shaped each design.
  • @deepsun: Argues project size in terms of people and teams, not lines of code, is the real threshold where architecture starts to matter.

Original | Discuss on HN