(^26) 97 Things Every Project Manager Should Know
Developer Productivity: Skilled Versus Average
Neal Ford
Atlanta, Georgia, U.S.
lET’S DEBUnK SoME oF ThE MyThS about developer skills for project man-
agers who have been assigned for the first time to software projects. Under-
stand that really good software developers are much more productive than
average ones. In fact, some statistics say that really good developers are mul-
tiple orders of magnitude better than poor ones. One order of magnitude is the
same as multiplying a quantity by 10. The point is, a skilled programmer isn’t
just a little better than an average one; the difference is huge.
What should this mean to our newly minted software project managers as they
plan the development of this product? Managers erroneously think that even if
you can’t get the best and brightest, you still get some usefulness out of medio-
cre developers. But building software isn’t like digging a ditch, where even the
poorest ditch diggers can make a hole.
In software development, what is programmed today becomes the foundation
for tomorrow. If you have mediocre developers building your foundation, the
really good developers have to go back and fix the flaws before they can move
on. Hiring mediocre or average developers slows project velocity.* Frequently,
taking a poor performer off the team is more beneficial than adding a good
one.
Couple this with the fact that adding people to a late project makes it even
later, and you can understand why most enterprise development moves at a gla-
cial pace. The nonexperienced software project manager might reason that if
adding more warehouse men allows a truck to be loaded faster, hiring additional
programmers would shorten the time necessary to complete a software project.
- Velocity: A term used in agile software development to show the rate of progress for a team or a
team member, i.e., how much an individual programmer will be able to produce in a given time
period.