|hackfest n. A meeting where developers gather together in person to work on a free software project.
Hackfests are one of the ways that things get done on free software projects like GNOME. They get lots of good work done, they energize teams and raise visibility of the project and its mission.
The free software community is great at getting things done in a virtual environment. Large projects can fix bugs, add new features and put out regular releases without ever meeting over the phone or in person. However, there are some things that can be done much more quickly in person, such as design discussions or future plans. For example, according to Seif Lotfy, at a recent meeting at the openSUSE conference, the Zeitgeist team accomplished in 4 hours what would have taken them several weeks to decide on mailing lists and IRC channels. A conversation around a whiteboard or even a piece of paper can clear up a lot of misunderstandings and get a lot of work done quickly.
In addition, at hackfests having everyone together for a week means that everyone is working on the project full time for the week (not just a few hours after work) and the project is energized. On average, a lot more work gets done in the weeks after the hackfest.
Hackfests are planned
If you are interested in a hackfest or think your project would benefit from one, it’s up to you to plan it. As people who have planned hackfests have pointed out me, organizing a hackfest isn’t easy. It takes time. Daniel Siegel, who has organized several hackfests, recommends you think about the following points:
- Local. You should have local people! It’s very hard to plan a hackfest if you don’t have someone there to check out the hotel, venue and places to eat.
- Experience. It always helps to get some help from others who have organized hackfests in the past, especially if it’s your first time.
- Teams. You don’t have to do it all yourself. A hackfest can be coordinated by a team of people.
Steps to planning a hackfest
Here are the general steps to planning a hackfest. Some of the steps can be done at the same time, some can be done in different order.
- Identify a project or theme. GNOME has had productive hackfests on things from GTK+ to documentation to usability. Pick a project you care about that could use a boost of time and energy.
- Identify what you’d like to get done on that project during a hackfest. What’s the benefit? What are you looking to accomplish? This is key to making sure you get the right people and that you can find sponsorship.
- Who should be at the hackfest? Think not only the maintainers for the project but also related people. Does it make sense for someone from the usability team to attend your GNOME Shell hackfest? Someone from the accessibility team?
- Coordinate times. Find out if the people you are interested in invited can come and find out what dates would work for them. Some people might be able to get work time to come, but others might need to take vacation in order to attend. A good hackfest has anywhere from 4-20 people. Smaller hackfests tend to be more effective unless you can easily break your group up into productive subgroups.
- Identify a location. Next find a location to have your hackfest. Hackfests are usually held at universities or companies. But not always. The GTK+ hackfest was held in an apartment building that was rented out for the hackfest. People lived, ate and wrote code in the same building for the week. Often companies are willing to host a hackfest in a conference room. (Google is providing a room and food for the marketing hackfest.) Conference organizers have also provided space for hackfests during the conference. Don’t forget to think about travel – are most of your participants in Europe? Then you might want to hold it in Europe. Having your hackfest near a major airport minimizes travel time and costs and maximizes hackfest time.
- Pick a date. Your date will depend both on participants’ availability as well as when your location is available. The project can also play a role – we are doing a marketing hackfest in November to
prepare for GNOME 3.0 marketing. The further in advance you pick a date, the easier it will be to coordinate travel and sponsorships.
- Get specific. Make sure your plans are specific. Once you’ve picked a project, goals, times, location and figured out your costs, be sure to make those plans public and make sure you are detailed about what and how you are trying to accomplish.
- Notify the GNOME Foundation. You will need to let the Board of Directors and the travel committee know your plans. You’ll need to let the travel committee know how much money you have for travel. They will then take travel sponsorship applications and make sure the money is used as effectively as possible. You can follow the new hackfest guidelines. GermÃ¡n PÃ³o-CaamaÃ±o from the GNOME travel committee says:
- It helps if you can give the travel committee advance notice – it may take up to a month to process applications and let attendees know how much funding they can get.
- Buying tickets early usually means saving money.
- Encourage your attendees to be frugal, to search for cheap airfares and accommodation as it enables more people to receive travel assistance.
- Publicize. Let everyone know about your hackfest! This will help you get sponsorships and might also recruit additional participants that you may have not considered inviting. Good ways to publicize are blogs, posting on relevant mailing lists and direct mail to people you think could help out with publicity. You can also ask the GNOME press team for help. Although you are responsible for the budget, the board of directors, the press team and the marketing team can help publicize and look for sponsors.
- Travel. There are several parts to travel:
- Housing. Having everyone stay in one spot not only saves money but also makes for a better hackfest as people tend to continue talking, designing and working into the evening. Good options are hostels and budget hotels. Some very successful hackfests have managed to rent furnished apartments that served not only as housing but as the place to hack during the day.
- Food. Typically people are on their own dime for eating at GNOME events, but during a hackfest you may want to budget for pizza for a late night hacking session or coffee and donuts to get things going. Or sodas and chips to keep people happy while productively coding. Note that the GNOME Foundation only sponsors travel and accommodation costs. However, some times a company is willing to sponsorÂ food.
- Providing travel assistance. Hackfests are most successful if you can help pay for the participant’s travel costs. Once you have a budget, let the travel committee know how much money you have and who you’d really like to have at the hackfest. The participants can then
apply to the travel committee for travel assistance. If you are having them book their own hotel, that can be part of their application.
- Getting people to the event. You should let everyone book their own travel to the event. They should pay it themselves. If they got a travel sponsorship from the GNOME Foundation, then reimbursement will happen afterwards. (Although the sponsorship amount should be agreed to before hand.)
- Note that often companies will pay for employees to travel to hackfests or sometimes give them paid time off to attend the hackfest. Individuals should ask their company directly. You can provide a letter of invitation if necessary. (Ask the travel committee for help.)
- Sponsorship. Typically hackfests are sponsored by one or more companies with an interest in that project. Companies can sponsor by providing space, food, employee time, employee travel or money. Money is usually used for travel. In fiscal year 2010 the GNOME Foundation also has money budgeted for hackfests. Hopefully funds will be matched by corporate donations so we can fit in as many sponsorships as possible. Stormy and the Board of Directors can help you approach
companies for sponsorships.
You can see a list of GNOME hackfests, past and future.