There is an apocryphal story1 during World War Two, of a squadron of bombers leaving on a sortie. Time passes and finally a few bombers struggle back to their base, the crew shaken, but alive, their aircraft riddled with bullet holes.
Shocked by their losses, the reaction by Air Force was to order the areas of the air frame wounded by enemy fire be reinforced with additional armor plating to improve the success of future missions.
Fortunately for the Allies, a statistician engaged by the British raised the issue that the aircraft that had returned, although battle scared, were hit in places not crucial for flight. In comparison, their missing comrades had not fared so well. Having succumb to enemy fire, the damage their aircraft suffered could not be accounted for.
Thus, the statistician argued, the portions of the aircraft which should receive additional armor should the places which did not suffer damage. This then is a tale about Selection Bias.
Thirty years later, Frederick P Brooks, Jr wrote his seminal work, The Mythical Man-Month. Brooks’ observation that “adding manpower to a late software project makes it later“ has become a rallying cry for the software development industry; one which we have had no shortage of opportunities to validate against a steady stream of prominent projects who over promised yet under delivered.
However, for all our well founded chortling, I wonder if we are not succumbing to our own selection bias. For all the attempts to throw people at a floundering project is there a percentage of teams that quietly pull it off, meet their audacious schedule and live to code another day ?
Is Brooks’ law an axiom of the software development industry, or are we simply counting the losers and drawing the wrong conclusion?
- If you want the real story, I suggest reading John D Cook’s post.