After attending Indy’s first civic hackathon, I’ve been thinking about how events like this could get folded into on-going development. I’ve been struck by how hackathons are typically described as discreet events…and how wrong that is. I get the fact that you want to create excitement to bring people in; and at the end, everyone is too exhausted to do much else other than go home, take a shower and get some sleep! However, getting wired on energy drinks and coming up with a great prototype to win some cash and prizes isn’t actually solving real problems.
Don’t get me wrong, hackathons are a GREAT idea…first hand evidence of that were the results of Indy’s Civic Hackathon. The end products and all the tweets signal a huge success for this event. However, all of us IT professionals know that it doesn’t end at the end of the event. The challenges that the teams took on still exist and apps need to be implemented and/or promoted to the public. Also, Indy’s open data portal is still up and running and available to anyone…that’s right – anyone! That may not be intuitive because the idea of open data is still kind of new to alot of people…including me. So the question that’s nagging me is: What’s next?
To come up with a ready-for-prime-time app (web, mobile or otherwise), there are some very important and very non-sexy issues to address: security, performance, scalability and supportability. Imagine, if you will, a CIO walking into his help-desk area Monday morning and saying, “…the hackathon this weekend produced a great new app and it’s running – now…so just FYI in case you get calls about it…you might want to reach out to [winning team name] to find out how they built it…” Of course, this is hyperbole but does put a fine point on the need to transition from idea/prototype to production application.
The great thing about a hackathon is the creativity it generates and forces developers to create an “entire thought”. That is, to be judged for the prizes, they must create an entire stack of an app from backend to UI so that others (i.e., the judges) can actually see what it does. This is a great way to show developers the need for a few things:
- How to take the initiative to accept vague requirements and fill in the gaps in a reasonable manner
- Realize that everyone needs to see/experience something working to provide feedback…half-done or incredibly buggy code doesn’t allow for good feedback
- Testing as developers code to ensure that all features work at the end of the event…whether it’s unit testing or regression testing as more features are added, developers must get into a mindset of testing themselves rather than handing things over to a QA person
Outside of a hackathon, I’d love it if all the developers I worked with had this mindset. It would certainly make the development process easier and push the rest of the team to “up their game”. So to leverage a hackathon as PART of the process to create production apps and promote a high-quality development team, here’s what to do:
- Have your Product Manager(s) select a couple high-value item from the backlog around which to organize the hackathon
- Decide if you want an internal-only hackathon or you want to invite outside people. This has pros and cons as outsiders could bring a fresh perspective and healthy competition but they also may push towards tangents (and/or technologies) that you’re not interested in.
- Organize and run the hackathon (I realize I’m over-simplifying)
- During the hackathon announce an additional incentive for any app that makes it into production
- After the hackathon dust settles, organize a Scrum team around the winning app
- Create a backlog that includes items that are needed for production…this is creating “what DONE looks like”
- Work through the items until its ready for production
- …and of course, promote the heck out of it when it goes live (advertising the folks that received the incentive)…and be sure to continue to reference the starting point was the hackathon. This will reinforce the value of the hackathon and create more popularity for the next one.
One last item regarding the Indy Civic Hackathon and this post: There is so much opportunity to be mined with Indiana’s open data. While the current data is good…the data waiting to be unlocked provides a huge opportunity to create some amazing value for everyone in the state. The difficult part (oddly enough) isn’t creating the apps – we saw that. The real challenge is working with all levels of government to make appropriate data available.
I’ll be working towards that goal because it is the data is what will unlock all the potential!