home · blog · groups · about us · contact us
DevelopmentNow Blog
 Monday, August 08, 2005
 
 
SADeveloper has an interesting article on programmer productivity, basically along the lines that a good programmer can be 5-20 times as productive as a poor one. My first boss drilled into me that "software development was one of the few professions where a one person can be ten times as productive as another." And I believe it -- poor programmers can screw up code, get stuck constantly, miss requirements and have to re-work things, deliver bug-ridden code, etc. Other "creative" professions (science, music, etc.) are similar in that the productivity gap can be surprising.

Ray from CodeBetter had some interesting counterpoints to the article, but I've seen firsthand how much poor developers can stink. If you remove all thinking from the task, then the only measurement you'd need was typing speed & mouse-hand speed. But that's not what defines the productivity of a developer -- it's what their brain does that makes the difference.

Now, the funny part is I think with proper training, a good architect, smart division of labor, & in-place processes, you can narrow the productivity gap. Someone who sucks should be moved or fired. And in a gunslinger code culture, your rock stars will always smoke the average Joes. But what if you instead have
  • training so that everyone knows the project process
  • an actual project process that minimizes problems of scope creep, requirements confusion, and implementation/architecture snafus. RUP comes to mind, but there are others (MSF, XP, etc.).
  • dedicated people for the tasks that "poor/average" programmers often mess up on (architecture, project planning, requirements, etc.)
  • a software architect who can divide tasks among developers according to their skill level
  • a culture that encourages learning and asking questions
  • a good screening system to get rid of or avoid hiring people who don't work well in teams
  • a mentoring system to pass along tips and information
With the above, I think you can reduce the productivity gap. You eliminate or reduce many of the issues that cause weaker developers to fall so far behind their counterparts. You'll still have faster and slower programmers, people who can devise algorithms or who know their APIs and patterns backwards and forwards instead of having to Google them all the time. But time and again, some of the biggest sandtraps I've seen programmers fall into are ones related to architecture, project management, and failure to follow a methodology and process that guides people towards better applications.
August 8, 2005    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]

Related posts:
Grids for Project Management
Productivity Tip: Know Where to Swing the Hammer
Places to Hire IT Folks
Links to Hiring Tips
Thoughts on Hiring
The Role of an IT Manager


« Blog Comment Spam | Main | Terminal Services / Remote Desktop Extra... »