(Last weekend, the Pune Rails Meetup community organized a weekend-long Hackfest to build a Citizen Empowerment App. Gautam Rege, one of the organizers of this hackfest wrote this event report about the hackfest, which first appeared on the Josh Software blog, and is being re-published here with permission.)
Damn! Hackfests really work.
At the latest event of the Pune Rails Meetup – we organized a hackfest for the ‘second’ time (ahem – the first one ended before it started). This time however, we had a plan:
“Citizen Empowerment for Better Governance” – the aim was to complete the MVP for this in 2 days! We had a record attendance of 25-30 people on both days. I was skeptical of how much we could do, how much we can organize and if we can manage to keep everyone satisfied – it was make or break!
http://kipwiki.heroku.com — WE DID IT! This portal is almost complete (a few technical glitches but over all I would say it was success in more ways than one. The source code is hosted on github: https://github.com/punerb/kipwiki The hitch was that MongoHQ use v1.6 which does not support $nearSphere conditions for geo-spatial indexing — this causes our geo-location to go for a toss.
These are the lessons we learnt:
Pair Programming
This was not mandated but recommended (LoL — “mandatory pair-programing” — an oxymoron?). This photo says it all. Everyone paired with someone automagically — and it worked like a charm.
There were plenty of more modules build, tracked and tweaked. However, everyone was open to change, talking to everyone AND most importantly committed to “GETTING IT DONE”.
What we did
Initially,we had some mocks that we got confirmed – narrowed down the scope of work to 2 days, discussed with Peter at length what he wanted and then planned this hackfest. The first morning – we discussed the plan and with 1 hour we got down to business. This was our rails stack:
– Rails 3.0.7
– MongoDb (via Mongoid)
– Devise & omniauth for authentication
– mongoid-paperclip (with S3 as storage).
– Heroku and MongoHQ
– jQuery search result filtering
The Party continued into the night
Peter sponsored not just the lunches and dinners – but also ensured there was a steady flow of juices, snacks, fruits and beer! Shardul did not miss the chance to ‘showcase drink-fest’ 😉
Peter even bought a ‘Hackfest’ cake – what more could we ask for?
We worked on the first day till 11.30pm and then crashed to be ready for Day2. Day2 was very very productive and we were coding till 1.30am in the night to reach the finish.
Lots of beer, fun, ‘resolving conflicts’, ‘git blame’ games — and even doing something right like this one of Sergey! 😉
Coding, Designing and Testing
We were able to churn out a LOT of code indeed. But it did not start there. We had to design the web-portal with our designers, we had pivotal tracker to track stories and rspec to test the models. No we did not do ALL this. We used Pivotal tracker to check and evaluate stories and unfortunately we did not do Test Driven Development. Some of the things that we need to improve.
The excellent part of was that we had some rock-star programmers – who churned out a LOT of awesome code and we had some excellent designers who helped with designing.
“427 commits from 17 developers” and here is the impact:
We missed out on Test Driven Development!!
This is one thing that we need to do differently at the next hackfest. Its very important to see this work beautifully and always be ‘code green’.
All in all I think we are ready to be a part of RailsRumble later this year and I do intend to get Pune.rb on the RailsRumble map!