Hackathon
A hackathon, a hacker neologism, is an event when programmers meet to do collaborative computer programming. These events are typically between several days and a week in length. A hackathon refers not simply to one time hacks, but to a specific time when many people come together to hack on what they want to, how they want to - with little to no restrictions on direction or goal of the programming.
The term sprint is used to describe shorter events of a similar nature, which typically only last a few days. Another name for events of this type, used primarily among Linux users, is codefest, a combination of the words code and festival, drawing its name from installfest, an event at Linux User Groups.
Origins
The term hackathon itself is a portmanteau formed from the intellectual slang hack and marathon. The term seems to have been created independently by both the developers of OpenBSD and the marketing team of Sun; these usages both first happened in 1999.
OpenBSD's apparent first use of the term referred to a cryptographic development event held in Calgary on June 4 1999, where 10 developers came together in order to avoid legal problems caused by export regulations of cryptographic software from the United States.
For Sun, the usage referred to an event at the JavaOne conference from June 15 to June 19, 1999; there John Gage challenged attendees to write a program in Java for the new Palm V using the infrared port to communicate with other Palm users and register it on the Internet. The event was dubbed "the Hackathon".
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a6/Connectathon.jpg/280px-Connectathon.jpg)
Sun has also held a number of Connectathon events since 1986, mostly centered around NFS interoperability. Vendors and other invitees convene during these events to test the interoperability of their hardware and software implementations, identify faults in the specification of Internet standard protocols, and define reusable protocol test suites. Connectathon is more of a developers' conference where participants happen to hack in addition to presenting technical talks to one another, something like the defunct MacHack conference.
Current usage
The term hackathon was picked up by PHP in 2000 for a development event and from there it spread to FreeBSD in 2001 and Apache during the 2002 ApacheCON.
Since its original usage, the hackathon has become more commonly associated with the OpenBSD project than with any other usage. The project holds an annual hackathon in Calgary, Alberta, Canada where as many OpenBSD developers as possible come together to work on the codebase at a more furious pace. The results of these hackathons are usually highly noticeable improvements to either a particular set of tools or hardware platform; such improvements include the radical development PF - which had been started before a hackathon and brought to a much better quality level during the event, expanded support for the Sharp Zaurus, the development of OpenBGPd, improvements to OpenBSD's local cvs system and a large performance improvement to the system through a cleanup of the idle loop.
Companies have recently begun to use the idea of the hackathon, in which they give a day a week or month to workers in order for them to do as they wish development-wise - all results are still owned by the company, but these 'hackathons' allow for employees to escape from their more boring regular tasks and do something that interests them.
While other organisations, including JotSpot, Atlassian, Google, Atom and Technorati, still hold hackathons, few receive the publicity and buzz accorded the annual OpenBSD hackathon. This may in part be due to the frequency and duration of the OpenBSD hackathon when compared to others.
Of note with hackathons is that they are not all done simply by inviting developers together - they take a great deal of organising and have massive financial impact, with Theo de Raadt noting some cost 20,000 CAD for hotel and equipment fees alone. Because of this, hackathons are limited in the rate at which they occur, happening often only once a year or quarter. They also often seek external sponsors such as in April 2003, when the NLnet Foundation paid for the hotel accommodations for the OpenBSD hackathon, which had recently had its funding project POSSE cancelled prematurely.
OpenBSD hackathons
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/61/OpenBSD_hackers_at_c2k%2B%2B_at_MIT.jpg/280px-OpenBSD_hackers_at_c2k%2B%2B_at_MIT.jpg)
Since the original in 1999, OpenBSD has had at least a hackathon a year. During the hackathon, many of the developers come together for a period which usually sees rapid OpenBSD development. The original hackathon took place in Calgary, Alberta, Canada and was attended by ten developers. It was focused on cryptographic development; part of the reason for holding it in Canada was to avoid legal problems caused by United States regulations on the export of cryptographic software. The designation for each subsequent hackathon has been marked by this, as OpenBSD has used c, standing first for crypto and later for Calgary, as the first letter of these events. Since then, hackathons have become a big event, a week-long gathering during which more than 60 developers from around the world come together to drink beer, listen to humppa music - like that of Eläkeläiset, hike, and hack on OpenBSD.
As of 2007, the official OpenBSD hackathons[1] have been:
- c99 - June 4, 1999, 10 developers in Calgary, Alberta, Canada.
- c2k - June 15, 2000, 18 developers in Calgary.
- c2k1 - June 21, 2001, 35 developers in Cambridge, Massachusetts, USA.
- c2k1-II - August 17, 2001, 12 developers in Washington, DC, USA.
- c2k2 - June 04, 2002, 42 developers in Calgary, origin of the "Shut Up and Hack!" motto.
- c2k3 - May 10, 2003, 51 developers in Calgary.
- pf2k4 - April 24, 2004, Sechelt, British Columbia, Canada.
- c2k4 - June 19, 2004, 46 developers in Calgary.
- c2k5 - May 21, 2005, 60 developers in Calgary.
- v2k5 - Nov 1, 2005, ports hackathon, 12 developers in Venice, Italy.
- c2k6 - May 21, 2006, 47 developers in Calgary.
- r2k6 - Jun 14, 2006, network routing hackathon, 6 developers in Hamburg, Germany.
- k2k6 - Aug 28, 2006, IPSEC and IKE hackathon, 14 developers in Schloss Kransberg, Germany.
- p2k6 - Oct 18, 2006, ports hackathon, 14 developers in Budapest, Hungary.
- h2k6 - Nov 25, 2006, driver hackathon, 14 developers in Coimbra, Portugal.
Sprints
A sprint is a short period of software development. Sprints have become popular events among some Open Source projects, for example, the PyPy project is developed the most through regularly held sprints, where most of the international team gathers. They are often held near conferences which most of the project's team attends, but they can also be hosted by some involved party at their premises or some interesting location.
The practice of using sprints for pivotal development was pioneered by the Zope Corporation in the early days of the Zope 3 project, where the greatest improvements in the software were made during the gatherings. From January 2002 till the start of 2006 more than 30 Zope 3 sprints have taken place.
The sprints organized by companies often focus on the concepts of the Extreme Programming software development method. There the sprint is directed by the coach, who suggests tasks, tracks their progress and makes sure that none of the developers encounter insurmountable difficulties. Often the development happens in pairs or small teams. A large open space is often chosen as a venue for efficient communication.
Sprints can vary in focus. During some sprints people new to the project are welcomed and get an intensive hands-on introduction pairing with an experienced project member. The first part of such sprints is usually spent getting ready, presenting the tutorials, getting the network setup and CVS or Subversion checkouts working on everyone's laptops. A different kind of sprint is where only the core team gathers and gets some important work done in a concentrated manner.
As with the larger hackathons, a significant benefit of sprinting is that the project members meet in person, socialize, and start to communicate more effectively when working together remotely.