Channels ▼

Web Development

There Must be Contest


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 extensive—arguably 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.

TopCoder winners.

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."

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.