paulserban.eu

Writing Edition

Paul Serban

Writing, snippets & book notes

Learning plan · Post

20-Hour Learning Plan

← Back to What Is Software Architecture? A Practitioner's Take on the Skill That Separates Coders From Engineers

Extracted Topic

Software architecture as a distinct engineering discipline (system-level structuring, decomposition, trade-off reasoning, and decision documentation) - chosen because it is the single argument every other section of the post (design-vs-architecture, decomposition, protocols, data modeling, ADRs, C4) is built to support.

The Vital 20%

20-Hour Plan

Session 1 - Distinguish a design decision from an architecture decision in your own codebase

Session 2 - Draw clean module boundaries using separation-of-concerns and bounded contexts

Session 3 - Choose a system decomposition strategy justified by actual constraints, not preference

Session 4 - Pick a communication protocol based on the coupling/latency/decoupling trade-off it implies

Session 5 - Implement an idempotent async processing path and explain why async requires it

Session 6 - Model data for a system's actual read/write and consistency needs

Session 7 - Use the CAP theorem to make one consistency/availability trade-off explicit and defensible

Session 8 - Write an ADR that would prevent a real trade-off from being silently reversed

Session 9 - Diagram a system's context and containers before changing it

Session 10 - Critique a real engineering case study and identify which of the five common pitfalls it avoided or fell into

What This Plan Deliberately Skips

This plan omits deep dives into specific pattern catalogs (full GoF catalog, GRASP beyond responsibility assignment basics), vendor-specific tooling (Kubernetes, specific cloud provider architectures), and the "expert" milestone skills of organizational coaching and technical-debt-portfolio management, since these build on - rather than constitute - the vital 20% above.