The Problem with Complexity
Frederick P. Brooks led the division of IBM that programmed computer operating systems in the 1960s. He managed over 100 employees to create cutting-edge programs. Which required an intense degree of coordination.
Brooks found his main obstacle was complexity. The number of people and components that needed to coordinate with each other for the program to work. Brooks also found that the relationship between complexity and errors is exponential, not linear.
Linear growth occurs when each value in a sequence has an equal difference between them. Yet, exponential growth occurs when each weight has a similar ratio.
If complexity has an exponential relationship to errors, each new component or worker has the power to multiply mistakes. Which increases the time for testing and repairs.
In other words, with each new person or feature, you’re not adding the potential for error: You’re multiplying it.
[¹]: Frederick Brooks (1995): The Mythical Man-Month (https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959)