John Chamberlain
Developer Diary
 Developer Diary · You Heard It Here First · Sunday 18 January 2004
The Software Creator
One of the unknown truths of software is that practically all great pieces of software have a single creator. The average person imagines vast teams of anonymous programmers as responsible but the reality is much different. Of course big products do have big development teams, but in nearly all cases the original version of the software was created by a single person.

Here are some well-known microcomputer programs and their creators:

Mosaic - Marc Andreessen
Linux kernel - Linus Torvalds
Oracle - Bob Miner
Turbo Pascal - Anders Hejlsberg
Emacs - Richard Stallman
Latex - Donald Knuth
Tetris - Alexey Pajitnov
Adventure - William Crowther
Frogger - John Harris

Each of these programs has a fascinating history behind it, but for me what is most notable is that these highly successful programs of all types were designed and written by a single person.

Even large companies where programmers work in anonymity usually have had single authors for their most successful products. For example, Microsoft Word (1984) was designed and programmed by Charles Simonyi and Microsoft Excel (1985) is largely the work of Doug Klunder.

The Exceptions

There are some exceptions to the general rule of the unitary software creator. For example, AutoCAD can only be described as a team effort, or non-team effort, depending on how you look at it. Some of the consequences of this were that AutoCAD took years and years of investment before it became successful and it has always been a buggy, heterogeneous and difficult-to-maintain system. I think part of the problem here was that it was created by engineers who approach things in a different way than programmers. The weak design of AutoCAD has allowed many competitors to flourish.

Dual Teams

A common pattern in software startups is a dual team. In this cases usually one person is the business-oriented person and the other person is the programmer. For example, there is Bill Gates (business) and Bill Allen (programmer) who created Tiny Basic, Dan Bricklin (business) and Bob Frankston (programmer) who created VisiCalc, Scott Cook (business) and Tom Proulx (programmer) who created Quicken, Steve Jobs (business) and Steve Wozniak (programmer/designer) who created the Apple Computer. I consider these kinds of partnerships not to violate the basic tenet of the Sole Creator because in these cases the software itself is still fundamentally designed and created by one person even if there is input from someone else. An interesting read for a description of an early design process is Bob Frankston's "Implementing VisiCalc".

Very occasionally there seems to be a true dual-team effort. For example, Jeremy and Joseph Allaire wrote Cold Fusion. They are not twins, but if you are working on software together you practically need to be. History shows that bringing software out of a partnership requires both parties be right on the same wavelength--a rare thing.

Unity of Design

The reason why programs written by a single person are the norm is because a program's design is a lot like a book. There is a grand logic behind it and to work well everything must fit together as part of single vision. Programs like Excel and Word differ little today from their ancestors created back in the 1980s because the vision is basically the same, Simonyi's for example. Trying to get a group of average programmers to start on a project would be like putting twenty Swarthmore English majors in a room and asking them to write a Steven King novel, each one chapter. In the end this would not have a successful result, yet many people imagine that this is how software is created. Often executives think, "This program is too big for just one person to write." Steven King turns out thousands of pages a year. Top-level programmers are the same. Such a programmer can write about 100,000 lines of code a year or more-- enough for even the largest application program or operating system kernel. For comparison an average programmer just out of school can write about 500-1000 production lines per year.

Big companies can't stand the idea of a single developer being responsible for a program; too much money is involved. They obsess and oppress until there is nothing left. They pay lip service to wanting the best geniuses to develop their product, but in the end they hire mediocre performers whose primary qualification is doing what they are told--usually not the profile of creative geniuses. In "Hackers" by Stephen Levy the author describes how Ken Williams, the owner of Sierra Online, would be infuriated constantly because his company depended on unreliable divas like John Harris, but if he hired suits he ended up with lousy software or no software at all.

That's the magic of software. It's like music. You just can't bottle it into a proces. An artist brings it to life.

return to John Chamberlain's home · diary index
Developer Diary · about · · bio · Revised 18 January 2004 · Pure Content