Generic software design advice is largely useless for real-world engineering work on large existing codebases. Effective design requires intimate knowledge of concrete implementation details, not abstract principles. The most valuable design discussions happen between engineers actively working on the system, focusing on specific subsystems, dependencies, and constraints. Generic advice has limited utility: guiding new projects, tie-breaking decisions, and ensuring cross-codebase consistency. Formal architect roles that design without implementation responsibility often fail because they lack the concrete understanding needed to create actionable plans. Engineers who design systems should be accountable for their success or failure.
Table of contents
Generic software designConcrete software designWhen generic software design is usefulArchitects and local minimaSummary2 Comments
Sort: