paulserban.eu

Writing Edition

Paul Serban

Writing, snippets & book notes

Learning plan · Post

20-Hour Plan: Prioritizing and Engineering Software Architecture Characteristics

← Back to Software Architecture Characteristics: A Practical Guide to Availability, Scalability, and the Other '-ilities'

Extracted Topic

Identifying, prioritizing, and engineering trade-offs among software architecture characteristics (the "-ilities") - chosen over any single characteristic (e.g. scalability alone) because the post's core argument is that the skill is ranking and trading off characteristics against each other, not mastering any one in isolation.

The Vital 20%

20-Hour Plan

Session 1 - Explain what architectural characteristics are and why they're invisible until violated

Session 2 - Distinguish the resilience-family characteristics from each other precisely

Session 3 - Implement a circuit breaker and understand fault containment

Session 4 - Implement liveness/readiness probes and understand graceful degradation

Session 5 - Understand the load family: scalability, elasticity, performance

Session 6 - Understand deployability mechanics and how they enable reliability, not oppose it

Session 7 - Understand security as cross-cutting and its collision with performance

Session 8 - Diagnose the four core trade-off pairs and the elasticity/capacity-planning trap

Session 9 - Convert priorities into SLOs and write an ADR

Session 10 - Verify claimed characteristics under real failure and load, and plan for revisiting priorities

What This Plan Deliberately Skips

Detailed treatment of learnability and testability as standalone disciplines (e.g., specific test-pyramid strategies, onboarding-doc design) and deep dives into any single cloud provider's implementation specifics (AWS Auto Scaling internals, Kubernetes HPA tuning parameters) - these are useful but secondary to the core skill of ranking and trading off characteristics deliberately.