On Programming Productivity

.. when you hand people a complex tool like a computer, the variation in what they can do with it is enormous. That’s not a new idea. Fred Brooks wrote about it in 1974, and the study he quoted was published in 1968. But I think he underestimated the variation between programmers. He wrote about productivity in lines of code: the best programmers can solve a given problem in a tenth the time.
But what if the problem isn’t given? In programming, as in many fields, the hard part isn’t solving problems, but deciding what problems to solve. Imagination is hard to measure, but in practice it dominates the kind of productivity that’s measured in lines of code.
My favorite quote from Paul Graham‘s essay, based on his OSCON talk and book, Hackers and Painters. I need to go read the book, carrying questions about the craft vs manufacturing models of software development.
The article also repeats some unhelpful stereotypes about hacker’s lack of empathy. Graham appreciates the Mac and Google as examples of beauty. But he also describes the natural habitat of the geek as tools rather than applications.
Graham suggests optimizing a tech company’s development process by sic’ing the best developers on infrastructure, far away from customer applications. “have the smart people work as toolmakers. If your company makes software to do x, have one group that builds tools for writing software of that type, and another that uses these tools to write the applications.”
Graham says that hacker’s hate having to “customize something for an individual client’s complex and ill-defined needs.” To use Martin Fowler’s image of “bad smells in code” that hint at poor design, this is a bad smell that suggests poor account management — somebody on the developer’s team hasn’t done the hard work of understanding the customer’s needs, and helping the customer prioritize. (though it is a genuine problem sometimes — customer truly is internally conflicted, hopelessly confused, and is impossible to please.)
The stereotype isn’t 100% right — there are counterexamples of software developers with empathy — but Graham echoes the cultural prestige given to hackers who stay the furthest away from the people who use their work.

Leave a Reply

Your email address will not be published. Required fields are marked *