The Rumbler's guide to Keeping Sane
With this years upcoming Rails Rumble I thought I'd take this chance to write up some of my tips for taking part in the competition. I'm a new member of the RailsRumble organizational team this year after having competed as a solo team member in last years competition.
Planning your Entry
Almost as important as the actual competition itself is the preparation leading up to it. As per our rules, You're not allowed to write any code or do any actual development beforehand, but you are allowed to do UI sketches as well as other planning tasks for your entry. Things will move much more smoothly if you've worked out the order different parts are to be developed in, what plugins you'll likely use and exactly what your entry is going to do.
If your whole team is near each other, try and hold a preparation session to whiteboard your app. If that's not possible, you're allowed to use similar online equivalents - such as Dabbleboard - to recreate this experience. (under the one condition that what you produce is used in the same vein as if it were produced on paper - e.g. you don't use anything produced inside your actual application).
If you're working as a part of a team - especially from more than one location - communication is going to be an essential part of the competition. For this, there are a couple of options which we suggest. The first is Skype - If you haven't used it before, Skype not only offers excellent voice chat / voip support but it also has one of the better IM implementations - esp. in regards to persistent group chats. The next (and the one we use ourselves leading up to the competition) is IRC - it's simple, accessible and there are numerous clients for it, both on and offline. The last - and the one that has gained a lot of traction in the last few years - is in-browser chatrooms. For this, we wholeheartedly recommend one of our sponsors products — Signalfire by New Leaders. It's simple and more importantly, free!
During the Competition
This year, we'll be doing a few things slightly differently. For starters, we've ditched SVN and gone with Git and for ultimate awesomeness, we've also teamed up with cool folks over at GitHub. What this means for you as a team is that during the competition (and for a short time after) you'll have access to a private git repository on GitHub which you'll use to host the source of your application. If you wish to open source you're entry, it'll be as simple as forking your code. It also means that if you don't know git you'll have to learn it - now. It's not very hard to get started (you can easily get by in the competition with 4-5 commands) and if you do have any issues, we'll be on hand in #railsrumble on Freenode to help out with any questions. If you haven't used IRC before, Mibbit offers an excellent web-based client. Other than that, there are a few other specific tips to keep in mind:
Keep focused - Given your time is so limited during the competition, it's important that you don't worry about a bunch of small things; your focus should be on getting your entry written and running, one component at a time. This one is a bit over-arching but if you try to focus on solidifying small parts of your app at once and having a good plan, you'll have fewer issues when it comes to the end of the competition.
Thoroughly test the core of your application - I don't give a damn if you don't TATFT, I can't stress how important it is to make sure you test things such as sign up, registration and the like - those parts which using you're application is dependant on. If they fail, your app isn't going to get many votes. The improved scm hosting this year means we most likely wont give you a few changes post-deadline like we did last year so it's important to make sure your code works at the end of the competition. Even better yet, if you make registration OpenID-based, you'll remove a lot of extra code on your part on your part which you'd ordinarily have to worry about - making it easier for both you and your users to get started.
Get at least six hours of sleep - You don't want to be nodding off / struggling to concentrate when you have 10 minutes left until the competition ends - Funnily enough, sleep fixes that. Also, try to avoid drinking too many red bulls in a short period of time - it'll screw you up in the short term especially in the days following the competition.
Use plugins where possible - It'll save you from writing and testing common / boilerplate code. I'll even go as far as to recommend Bort as a good place to start - It offers up a bunch of basic functionality without you manually having to install a bunch of plugins. Note that almost all other pre-existing rails applications applications are not allowed for the competition (e.g. Insoshi, Lovd by Less will not be allowed) but we've chosen to allow bort and similar 'blank slate' style apps due to the fact they usually just package common plugins. If you're not sure, ask us. Since you're competing in such a short time, embrace the constraints. Just make sure you don't use anything that would constitute cheating - that is, something that implements a significant part of your application.
Support OpenID / Simplify signup - The best way to get people using your application is to make it as easy as possible to "get in". The simpler it is to get started, the better the chance voters will put in the effort to try out your entry. If you've never used OpenID before, you can use Bort or one of the many rails OpenID plugins to get started.
Will all of that said and done, it all comes down to what you can make in 48 hours. For all of the teams competing, we wish you the best of luck. You don't have to win first place to get a great experience out of the rumble - use it as an opportunity to play with new technologies, to see how well you can work with a different team of people, or just to get a first draft of an idea you've been dreaming about for awhile out and in front of some eyeballs.