- Also Known As: Deadwood, Body Shop, Seat Warmers, Mythical Man-Month
- Anecdotal Evidence: "One out of 20 programmers... produces 20 times the software compared to an average programmer."
There are approximately two million working software managers and developers in America. Currently, there are 200,000 additional job openings. These figures indicate a negative 10 percent unemployment rate.
Skilled programmers are essential to the success of a software project. So-called heroic programmers are exceptionally productive, but as few as 1 in 20 have this talent. They produce an order of magnitude of more working software than an average programmer.
Large-scale software projects are prevalent in many industries. These projects employ hundreds of programmers to build an enterprise system; a staff of 100 to 400 on a single project is not atypical.
These large projects often involve outsourced development and contractual payments based upon labor-hours worked. Since profits are a percentage of the staff salaries, the more hours worked, the higher the profits. System requirements always change and increase during development; so there is little risk involved if the project is underbid initially; the contractor can grow the staff to meet inevitable problems and new requirements. The fallacy of adding more staff to an ongoing software project was described by Frederick Brooks in the Mythical Man-Month (1979).
The ideal project size is four programmers; the ideal project duration is four months Software projects are subject to the same group dynamics as committee meetings (see the Design by Committee AntiPattern).
Project teams that grow beyond five people generally experience escalating difficulties with group coordination. The members have trouble making efficient decisions and maintaining a common vision. Working toward a near-term deadline is essential to encourage the team to focus and begin producing a solution.
We submit that extremely large projects are futile efforts. Small project teams with individual accountability are much more likely to produce successful software.
Finding talented programmers is an important challenge for software-intensive companies. Some firms have resorted to incorporating testing as part of their hiring processes. These examinations resemble IQ tests. If the subject fails the test, he or she will probably end up on a large-scale project with hundreds of other programmers.
Working with independent contractors and consultants is an effective way to acquire programming talent quickly. In some areas of the United States, hundreds of contract programmers work out of their homes, and they can be engaged via a phone call or e-mail. These contract programmers can produce significant software products for reasonable rates, compared to the project failures and overruns that result from the Warm Bodies mini-AntiPattern.