The Mythical Tool-Month
In What is Accidental Complexity? and Self-Inflicted Accidental Complexity I gave examples of accidental complexity that would have seemed solutions to Brooks. A lot of the examples are of an engineering organization buying instead building but the buying has become complex. I think this an important enough point to emphasize again. The new accidental complexity is not about a lack of tools but a lack of a disciplined approach to tool selection.
The choice of programming language, framework, libraries, database, server hosting/cloud provider, application monitoring service all come at a cost that has nothing to do with money. The engineering team has to learn how to use them and more importantly how they break.
It’s the Mythical-Tool Month. Every new tool promises to solve your problem better than the last but each new tool adds a drag to your project. The licenses(MIT, Apache, etc) are explicitly provided “as is” without any warranty of any kind. Any bugs are your bugs. Any tech debt is your tech debt. There is a compounding benefit from knowing your tools really well. This takes an investment of time and effort. The engineering organization should be confident that the investment will be worth it.
I think this means that one of the keys to a high performing engineering organization is mastery of the tools it uses. The corollary is that it should choose the minimum number of tools and invest in mastering them. I think this is the way to minimize accidental complexity.
Published: 2024-05-06
Last Edited: 2024-05-06