Rails Rumble 2013: A Retrospective

About the Competition

Last weekend I participating in a 48 hour rails development competition called Rails Rumble. The goal of the competition is to develop a rails based application. After the 48 hour period the applications are given feedback by other developers, than by the judges. The judges choose their top 10 favorite applications and the top 10 are declared winners. There’s also a winner for the best public favorite application and one for the best application built by a single person. Judging is base on originality, usefulness, appearance, and completeness.

The Project

The project that my team, which consisted of my brother and I, was to build a platform for collaborative brainstorming. Users create themes around a project, or question to get ideas or more questions on. Members are added to the theme to add their ideas. One goal of this project was to make everything realtime. To accomplish this we used Pusher, which is a publish/subscribe based system. You can check out the application here, feel free to leave comments here or on the rails rumble site, any feedback will be appreciated.

The Retrospective

This was the first code competition/hackathon that I participated in and I feel like there are a few areas that can be approved upon for future competitions.

Planning

This is key, and while we did plan a little for this, I felt like we could have planned a little bit more. I would have liked to have more wire diagrams to show the flow through the application. Along with the wire diagrams, having a design in mind might have been a good idea. Instead we just went with Twitter Bootstrap, which is great for quickly prototyping the user interface but leaves a lot to be desired in terms of aesthetics.

One of the things that we wanted to do was make things snappy, to do this we used KnockoutJS. It would have been better to design how the front end client javascript at a high level. While I think we did a decent job with this, we did run into a bunch of problems (especially with the pusher integration). If we have thought this out a little better before starting the competition we might have been able to prevent this. UML and sequence diagrams would have come in handy!

Divvying up the tasks beforehand would have been helpful, too. In the future I think we need to generate user stories and use a service like Pivotal Tracker.

More team members

Having more team members would have been helpful, especially if at least one was devoted to coming up with the design. If we might have been able to implement everything we had in mind. We could have also divvied up the work better (given we planned a little better). Another note I would like to make on the team would be to have everyone in the same place. My brother and I did this virtually (since he lives in NYC). While this was definitely doable, it would have been better if we were in the same place, especially when issues came up that we had to find a solution to.

With this is mind I think next year’s competition (and other potential competitions) could go more smoothly and produce an even better end result.