Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Nick Plante

Dr. Dobb's Bloggers

Embrace Your Constraints: Code Contests

August 30, 2008

Regardless of our background, programming language of choice, or political persuasion, most developers have at least one thing in common: we enjoy building things. As full-on members of the creative class, however, we're also likely to have a million ideas for useful gadgets, web services, and applications, but comparatively little time to execute on them. Sigh.

Fortunately, given modern web savvy tool sets, it's easier than ever to launch a website or application. In fact, you might even be surprised how quickly you can roll out a "v1" of a worthwhile service or micro-app, using a framework like Rails or Django. Sometimes all you really need is a weekend, a little bit of motivation, and a willingness to embrace your constraints. That's where code contests come in...


Last year a bunch of other passionate Ruby developers and I tossed together a competition we dubbed the Rails Rumble. The idea was to get developers to set aside 48 hours of their life to design, develop, and deploy a working first version of some web-based app they'd been dreaming about (yes, this post will border on shameless quasi-self promotion, but it's for a good reason, really!). After the weekend development sprint wrapped, the community at large was given the chance to vote on the fruits of that labor, rating entries according to their user interface, usefulness, completeness, and level of innovation. The highest rated applications won prizes supplied by event sponsors.

But the real purpose of the event wasn't about winning or losing, it was about motivating developers to see what they could do given some very constrained resources (Rails, small teams, 48 hours). We wanted to give people an excuse; an excuse to take one weekend and build something. Launch something. 140 teams of developers participated in the event and almost 100 of them were able to deliver a usable, working first version of their service within the timeframe. That's pretty impressive, for a weekend of work, and many of the entries were truly inspired. A number of them, including grand prize winner Tasty Planner, have seen continued development and become useful and well-loved services outside of the contest they were launched in.

The morale of the story is that you can accomplish a lot in a single weekend ... you just need a little motivation, maybe one or two other people who are similarly invested in building something great, and a finish line to focus on.  And of course, you need a willingness to embrace the constraints of your particular situation. One of my favorite passages from 37 Signals' Getting Real makes this point over and over again;

There's never enough to go around. Not enough time. Not enough money. Not enough people.

That's a good thing.

Instead of freaking out about these constraints, embrace them. Let them guide you. Constraints drive innovation and force focus. Instead of trying to remove them, use them to your advantage.

Chapter 3 - Embrace Constraints

So don't fight it.  Figure out what you can do with what you have instead of wishing, wondering, and wallowing.

Of course, you don't necessarily need to participate in a startup competition or a code contest to do this, but the thing that's fantastic about the structured competition as a launch pad is that it imposes these hard constraints such that you tailor your goals to fit the timeframe and opportunity. The friendly spirit of competition doesn't hurt either, nor do the prizes. And there's also the fact that events like this tend to get a little media attention, which gives you an instant user base to experiment upon and get the word out about your application.

If you're interested, the 2008 Rails Rumble event will be held the weekend of October 18th and 19th. Registration will open within the next couple weeks. If you don't know Rails but this sort of thing still sounds interesting to you, don't worry. There are other competitions that may be closer to your area of expertise -- Startup Weekend and Blitz Weekend present similar challenges, for example. A quick google search should turn a few up additional events. On the other hand, you could also use it as an excuse to learn a new toolset, one that serves a number of people extremely well for quick prototyping and building powerful websites and micro applications.

Whether you're looking to get involved with the Rails Rumble, Startup Weekend, or just looking to set aside a weekend (or two) of your own time, the message is still the same -- embrace your constraints and get something working asap. The first version of your vision probably isn't going to be bug-free or have a perfect user interface, but that's okay. Get something out there for users to play with that represents the core of your idea, and then use the feedback of your friends, fans, and peers to continue to bake it until it's just right. You may even end up taking it in a direction you never expected, once some external criticism is added to the mix.

Stop worrying and love the launch!

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.