Summary:
Sean Goedecke argues that meaningful software design for large, established systems can only be done by engineers who work on them. Concrete details—module boundaries, data availability, coupling, and historical constraints—outweigh generic patterns and principles. Useful design discussions are small, detail-heavy, and often boring to outsiders. Generic design still has roles: greenfield projects, tie-breaking among acceptable concrete options, and company-wide consistency or platform choices. He critiques detached architect roles with no delivery accountability and proposes that those who design should also own outcomes.
Excerpt:
"You can’t design real software well without intimate knowledge of the codebase. Generic advice is mostly useless for existing systems; concrete constraints dominate."
#Software Design#Architecture#Engineering Practice#Large Codebases
Read Full Source