Over a million developers have joined DZone.

Interview: Coding Competition Becomes Spectator Sport

· Java Zone

Check out this 8-step guide to see how you can increase your productivity by skipping slow application redeploys and by implementing application profiling, as you code! Brought to you in partnership with ZeroTurnaround.

[img_assist|nid=3031|title=|desc=|link=none|align=right|width=100|height=100]This year sees the inaugural Hydra vs Dragon Coding Competition, the first Reality TV Style coding competition to be held for developers. With some generous prizes on offer, I talked with John A. De Goes of N-Brain to find out more about the competition, what's involved in participating and how you can turn coding into a spectator event.

James Sugrue: Could you explain this "reality tv style" competition to us?

John A. De Goes: In a nutshell, it's a contest for Java developers, but unlike anything you've ever seen before.
Most programming contests are designed just for competitors: developers work on the solution and turn it in. End of story. We wanted something a little different: a contest where everyone can participate. So we're putting a lot of effort into creating an event where watching is just as much fun as competing.

And viewers get to do a lot more than just watch. It's really hard to measure the quality of code. There's no tool out there that can quantify quality. But developers know good code when they see it. So we're asking the audience to play a very active role in determining the winner of the competition. We'll be providing snapshots of the code to the audience, as well as highlights from coding sessions, and viewers can use all this information to rate the different teams.

That's what makes it similar to "Reality TV" -- the audience has so much control over who wins. I imagine that different teams will have their own fans to cheer them on. Every team will have their own demographic, their own unique style, their own interaction dynamic (the way the team works together), and all of that will affect who cheers for who.

Sugrue: So teams are competing against other teams?

De Goes:
Yes, exactly. Most contests are developer-versus-developer. But in this contest, it's team against team. So it's more like football than tennis, because winning depends not just on the raw skill of each developer, but on their capacity to work together toward a common goal. Infighting, attitudes, huge egos, all of these and more can make or break a team. That's the human element. You can be a rockstar programmer and still lose this contest because you can't play well in a team. Conversely, two average developers might end up winning the competition, because of the synergy that happens when a team gels and starts working as one.

Sugrue: How do spectators watch the competition?

De Goes: Beginning June 23rd (mark your calendars!), we'll be providing daily episodes over the web. These episodes will feature highlights from each team's coding sessions. Only the good stuff: the humor, the fights, the moments when a team realizes it's going down a dead-end and has to backtrack, the moments of pure genius -- stuff like that. We'll also be narrating these episodes, which will draw viewer attention to the good and the bad in each team's approach to solving the problem.

For each episode, we'll provide a snapshot of the code at that point in time, which viewers can download and study.
Viewers will be able to rate all the teams for every episode, so to have the most impact, they should be there on day 1 and come back every day for each new episode.

Sugrue: According to the contest page, the episodes span two weeks, which is an awfully long time. How much time should developers expect to have to spend working on this?

De Goes:
This has been a source of confusion. The actual coding takes place over a single weekend, and requires no more than 10 hours on Saturday, and 10 hours on Sunday. The episodes themselves, however, will span at least two weeks, depending on how many teams we have and how long it takes to produce the episodes.
So no more than 20 hours is required to compete, plus whatever time it takes to solve the Qualification Challenge (6 - 12 hours).

Sugrue: What is the prize?

De Goes: There are lots of them, valued at more than $7000 per winner.

This is a developer competition, so all the prizes are aimed at developers. Each winner will receive a top of the line Mac Book Pro from Apple Computer. Macs are great development machines because they have the beauty and usability of the Aqua user interface, but the power of BSD under the hood. Plus they can run Windows now, too, making them ideal cross-platform development machines.

We're also giving away a 10-user license to UNA, our product, and one year of a virtual dedicated server from Virtacore. You can use the server for anything, but it's plenty powerful enough to host large projects with UNA. That's a full year of extreme collaborative development, which you and your friends could use to develop something cool.

Other prizes include a vacation to Boulder, Colorado, one year of Subversion hosting from CVSDude CVSDude (the best account they offer, large enough to host a small army of developers), Java-based training from Industrial Logic and other cool stuff.

Sugrue: What is N-BRAIN's reason for sponsoring this?

De Goes:
The contest is called "Hydra Versus Dragon" for a reason. It's actually a battle of competing development styles. Every team must solve two challenges, one in the Dragon style, and the other in the Hydra style (for each challenge, half the team will solve it in the Dragon style, and the other half, in the Hydra style).
The Dragon style is what everyone is used to: developers communicate through e-mail and a shared version control repository. The Hydra style involves real-time collaboration using UNA, our product, which we think of as the logical successor to pair programming. UNA enables two or more developers to edit the same code, at the same time, and communicate through a chat system, whiteboard, and collaborative notes.

Our contention and experience is that when developers work together, in real-time -- whether it's with pair programming, or (to an even greater extent) with UNA -- they are better at solving problems, they write higher quality code, they learn from each other, and they have more fun. With this competition, we plan to measure all these benefits and publish a study in a peer reviewed journal.

Sugrue: Isn't there an obvious conflict of interest with N-BRAIN conducting a study on its own product?

De Goes:
We realize this will be a concern, which is why we're going to be providing access to all data from the competition, so anyone can do their own analysis. And we're collaborating with third-parties who have no vested interest in the company, and openly soliciting feedback from anyone who has concerns about the study, so we're confident the study will withstand the closest scrutiny.

Sugrue: Is this the first year of the competition? Based on interest so far, do you expect to run it again?

De Goes:
Yes, it's the first year. So far, the interest has been overwhelmingly positive, with the news picked up by Dr. Dobb's Journal, Slashdot, and elsewhere. We do expect to run the competition again, but since we won't be trying to get a study out of the results, we can be more freeform in the structure of the competition.

The next competition will likely give non-Java developers a chance to join in on the fun. Java bashing is in vogue today, which means the competition has taken its share of heat from a few Java haters, who think all the good Java developers have moved on to other languages. We think Java is a fine language and that there's still lots of excellent talent in the Java pool.

Sugrue: Is there anything else you'd like to add?

De Goes:
I encourage everyone reading this article to participate, either as a competitor, or as a spectator. This is a great opportunity to socialize with other Java developers, learn something new about Java development, and have a lot of fun at the same time. Drop into the Community Forums and say hello!

The Java Zone is brought to you in partnership with ZeroTurnaround. Check out this 8-step guide to see how you can increase your productivity by skipping slow application redeploys and by implementing application profiling, as you code!


Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}