What is a hackfest?
A hackfest is a session where small groups of Fedora contributors work together to focus on specific tasks. For instance, a hackfest might concentrate on packaging a CMS, writing a release criteria document, or creating UI mockups. The hackfest portion of a FUDCon consists of multiple hackfests happening in parallel.
FUDCon hackfests are different from FADs. Whereas FADs are planned in advance with Fedora contributors who already know each other and the task at hand prior to arrival, hackfests are much more casual and spontaneous in nature (some are first proposed during the hackfest period itself), with a significant portion specifically creating opportunities for newcomers dropping by to make their first contribution to Fedora.
Attending a hackfest
If you know you will be attending a FUDCon in advance, think about the things you are interested in working on and the people you are interested in working with. Look for a hackfest that fits your criteria; if there is something you are interested in that does not yet have a hackfest planned for it, consider running one. Notably, planned hackfest participation is typically one criteria for travel sponsorship to FUDCons.
Once you have chosen or started a hackfest, coordinate with the hackfest leader to do any advance planning, preparation, or learning needed before arriving at the event, and again at the event to figure out specific times and places where hacking will be taking place. Giving your hackfest leader an overview of your skills and interests at the start can also be helpful.
If you show up on the day of a FUDCon and haven't coordinated with a hackfest yet, that's ok; there will usually be a wall and a parallel wiki page describing the hackfests in session and their location; go to one and introduce yourself. If you are working on a hackfest and a newcomer arrives, take time to make them feel welcome and get them started on a task.
Throughout the hackfest, document what you are working on. If your group is working on IRC, log the conversation. At the very least, write a summary blog post after the hackfest detailing your accomplishments and next steps (if applicable).
Running a specific hackfest
Running a hackfest is fairly straightforward. You need:
- A clear goal
- People with the skills necessary to achieve that goal (Travel funding can often be requested to get the right people together for a FUDCon hackfest)
There are only a few things you need to do.
- Once you decide to run a hackfest, put an entry in the hackfest table on the page of the FUDCon you will be running it at.
- Recruit participants before FUDCon; help them prep beforehand if needed (highly recommended). Remote participants are extremely valuable and should not be overlooked!
- Attend the opening the morning the first day of hackfests in order to briefly describe your hackfest and choose a room to work in. Make sure any mailing lists, IRC channels, wiki pages, etc. where people may be going to find information about your hackfest gets updated with the appropriate information.
- During the hackfest itself, keep people in sync, on track, and fed (it is important that your hackers eat - though they will typically remind you of this!)
- Welcome newcomers if they come in during your hackfest; help them get started on a task right away.
- Ensure your work and progress is well-documented. This can mean everything from ensuring developers use version control to photographing whiteboards, getting zodbot into your IRC channel and logging conversations, emailing updates to mailing lists periodically, encouraging participants to blog at the end of each day, and so on.
- Thank participants afterwards, and write a summary post to Planet Fedora recapping the accomplishments of your hackfest crew.
- Congratulations, you're done!
Coordinating all hackfests at a FUDCon
You may find the following table helpful for use as a template. An example of this table in use can be seen for FUDCon Toronto 2009.
Session Name | Session Leader | General Plan | Prerequisites, if any | Where? |
---|---|---|---|---|
Name of the session, linked to the wiki page for that hackfest (the hackfest leader should create this). | Name (and link to contact information) of the hackfest leader. | The purpose/goal of the hackfest. | Should people have preinstalled any packages, made any accounts, done any background reading, or acquired a certain level of familiarity or skill on a topic before attending this hackfest? | The location of the hackfest, once you know it. This will often be scheduled on the morning of the first day of hackfests when people know what hackfests are going on and what rooms are available. |