Learnings from a Environmental Sustainability Hackathon
Spent the weekend at a hackathon organised by UPSingapore with the National Environmental Agency (http://cgs.sg/hackathon/about/). Was quite interested in the environmental themes. However, the data-sets seemed to consist mostly of Excel spreadsheets of locations or past measurements. Only the dengue fever disease statistics and monthly electricity and gas consumption data-sets got me interested.
I was disappointed with the ideas pitches - most were half-baked, even downright speculative, and it seemed to me that most pitch participants had no idea what problem they were trying to solve. What irked me was that most people were looking for someone to 'build me a simple web/mobile app' while they would just be the 'ideas/marketing person'.
Hence I really appreciated the few noteworthy pitches from those who had obviously thought through a problem, or faced the problem themselves. Some had a half-solution looking to be applied to solve an environmental problem, which was quite cool as well.Â
One pitch participant, Marcus, a sustainability manager, was part of an email list of people who wanted to give away their second-hand items to others. His problem was the gross inefficiency of the mailing list and forum system, which did not provide a way to check or update the status of items, resulting in an inability to find/track items, missed or overdue giveaways and a deluge of emails to reply to. He was not alone - there were 12,000 people in the mailing list in Singapore!
Sounded like a meaningful and clear problem to solve so my friend, Bruce, and I decided to contribute. Turns out a web application would address this and we spent quite a bit of time figuring out what technology stack would be appropriate. After deciding on one (with me being very vocal of Ruby on Rails) we wanted to get started on coding.
That was when we hit the first major roadblock - technical setup. While I have experience with webapps and Ruby on Rails and could, in principle, progress very fast, I faced a large problem figuring out which libraries/templates to use and how to get them installed on our machines. In particular, setting up a shared code base was difficult as Bruce had to install the entire development toolset. Even the most user-friendly tutorials had too many steps.
In a hackathon, it is very important to quickly get started, but for most of the evening, we had to meddle with installation instead of working on the solution, which was demoralizing. Bruce suggested reducing the scope and contributing directly to the production environment while we used our source control to keep in sync. So, at 10pm on the second night - 60% into the hackathon - we finally got a code development and testing iteration cycle going. We were using the production website as a debugger - thankfully it was not mission-critical.
Things got a lot better on the morning of the last day when I finally managed to fix some nasty bugs caused by incompatible software versions (after some much-needed sleep), thus finishing the first feature of taking a photo and uploading it to the website to view it (with storage on AWS). What a load of effort for a supposedly trivial feature!
We moved on very quickly, adding UI templates to polish the interface and adding edit and categorization capabilities, and even ending with an email notification form and a Facebook share button! The productivity in the final 3 hours was amazing and finally I felt the hacking vibe I was hoping for, and we finished the minimum-viable feature set. We were quite happy with ourselves at simply finishing and deploying a simple web application live. So we looked forward to the demo pitches.
I was again quite disappointed as the majority were practically powerpoint presentations with a couple of Photoshopped screens. Most of the pitches spent at least 50% of the time on background information - had no meaningful contribution, instead of focusing on showing what they built, because I suppose they didn't build anything substantial.
Thankfully, there were some very smooth demo presentations, which was the saving grace of the event, from my perspective. I learnt a lot from them - not just technical problem solving, but also giving a demo in an environment full of incompatible presentation devices.
While I'm technically-inclined and tend to emphasize evaluating technical and innovation merit, I'd say that even creating a simple WordPress blog with user data, or a LaunchRock page with users signing up to support an environmental cause, or a series of Balsamiq mockups would have been very impactful and meaningful. That would have motivated and inspired me to look at other ways to bring more people together, and apply technology and skills towards addressing environmental sustainability problems.
Our demo was not particularly ground-breaking either, but I liked that (i) it worked, (ii) it was live, and (iii) we were solving a tangible problem, for a target audience of 12,000 folks with a very clear need.Â
Self-reflection - lessons learnt:
don't get caught up by the pitching hype or over-promise features. Instead, focus on value and be realistic - don't assume that it would be 'simple' or 'easy' because it has been done before
it's not about using tools which I'm individually used to - developing at a hackathon naturally means allowing oneself to learn and try new technologies along with the team. That said, come prepared with a set of tools to quickly build up a prototype
to get ready to change the idea/solution very quickly and reduce the scope drastically in order to build something that works
teamwork and delegation was crucial, in terms of choosing a solution approach that allows all team members to pull their weight as equivalent contributors
remember to have fun and talk to fellow participants
We intend to work on our web application a bit more, and launch it soon as an MVP to gather feedback and user traction from the mailing list community and the public.