Techies love hackathons. What could be better than getting together for an evening, or a weekend, with food, friends, maybe a beer, and using one’s magic powers to create a piece of technology that saves the world?
I exaggerate. Most people don’t think they’ll save the world in a weekend, but sometimes they act as if they believe they can.
As software professionals, when was the last time we went to our bosses and said “No problem. I’ll build that brand new production system for you in 8-16hrs”? Probably never.
Certainly not as often as we’ve freaked-out when the boss came to us with some impossible deadline. “You can’t expect me to build something effective, reliable, great in N-months!” we scream. “Be reasonable!”
So why do we sell the myth of the 2-day app to non-profits and other mission driven organizations?
Maybe we like the buzz of seeing ourselves as heroes able to jump tall-buildings with our nerd super-powers.
Or maybe we just like the pizza.
Either way, there are several problems with the way a typical hackathon model that make it almost impossible for them to succeed. I list some specifics below, but first I can sum up the core issue:
Hackathons just aren’t serious. They are in no way up to the challenge of delivering effective, useful, impactful technology.
A little more detail:
Most programmers are familiar with Brooks’ Law that nine women can’t make a baby in one month. When we pretend we can accomplish something in a hackathon or two we it’s like 50 people making a baby in two days, and then we let it starve.
So should we just give up and enjoy the pizza and socializing without pretending we are saving the world?
No. We can get serious and we can learn from people who have models for successful volunteering.
While writing this blog I decided to call a friend who I thought could help me think through a better approach. He’s a software entrepreneur. He’s also a carpenter and a long time volunteer with Habitat for Humanity.
Habitat accomplishes something pretty amazing. They regularly plan and complete complex, long-duration projects using a mixture of sweat-equity from soon-to-be homeowners, paid experts, and volunteer efforts from both amateurs and skilled professionals.
For those of you who don’t know Habitiat, they build houses—everything from simple single-family homes, to multi-unit urban condo developments.
It would be too long a blog post to go into all the details of how they accomplish this, but here are some key elements that could be used in a successful volunteer software development project.
If we want to provide real value for the organizations we are looking to help, we need to expand our efforts beyond these fun little events and find ways to create (and pay for) an ongoing sustained project effort.
What if you (or your company, or your hacker-group) can’t can’t commit to an ongoing project?
The Habitat analogy still holds. You don’t have to be Habitat for Humanity to do useful work. You can be a one-weekend volunteer. The key to being a useful one-weekend volunteer is to make sure someone else is seeing the project through and that you are helping them.
So if you can’t commit to following through on a many-month, many year project—and let’s be honest, most of us can’t—you can make sure that your efforts are serving the people who have committed for the long run.
At the end of the day, it’s about caring more about the value we provide, the outcomes more than the pizza and beer and ego-stroking we know we’ll receive.
Jeff co-founded Thoughtworks' Social Impact Program and is currently with Mercy Corps as a technology advisor. Visit his blog to read more about his experiences.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.