Sometimes, there is no room for perfection. I think this is true for most first iteration web applications. This past weekend, I got together with three other Ruby on Rails developers to take a shot at the annual Rails Rumble competition. It was an experience that I shall never forget.
The idea behind the Rails Rumble is to develop a web application from the ground up in only 48 hours straight using the Ruby on Rails framework. Only the planning stages can be done before the start of the competition, such as deciding what the application is going to consist of and who is going to do what, but no digital assets of any kind are allowed. In the weeks leading up to the Rails Rumble, our team came up with quite a few ideas for the Rumble. Some were our own, and others were ideas solicited from our family, friends, and co-workers. Unfortunately, none of them seemed to create that feeling of excitement that makes the development process so much more fun. Only a day or two before the competition, we on an idea that we would pursue. That idea is now called Dude We're There.
Dude We're There is an online travel tool that simply connects you with nearby friends and events during your travel. Have you ever gone on a vacation or a business trip and learned only days after returning that you missed a good friend who was in the area at the same time. Maye you missed a cool event that was only a few miles down the road while you were there? Well, we are here to help. Although we can't take you back in time to meet up with that friend and attend that sweet event, we can help you avoid the same mistakes in the future. Here's what you do. Log in, invite your friends, enter your future destinations and the dates, and we will tell you which friends will be in the area and what events will be happening around you while your are there. It's that simple!
The initial feature set was a little less than we had hoped for. For example, you can't easily see friends near you while you're NOT on travel. Also, you can't import destinations from your calendar, which is somewhat important. And, we do not yet give you the option of email notifications. However, you can import your Google or Yahoo contacts to make it easier on inviting your friends. Aside from the features, we need to rethink the design and lay off the "dude" references quite a bit. So, while there is much work to be done, it is well underway to being a very useful app.
After the weekend, we ended up with quite a few lessons learned. This was, after all, our first Rails Rumble. Here are a few:
First lesson: It is imperative that you either pick an idea and start planning well before the start of the competition, or that you pick an idea that is so dead simple (and useful) that you could code it in your sleep and concentrate on the design and user interface.
Second lesson: Staying awake as long a possible to get as much done as possible will reflect negatively on your work if you are not accustomed to staying up that late. The better option would be to just go to sleep and wake up refreshed and with a clear mind.
Third lesson: Make sure that all developers are on a level playing field when it comes to Ruby version, etc. This especially matters if you're freezing certain gems in your application.
Fourth lesson: Don't just assume that a plug-in or gem has no bugs in it. We ran into a problem with GeoKit that took a bit of time to fix, which brings me to my next lesson.
Fifth Lesson: Do everything you have to do to prevent yourself from stalling on the unimportant. If it's not important, make a note of it and MOVE ON!! This is really a life lesson, but this is not a life post, so I won't get into that here.
Overall, the weekend went well. We got a lot done, and we learned a lot. Most of it boiled down to planning ahead. Hopefully, someone will learn from our lessons... us included. So start thinking up ideas now for next year, and keep your ear open for random clues to ideas out in the real world.