This week I got to see a small OpenGive hackathon project make a big impact on the lives of thousands of kids. It was gratifying to see the positive reactions of people benefiting from something you’ve worked on rather than just reading the bug reports, which can feel like a list of failures. Like most sites, MyHomeLibraryHouston.org started off as just an idea. I’m going to show you how we made that good idea a successful reality.
The idea of planning and hackathons don’t usually go together. Sure, there is planning for the location and making sure there is adequate space, network bandwidth, and food and beer soda. But the actual projects don’t usually have much forethought. When we started planning the Houston OpenGive hackathon, we knew we wanted to work with some nonprofits to give back and part of that partnership was an expectation that those nonprofits would be getting something valuable out of the experience. In other words, we were promising a minimum viable product for these groups.
Last summer, I was asked to lead the volunteer team for one of the Houston OpenGive projects. I met with the Barbara Bush Houston Literacy Foundation in August to brainstorm on their idea. The foundation had a clear idea they wanted to implement. It was obvious that this was something they had given thought to prior to the meeting so we were all able to come away with direction and action items. To borrow from agile terminology, we had a product owner who had a clear vision for what they wanted and they communicated it well.
Armed with knowledge of the application’s purpose and audience we could make technical decisions ahead of OpenGive. If we had waited to make those decisions during the hackathon, we would have just wasted time. Decisions such as frameworks, hosting, and third party dependencies (e.g., payment processing) were made ahead of the event so that the focus would be on user experience and core business logic.
ease of entry
Anyone who has joined a software project knows that the first half of the day is usually spent getting your environment configured correctly to be productive. Language and framework versions need to be in sync, build tools must be updated, and databases must be built.
This is anathema to a hackathon’s mojo.
To complicate things, a hackathon brings people together from different backgrounds, which means there isn’t a consistent technology stack. I knew I only had about 10 hours of productive time and any minute lost to environment setup was a waste, so I decided to build it for them. Leveraging virtualization and Vagrant, I built a single environment that anyone (Windows or Mac) could use independently. All anyone had to do to become a contributor was checkout the code and run a single line script and they were ready to code.
After OpenGive, we had a product that was 80% complete. Credera made sure that the last 20% got done, and the foundation used their media and volunteer contacts to promote the application. This investment in time and resources by both Credera and the Barbara Bush Houston Literacy Foundation guaranteed the success of the My Home Library project. Without a commitment of time, resources, and leadership by both Credera and the foundation, our OpenGive hackathon project would have just been a weekend experiment.