09/11/2017
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 have 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.