When there is no constraint in software design and development discussions, most discussions go to architecture and system design. Especially when the architects and implementers are the same people, the architecture is often debated way more. People forget that the architecture is flexible (maybe not much) and adaptable to changes.
Conceptual integrity is the most important thing in system design. Therefore, people should focus on that. The implementation part and how the design will be implemented are as critical and creative as the design. If we separate the two and approach them accordingly, we can go a little faster and produce higher-quality software. We can create constraints by limiting the people who will do the design. The fewer people, the better and more integrated the design will be. When the decision comes from many minds, it loosens and becomes weak. Satisfying many voices means more sacrifice.
- Related Note(s):
- 21: Efficient Code Review Process (The changes I wanted to do in one of my teams);
- 33: Elevating Others Around You;
- 51a: Database Race Conditions;
- 43: The Role and Responsibility of Software Architect;
- 47: Software Architecture Styles Index;
- 48: System Design Index;
- 37: Setting Organizational Goals and Processes;
- 26: The Cost of Software Deployment and Continuous Delivery;
- While designing, look for what youโre not doing.
- Source(s): Mythical Man-Month by Frederik P. Brooks Jr.;
- Resourced: Mektup-8;