A hackathon (also known as a hack day, hackfest or codefest) is a design sprint-like event in which computer programmers and others involved in software development, including graphic designers, interface designers, project managers, and others, often including subject-matter-experts, collaborate intensively on software projects. Occasionally, there is a hardware component as well. Hackathons typically last between a day and a week. Some hackathons are intended simply for educational or social purposes, although in many cases the goal is to create usable software. Hackathons tend to have a specific focus, which can include the programming language used, the operating system, an application, an API, or the subject and the demographic group of the programmers. In other cases, there is no restriction on the type of software being created.
The word "hackathon" is a portmanteau of the words "hack" and "marathon", where "hack" is used in the sense of exploratory programming, not its alternate meaning as a reference to computer crime. 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 to avoid legal problems caused by export regulations of cryptographic software from the United States. Since then, a further 3-5 events per-year have occurred around the world to advance development, generally on University campuses.