Brook’s Law: Adding manpower to a late software project only makes it even more late.
Software programming is multi-faceted, difficult to successfully divide into discrete tasks, and requires complex coordination and ongoing communication between teams and within teams. Thus adding more manpower slows the process down, both as new members are brought up to speed AND as more members and or teams must be kept in the loop on an ongoing basis.
This principle has application far beyond software programming and potentially applies to any organization or group task. If communicating effectively with anyone you supervise takes 5% of your time per person, at 20 people, you run out of time! Of course, some economies of scale exist but the fact remains that establishing and maintaining relationships and communication links takes time and energy, two somewhat limited resources!
When confronted with a challenge, our first instinct is often to request more resources. Sometimes it is better to step back, go to the balcony, check our “group think”, and see if simpler, more creative solutions can be found. Often the situation is more complex than we realize: just as attempting to “get rid of an iceberg with a blow torch” only exposes more iceberg, so too can our attempts at intervention have unintended consequences or create unforeseen complications.
“99 little bugs in the code. 99 little bugs in the code. Take one down, patch it around. 127 little bugs in the code” – Software Programmer’s Lament
“To he who has a hammer, everything is a nail.” – Principle of Systems Theory
“Often the fastest way out of a complex situation is the quickest way back in i.e. Painting over rust is not lasting solution.” – Principle of Systems Theory
As always, I share what I most want/need to learn. – Nathan S. Collier