4 ms·
Architectural coherence is such an important part of software design. I agree with your point completely—you need specialists for deep, specific problems, but y
by ellius 7y ago
Architectural coherence is such an important part of software design. I agree with your point completely—you need specialists for deep, specific problems, but you also need people with a view of the entire system.
- lioeters 7y agoGreat point, and I think it relates to the market need for a "full-stack developer", an all-around generalist who understands (more or less) the entire stack and areas of endeavor. It also made me think how, typically, the problem with "design by committee" is that it's often a mere collection of specialists, without the necessary generalists (those with an understanding of architectural coherence, system-level thinking) with the power to tie it all together. I think the reason why many great software projects are created by an individual or a small team, is that coherence and consistent vision across the system.
- ellius 7y agoThis is actually discussed very intelligently in "The Mythical Man-Month." The author explains that large software projects have an inherent tension between coherence and efficiency. A small team maintains coherence, but cannot get the required amount of work done in a reasonable amount of time; a large team works faster at the expense of coherence. Balancing those two aspects effectively is what makes large projects successful.