What If We Ran an Iron Coder?

I’ve been a fan of Iron Chef America for a while. Fast paced and some very interesting dishes, it’s entertaining and even a bit educational (for the epicurean viewer).

Being a geek at heart, it leaves me wondering what it would take to create an Iron Coder competition. With the right “ingredients” it just might work.

First, we’d need a play-by-play announcer and a color commentator. On Iron Chef America, this single role is played by Alton Brown. We might be able to get away with a single person, but I often like the banter of two announcers. It is, of course, their job to explain what is going on and provide insight and entertainment during the battle.

There is, of course, the Secret Requirement. This brings us to the question of what type of code are the two Iron Coders creating? I come from a web application background, so this is my first assumption. You can’t pit an X-Box programmer against a Perl script kiddie. For now, let’s stick with building simple web applications. I don’t think we restrict to a particular technology. In fact, part of the fun would be to watch a Rails expert go head to head against a .NET expert.

As for the Secret Requirement, this can go one of two ways. Option A would be to mandate a large scope for the application. For instance, “Build a Time Card application!!!” The particulars are left up the Iron Coders. Perhaps there are a very small set of requirements handed down, like “user clocks in” and “user clocks out” and “manager pulls report of this week’s time”

Option B for Secret Requirement would mandate a very small requirement, such as “must use the visitor pattern and two factory pattern implementations!!!” This would let the Iron Coders build whatever they like, as long as they use the Secret Requirement. This more closely matches the original Iron Chef in intent, but how easy is it to create these small requirements? Do they provide enough constraint for the Iron Chefs?

I’m going to lean towards Option A, specifying a broad, yet simple, application domain. Leave the particulars up to the Iron Chefs.

Next up we have Judging. This is where it gets interesting, as need to decide how to choose a winner. In Iron Chef America, they judge the dishes with a point scale across three categories: Originality, Taste, Presentation. For Iron Coder, I’d propose the categories to be Originality, Accuracy, and Construction. Let me explain:

Originality would be the judge’s take on how original the Iron Coder implemented the Secret Requirement. The more interesting, unique, surprising the Coder’s web application, the more points here.

Accuracy is measuring the correctness of the application. This one is tough because there may not be that many formal specs, but given that Accuracy is a judging category, we might need them. In any case, Accuracy measures if the application functions properly. If any bugs or inconsistencies are encountered, points are lost here.

And finally Construction, which is measuring the quality and beauty of the code itself. This is a lot like porn: you know it when you see it. Is the code DRY? Does it use patterns appropriately? Does it follow good OO design? Is it a hack, or is it beautiful? If anything, this category is too broad. In any case, it’s very important and must be judged.

Logistics is something I worry about. Watching people write code isn’t exactly exciting, but I think this even should be live. I’d like to emulate a live studio audience, where viewers can chat along with the action. However, I don’t think the Iron Chef’s should be able to watch the chat (not sure how you’d accomplish that one) This is my biggest unknown. What’s a good screen sharing program? How do we deal with small font sizes? Are there any editors that provide a real-time link (SubEthaEdit comes to mind for collaborative editing)?

Finally, it has to be campy. This should be fun for Iron Coders and viewers alike. I think if we can figure out the logistics issues of actually broadcasting text editors, it could be a fun event.

4 Responses to “What If We Ran an Iron Coder?”

  1. Daniel O'Connor Says:

    I’m thinking the secret ingredient should be an API.

    Two developers, 45 minutes, an Atom library, GO!

  2. Gregory Williams Says:

    I’m not sure if they still do it, but the O’Reilly Open Source Convention (actually, it may have still been The Perl Conference at this point) used to do exactly this in front of a live audience. A simple challange was presented, and the commentators switched the overhead projector between the contestants’ screens, making comments and jokes as design decisions were made, bugs popped up, and the implementations came together (and everyone booed and hissed when one contestant chose to use vi instead of emacs.)

    It was great fun, and I suspect doing it online (while presenting some interesting differences) might be similarly enjoyable.

  3. chris Says:

    Great idea Seth!

    I think you could have a side aspect to it on what the coders like to eat and drink while coding. They could order food and drinks that they like or they can prepare them before the comp starts.

    Another idea I have is to take all the videos and place them in a site similar to this: www.ubattle.com . This would allow for people to watch the video in a format similar to the actual competition as well as mix up the Iron Coders.

    PS- IronCoders.com is taken.

    Willing to help out to make it happen.

  4. Colm Ó Cinnéide Says:

    first course: html-web?
    delicious dessert: semantic web?
    blushing bride still in the salon getting “pampered” by Sergé. Out of town guesst stuck on the mini-bus, lost confused by bi-lingual road signs. Its not easy cooking for two hundred guests…

    ;-)

Leave a Reply