Back in the late seventies and early eighties, when I managed large, complex software projects for a living, I kept track of which programmers were contributing the most to the code we delivered to our customers. A typical development team consisted of eight to ten programmers writing and testing code for three months or so. We usually had about a dozen teams contributing to a development release, so each year I accumulated 40 to 50 sets of productivity data on both teams and individual programmers, covering the efforts of about 100 people. Between 1978 and 1983, I built up a pretty decent performance database.
The results were hugely skewed. Although the productivity of the teams didn't vary much (and everyone worked about as hard as everyone else), almost 75 percent of the final code came from just 5 percent of the programmers. And just about 100 percent of the "best" code (few initial defects, excellent efficiency) came from this same small group.
This was my introduction to "Power Programmers"sometimes called 10x programmers because they are an order of magnitude better than everyone else. Power Programmers achieve this performance without turning to sophisticated tools or methodologies and without necessarily requiring heroic work effortsalthough they do tend to have odd or very individualistic working habits. I could never find very many of themin my best year I had around ten out of a staff of nearly 150and they were pretty hard to keep around for the long term. Yet it's amazing to look back at how many great software products (think Lotus 1-2-3) and systems (think everything Internet pre-Netscape) we owe to these supercapable programmers.
As I got more involved in large-scale software projects and developer productivity, I almost lost sight of the Power Programmer group. Focusing on tools and methodologies aimed at improving the performance of the average programmer seemed like a better investment than chasing these rare and fickle individuals. The advent of highly configurable software packages also seemed to run counter to Power Programmer processes.
There were still some corners where Power Programmers could feel at home. Many found their way into the open source movement and the development of Linux. And some parts of the Internet craziness (the parts that actually worked) were havens for some amazingly talented people. Then the bubble burst, and we got back to a life of improving the productivity of the average programmer.
Just this year, I've come across a couple of software products that suggest Power Programmers are coming back into the mainstream. The first is Squeak, a sort of grown-up version of Smalltalk, which a few people will remember as the first real object-oriented development environment. Squeak encompasses an operating system, interactive GUI, development environment and tools that can run on anything (including a chip without a built-in operating system) with minimal porting effort (think a couple of weeks by a couple of people). The Squeak kernel code is only a few hundred "objects," which is why it is so easy to port. Squeak was developed entirely by Power Programmers, led by Alan Kay. It's an amazing example of what Power Programming can achieve. Take a look at www.squeak.org.(Squeak is open source too, and it will be interesting to see how, or if, it survives broader exposure.)
The second product is an IP Multicast collaboration and videoconferencing system called inSORS Grid (see www.insors.com). Based on research from Argonne National Laboratory, inSORS supports multisite collaboration over the broadband Internet without the complexity of traditional teleconferencing systems. With enough bandwidth and display space, dozens of sites and hundreds of people can participate without losing track of what's going on or who's driving.