TopCoder
Competition can be the most nerve-racking experience. Some people just thrive on it.
Itzhak Perlman
So what's the experience of participating in these contests? "Exciting, exhilarating, heart pounding, brain crunching, mouth drying, do-not-want-to-miss-a-second-of-it-good," according to one veteran competitor, who participates regularly in TopCoder's competitions under the name AleaActaEst. "It can also be painful, dejecting, and anxiety ridden..."
Another thing that it can be is profitable. TopCoder competitor argolite made roughly half a million dollars competing last year, according to TopCoder's player stats, which, because the process is as much about evaluating individual programmers as it is about producing software, are remarkably extensivearguably more detailed than baseball stats.
TopCoder is emblematic of this new contest-based approach to commercial software development. Back in 2001, the founders were running a contract software development operation that had grown to the point where they were managing a pool of over 600 programmers. They faced two challenges: To find a better way to evaluate programmers and to move in the direction of a true engineering process, based on a component architecture model. The solution they hit on for both problems was programming contests. "We think," says TopCoder's Chief Architect Dave Messinger, "that this is the best way to build software that is component based: component competitions." Competition, Messinger points out, is happening all the time among programmers. But TopCoder is one of only a few companies actually building commercial software through a competition model.
And it's a real contest, or a steady succession of contests, with winners and losers. In TopCoder's competitions, only the first- and second-place finishers win money for their work, although there are several additional ways to win cash, including awards for reliability and for consistently good performance even if it doesn't win the big prizes.
Plus, "there are no penalties for signing up for a component and then not delivering it," AleaActaEst points out. "This way if life gets in the way we do not have to worry about broken promises." That doesn't often happen for him, one suspects. "The whole idea is that knowing that you are competing against some of the best makes you try harder, makes you try longer, makes you try smarter...There is nothing in my opinion better than a competition to make sure that you get it done."