Software Engineering Practices
6 clusters, spanning half-life layers 0–2: Paradigms, Design principles, Design patterns, Code quality, Testing strategy, Ways of working.
Clusters
Section titled “Clusters”Paradigms
Layer 0. Encapsulation, immutability and the composition-over-inheritance argument transfer to every language, including ones that claim not to…
Design principles
Permanent, and permanently misapplied. The durable content is knowing when each stops being true, which no principle states about itself.
Design patterns
The vocabulary transfers to every codebase and every review conversation. Several members are language workarounds that a functional language makes…
Code quality
Refactoring moves and review discipline transfer to every language. Formatter configs are Layer 4 and not worth an argument.
Testing strategy
What belongs at each level of the pyramid, and what a mock costs you, transfer to every language and framework. Runner APIs do not.
Ways of working
Flow, WIP limits and estimation error transfer. Ceremony specifics are organisational and local.