The article on Good Programmers is from Aussie contractor site www.Brainbox.com.au
There’s an interesting take on programmer productivity at Joel on Software at the moment.
Joel looks at the perennial question of whether it’s better to hire good programmers or cheap programmers.
Many of us think the answer is obviously the former, but management almost constantly opts for the latter, which means they must disagree. Joel certainly does.
He founded his company on the idea that hiring the best programmers is the best recipe for profit in software.
“So, why isn’t there room in the software industry for a low cost provider, someone who uses the cheapest programmers available?” Joel asks. “(Remind me to ask Quark how that whole fire-everybody-and-hire-low-cost-replacements plan is working).
Here’s why: duplication of software is free. That means that the cost of programmers is spread out over all the copies of the software you sell.
With software, you can improve quality without adding to the incremental cost of each unit sold. Essentially, design adds value faster than it adds cost.
Or, roughly speaking, if you try to skimp on programmers, you’ll make crappy software, and you won’t even save that much money.”
Computer Science Students
He looks at some data collected about computer science students’ programming assignments to see what kind of variation he can discover in productivity.
He found that out of the top 25% of students in assessment, the fastest programmers achieved the task in an average of only 6 hours; compared to 20.49 hours for the average and a whopping 77 hours for the slowest.
That’s a hell of a difference in productivity.
But Joel sees an even bigger advantage to using good programmers than mere saved hours.
“The real trouble with using a lot of mediocre programmers instead of a couple of good programmers is that no matter how long they work, they never produce something as good as what the great programmers can produce,” he says.
“Five Antonio Salieris won’t produce Mozart’s Requiem.
Not if they work for 100 years.”
On one point he makes, I disagree with him, however.
He says his theory only holds true for software companies or “internal, in-house software is rarely important enough to justify hiring rock stars”.
Take the example of internal software at a large bank with a few million customers.
This bank is dealing with millions of small tasks every day – administration, processing transactions, verifying cheques, paying staff etc.
The main aim of internal software is to make these transactions more efficient.
That says to me that better software – meaning more productive software for the end user – could save a lot of money.
If you implement better software for verifying cheques that saves you one minute per cheque, this could add up to millions of dollars in increased productivity.
If internal software is used to increase productivity, it makes sense to do it well. The pay off could be huge.
The same holds true for external software such as a company website used by customers.
If your website brings in thousands more customers than your competitors, that small extra up-front cost makes it worthwhile.
Of course, most bosses don’t understand this concept.
They see programmers as relatively interchangeable.
They couldn’t be more wrong.
Good programmers are much more productive than average programmers.