Hackathons for the Enterprise
The word “hackathon” may conjure images of a group of programmers huddled around glowing screens, pounding out code 24-7 over a long weekend - empty Red Bulls and pizza boxes strewn about.
This couldn’t be further from the truth! Hackathons can and do exist in today’s corporate environments. Recently, I organized a hackathon for my team and saw first-hand that a hackathon executed at the team level inside of any size organization drives innovation, promotes collaboration, and fosters team bonding. All part of a happy and efficient development team.
In this article I will explore why hackathons are valuable inside of a large organization. Why would an enterprise want to sponsor internal hackathons for teams in the first place? What can your team get out of one?
What is a Hackathon Anyway?
A hackathon is a period of continuous time (more than one day) in which a team focuses their effort on innovation rather than on their normal day-to-day routine. That description is full of important pieces so let’s break it down.
Who?
You may be tempted to compare this to “20% time” at Google, which allows individuals to spend some percentage of their time per week on their own personal initiatives, or a company-wide Innovation Day, which is heavily facilitated and involved many employees from many teams. While these models provide value, I am referring to a hackathon executed at the team level.
For this to be most successful, your team should have a fairly high level of autonomy so that you can install new software, drive your own initiatives, and even configure infrastructure on demand. The “Autonomous Team,” in which a team of developers, analysts, and testers fully own the delivery of a project while working directly with product stakeholders, has proven to be an effective way to deliver software. Enterprises often suffer from slow-moving processes and top-down thinking, but the Autonomous Team can iterate and innovate on their own ideas. Hackathons can help teams to cultivate and maintain an innovative spirit.
What?
What a team works on during a hackathon is completely up to the team. So anything goes right? It’s all about creativity and thinking outside the box, right? Well… not quite. We must remember that the hackathon is happening in a business during working hours. Therefore, we need to strike a balance between personal gain and business value - with the scale tipping more towards the latter.
It is important to consider multiple dimensions such as “How long will it take to finish this project?” or “How much value could it provide to the team?” when deciding to dedicate time to a specific project or idea during a hackathon. This analysis could be done many different ways. See the “Tips & Tricks” section below for more info.
For example, a successful project from my last hackathon was the “Easy Deployment Button,” a physical button you could press to trigger a deployment. The perceived team and business value at first was fairly low, but after exploring the idea, we realized that it was an excellent demonstration of the powers of automation over manual steps. A literal one-press deployment was possible. On the other hand, the fun factor of this project was super high. It involved electronics, software, and even a bit of soldering in the office!
How Long?
Time is a crucial factor for a successful team hackathon. It should be run as a multi-day event. Shoot for the three to five day range. When an individual or a group only has a single day to work on something significant, they may not be able to achieve much...especially when experimenting with something new. But when given a few days, you have time to learn, experience some trial and error, and are more likely to come out with a polished prototype or working software. One or two days just is not enough time.
It’s highly unlikely that the stars will align perfectly so that all deadlines will magically dissolve so that your teams can devote an uninterrupted week to a hackathon. Putting it on the schedule early and planning for it is your best bet to actually make it happen. Avoid thinking of a hackathon as something that will only eat time away from hitting your tight deadlines. Instead, it is something that you build into your schedules that will help your team to deliver a better product faster. Keep the long term gain in mind.
Why?
Hackathons engender innovation. Everything about it, from ideation to implementation, encourages the team members to be creative. This isn’t something we get to do everyday. As such, a time to bring creative energy into the team and focus it on the organization gives people a chance to flex their brains in new ways.
Hackathons give space for a single person to focus on a single idea all the way through to completion. On an agile team, ideas may come from customer feedback, and then analyzed, designed, coded, and tested by four different people. By giving someone the power to control that entire flow from ideation to completion, not only do they experience a deeper sense of accomplishment, but they also get a more holistic view of the development process.
Hackathons promote cross-pollination of roles. A big anti-pattern is to think that hackathons are for developers only. This is a team event! Everyone on the team should participate. During a recent hackathon we had a User Experience Designer pairing with a Developer redesigning the application as mobile-first, and a Business Analyst pairing with an Iteration Manager figuring out how to improve the customer community interactions! Afterwards, they spoke of how the different perspectives each person brought to the table really helped make their projects fun and a learning experience.
Hackathons add tangible value to the organization. The most obvious tangible output from your team’s hackathon is the projects. While it’s unlikely that your hackathon projects will be production-ready by the end, look to turn your hacks into full-fledged production solutions. This not only adds tangible value to the organization’s software, but is also a pretty big morale boost for your employees to see their ideas recognized and providing value.
The less obvious (but more important) output is the process and growth of the team. For a few weeks after the last hackathon I participated in, the team was on a bit of a high. We knew what we could accomplish some amazing things when we put our minds to it. We saw how creative our teammates were. As we returned to business as usual, we had a renewed enthusiasm in working together as a team and delivering awesome software. And we already started planning the next hackathon.
Tips & Tricks
Here are a few practical tips I learned along the way to help make your team hackathon a success. Use them or put your own spin on them. Remember, its a hackathon so be creative!
- Consider using “sliders” (or just thinking about them) as a way of visualizing the aspects of a project idea when deciding if its something you want to do during the hackathon. For example:
- Time - How likely is it that someone on my team can “complete” (used loosely here) this hack during the hackathon?
- Team Value - How much value could this hack provide to the team/project?
- Business Value - How much value could this hack provide to the organization as a whole?
-
Excitement - There is an aspect of fun in a hackathon. How “exciting” is the hack? (New technologies, brand new ideas, etc)
- When thinking of ideas, consider grouping them into categories such as Tech Hacks, Design Hacks, or Non-Tech Hacks. These categories are not intended to segregate roles, but merely to highlight the various options. Any role can work on any hackathon project with anybody else.
- Immerse yourself and your team into the activity at hand. During the hackathon, try to minimize context switching and devote as much time and energy as you can into your projects. Maybe this means skipping normally scheduled team meetings such as stand up or sprint planning. Maybe this means blocking off calendars and pushing back external meetings.
- Make the hackathon fun! Make t-shirts. Get the whole team involved in organizing. Order food. Play music. Celebrate with opening and closing ceremonies.
- Don’t let your hackathon happen inside a box. Share the learnings with the organization. Internal blogs, mailing lists, or lunch-and-learns are all great ways to spread the news. Showcase the outputs and cool things your team built, but don’t let that be the focus. Instead, shift focus to your team’s learnings and encourage others to have their own hackathons.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.