diff options
Diffstat (limited to 'doc/rfc/rfc9311.txt')
-rw-r--r-- | doc/rfc/rfc9311.txt | 1271 |
1 files changed, 1271 insertions, 0 deletions
diff --git a/doc/rfc/rfc9311.txt b/doc/rfc/rfc9311.txt new file mode 100644 index 0000000..50ef8d5 --- /dev/null +++ b/doc/rfc/rfc9311.txt @@ -0,0 +1,1271 @@ + + + + +Internet Engineering Task Force (IETF) C. Eckel +Request for Comments: 9311 Cisco Systems +Category: Informational September 2022 +ISSN: 2070-1721 + + + Running an IETF Hackathon + +Abstract + + IETF Hackathons encourage the IETF community to collaborate on + running code related to existing and evolving Internet standards. + This document provides a set of practices that have been used for + running IETF Hackathons. These practices apply to Hackathons in + which both in-person and remote participation are possible, with + adaptations for Hackathons that are online only. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for informational purposes. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Not all documents + approved by the IESG are candidates for any level of Internet + Standard; see Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc9311. + +Copyright Notice + + Copyright (c) 2022 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (https://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Revised BSD License text as described in Section 4.e of the + Trust Legal Provisions and are provided without warranty as described + in the Revised BSD License. + +Table of Contents + + 1. Introduction + 2. Timing + 2.1. Agenda + 2.2. Hackdemo Happy Hour + 2.3. Code Lounge + 2.4. Code Sprint + 2.5. Online Only + 3. Funding + 3.1. Sponsorship + 3.2. Expenses + 3.2.1. In-Person Event Expenses + 3.2.2. Remote Participation Expenses + 4. Project Presentations + 4.1. Project Pitches + 4.2. Project Results Presentations + 4.2.1. Templates + 4.3. Upload to GitHub + 4.4. Presenting in Person + 4.5. Presenting Remotely + 5. Tooling + 5.1. Datatracker + 5.2. IETF Website + 5.2.1. Hackathon Website + 5.2.2. Meeting Website + 5.3. Registration + 5.3.1. Participant List + 5.3.2. Caps on Registrations + 5.4. Meeting Wiki + 5.4.1. Hackathon + 5.4.2. Lost and Found + 5.4.3. Results Presentation Schedule + 5.4.4. In Person Only + 5.4.5. Online Only + 5.5. Email List + 5.5.1. Email Alias for Hackathon Chairs + 5.6. GitHub + 5.7. Meetecho + 5.8. Network + 5.8.1. Remote Networking + 5.9. Webex + 5.10. Gather + 6. Statistics and Metrics + 6.1. IETF Survey Results + 6.2. Hackathon Survey Results + 7. Roles and Responsibilities + 7.1. Hackathon Chair(s) + 7.2. Secretariat + 7.3. Sponsor + 7.4. Champions of Projects + 7.5. IETF LLC, Director of Communications and Operations (was + ISOC) + 7.6. Judges + 8. Implementation Status + 9. Security Considerations + 9.1. Privacy Considerations + 10. IANA Considerations + 11. Informative References + Acknowledgments + Author's Address + +1. Introduction + + IETF Hackathons encourage the IETF community to collaborate on + running code related to existing and evolving Internet standards. + IETF Hackathons aim to: + + * advance the pace and relevance of IETF standards activities by + bringing the speed and collaborative spirit of open source + development into the IETF + + * bring developers and early career professionals into the IETF and + get them exposed to and interested in the IETF + + IETF Hackathons are free to attend and open to everyone. Software + developers are the primary audience, but participation by subject- + matter experts who are not necessarily developers is encouraged and + very important as well. Similarly, while the Hackathon is meant to + attract newcomers and people who do not typically attend standards + meetings, long-time IETF contributors, including Internet-Draft + authors, working group chairs, and subject-matter experts, are key + participants as well. Collaboration and blending of skill sets and + perspectives are extremely valuable aspects of IETF Hackathons. + + In addition to the running code created and improved as a result of + each Hackathon, the exchange of ideas, extensions of human networks, + and establishment of trust, respect, and friendships are some of the + most valuable outputs of each Hackathon. Code written in a + programming language is often more illustrative and constructive than + opinions expressed during a meeting or in an email. Working together + to find common understanding of proposals, concerns, and solutions + that result in improvements to evolving Internet standards is as + important as the development of running code that implements or + validates the correctness of these same proposals. + + Consequently, IETF Hackathons are collaborative events, not + competitions. Any competitiveness among participants is friendly and + in the spirit of advancing the pace and relevance of new and evolving + Internet standards. IETF Hackathons are inclusive, not only in terms + of who can participate but also in terms of the projects included in + each Hackathon. All projects should be related to existing or + proposed Internet standards in some way. Examples include, but are + not limited to, interoperability of implementations, proof of + concepts, and tools that help implement, monitor, or deploy network + protocols. + + IETF Hackathons foster an open environment, with much of the code + being open source and results of projects typically shared publicly. + The Hackathon operates under the [NOTE-WELL]; however, the rules and + terms around code are those of the license associated with the code. + Although code is often and preferably open source, it may be + proprietary as well. + + This document provides a set of practices that have been used for + running IETF Hackathons. + +2. Timing + + The first IETF Hackathon was held the weekend before the start of the + IETF 92 meeting. The rationale was to avoid conflicts yet make it + relatively convenient for those attending the IETF meeting to + participate in the Hackathon as well. Holding the Hackathon on the + weekend was also viewed as making it more accessible to those who are + not IETF meeting participants, including students and working + professionals who would have other commitments during the week. The + weekend before was viewed as better than the weekend after so that + things learned during the Hackathon could be shared and discussed + with the rest of the IETF community during working group sessions and + the like. This worked well at IETF 92, was repeated at IETF 93, and + quickly became an established norm with the IETF meeting being + officially extended to include the Hackathon at the start. An + additional benefit of this timing noted and appreciated by + participants is that it serves as a more informal and social way to + physically and mentally acclimate to changes in time zones and + surroundings. + +2.1. Agenda + + The IETF Hackathon is a strenuous event. Though not a competition, + participants want to make the most of their time together, much as + with the IETF meeting in general. Competitive Hackathons typically + run nonstop for on the order of 40 hours. There is a strict + deadline, teams are judged, and winners are declared at the end. + Afterward, participants are wiped out and head off to briefly + celebrate or commiserate but mainly to recuperate. As the IETF + Hackathon serves as the start of the overall IETF meeting, we aim to + strike a compromise that provides time to get valuable work + accomplished without exhausting everyone before the main IETF meeting + even starts. While some people participate in the Hackathon only, + the majority of people remain and plan to be actively engaged in the + rest of the IETF meeting. + + The typical agenda is as follows: + + Saturday before IETF meeting week + 08:30: Room open for setup by project champions + 09:00: Room open for all - pastries and coffee provided + 09:30: Hackathon kickoff + 09:45: Form teams + 12:30: Lunch provided + 15:30: Afternoon break - snacks provided + 19:00: Dinner provided + 22:00: Room closes + + Sunday before IETF meeting week + 08:30: Room opens - pastries and coffee provided + 12:30: Lunch provided + 13:30: Hacking stops; prepare brief presentation of project + results + 14:00: Present project results to other participants + 15:45: Closing remarks and opportunities for next time + 16:00: Hackathon ends + 17:00: Tear down complete + + The time on Saturday morning provides the opportunity for team + champions to set up and participants to socialize and learn more + about projects and teams they might want to join. The kickoff + presentation and formalities are kept to a minimum to leave as much + time as possible for teams to work together on their projects. The + proximity of teams fosters communication and collaboration between + them as well. + + Lunch and dinner are provided as a convenience and an incentive to + remain at the Hackathon. Participants are free to come and go as + they like. It is well understood and accepted that there are other + things vying for time and that meeting with friends and colleagues + outside of the Hackathon is an entirely reasonable thing to do. + + The room closes Saturday evening to give hotel staff unfettered + access to the room and to encourage people to pace and take care of + themselves. There are no rules against continuing work on projects + outside of the Hackathon room. Similarly, working on projects long + before and after the Hackathon is allowed and encouraged. + + The end of the Hackathon on Sunday is driven by other IETF meeting + events. Typically, there are Newcomer events that start at 16:00. + The IETF Hackathon typically includes many newcomers in its list of + participants, and it is important to provide them time to participate + in the Newcomer events. The opening reception for the IETF typically + starts at 17:00, and we want to make it easy for all Hackathon + participants to join that as well. + + Hackdemo Happy Hour (Section 2.2) and the Code Lounge (Section 2.3) + exist to facilitate ongoing discussion and work on projects beyond + the official end of the Hackathon weekend. + +2.2. Hackdemo Happy Hour + + Hackdemo Happy Hour provides an opportunity for more in-depth sharing + and discussion than is possible within the time constraints of the + results presentations that occur at the end of the Hackathon. This + opportunity is made available to all teams. As with the results + presentations, participation is optional. + + Initially, something similar was done as part of [BITS-N-BITES]. + This worked well for the Hackathon, but the Bits-N-Bites event was + eventually abandoned for other reasons. Hackdemo Happy Hour was + created as a low-cost, informal event to provide a venue for the IETF + community to engage with the Hackathon teams in more in-depth + discussions related to their projects. + + Hackdemo Happy Hour is typically Monday evening, roughly from 18:00 - + 19:30, often overlapping a bit with the last working group session of + the day but continuing long enough to allow everyone an opportunity + to join. The goal is to make it convenient to attend by not + conflicting with other meetings and also by not running too late into + the night. + + Light snacks and beverages are provided, and a cash bar is available + to align with the spirit of a happy hour. + +2.3. Code Lounge + + The Code Lounge provides space for groups to gather and continue to + collaborate on running code after the Hackathon. It is typically in + the IETF Lounge and open the same hours as the IETF Lounge. + Champions are encouraged to look at the final agenda and determine + which time slots are best suited to ensure attendance of Code Lounge + sessions, as well as any related working group sessions. It is okay + for multiple teams to sign up for the same time slots. This is in + fact encouraged for work that spans multiple working groups or + projects. + +2.4. Code Sprint + + The [CODE-SPRINT] develops tools that support the work of the IETF. + The Code Sprint existed long before the Hackathon and benefited from + being a focused event in a quiet space with few interruptions. + However, there is a great deal of synergy between the Code Sprint and + the Hackathon, and they attract some of the same participants. For + example, some Hackathon projects, such as those related to YANG model + validation, involve the creation or modification of IETF tools. It + is therefore advantageous to co-locate these two events when + practical and, when separate space is deemed helpful, to allocate + spaces that are physically close to each other to make it easy for + participants to switch back and forth between the two events. + +2.5. Online Only + + The IETF 107 Hackathon was originally scheduled to be the weekend at + the start of the IETF meeting in Vancouver. When COVID-19 hit and it + became clear the IETF meeting could not occur in person, the + Hackathon already had 23 projects and 176 registrations. With only + 10 days until the anticipated start of the Hackathon, a [SURVEY] went + out to the Hackathon community, including all project champions and + registered participants, to see if they wanted to participate in the + Hackathon exactly as planned except with everyone participating + remotely rather than in person. A relatively small number of people + expressed interest in participating, with even fewer wanting to + continue to champion their projects. The fact that the Hackathon was + planned for the weekend before the IETF meeting and in the local time + zone, both of which were historically very convenient and attractive + to Hackathon participants, suddenly became huge obstacles. + Consequently, the IETF 107 Hackathon was canceled. + + We knew more in advance that IETF 108 would be an online-only + meeting. We moved and expanded the schedule to run the entire work + week before the rest of the IETF meeting. The Hackathon kickoff was + set for Monday and the closing set for Friday, with all the time in + between left for individual project teams to arrange to meet how and + when was most convenient for them. The kickoff and closing sessions + were scheduled to align with the time frame established for the IETF + 108 meeting. All of this was, of course, not ideal, and it worked + much better for some people than for others, but at least everyone + knew the plan and corresponding time commitment well in advance and + had the ability to plan accordingly. + + We ultimately had 19 projects and almost 300 registrations. It is + hard to say how many people actually participated and for how long, + but many were able to get substantial work done on their projects. + For the closing, 10 teams produced and shared presentations + summarizing their findings and achievements. All results + presentations, as well as the agenda and a recording of the closing + session, are available via the [IETF-108-HACKATHON-WIKI]. This level + of participation was strong enough to be considered a success and + justifies including the Hackathon in future online-only IETF + meetings. + + Hackdemo Happy Hour and the Code Lounge are not applicable for + online-only Hackathons. + +3. Funding + + The Hackathon requires funding, and that funding increases with the + number of participants. Participating has always been free; + therefore, funding from sources other than participant fees is + required. + +3.1. Sponsorship + + The initial funding model was to have Hackathon sponsors sign up to + sponsor and fund the Hackathon for one year. As part of starting the + Hackathon, Cisco volunteered to sponsor and fund it for the first + year (i.e., three Hackathons, one at each IETF meeting during a + calendar year). This sponsorship was to rotate. Huawei volunteered + to sponsor the second year of the Hackathon. After the second year, + a sponsor for the third year was not found. However, the Hackathon + had become a proven success. Consequently, the IETF decided to fund + the Hackathon as part of the IETF meeting, with Hackathon sponsorship + being on a best-effort basis. + + Online-only Hackathons in response to the COVID-19 pandemic and + increased remote participating in general result in increased cloud + infrastructure requirements that make Hackathon sponsorship more + attractive to cloud infrastructure providers. + + Hackathon sponsorship is available at different levels as part of + being an IETF [RUNNING-CODE-SPONSOR]. + +3.2. Expenses + + The primary expenses associated with the Hackathon are those for + hosting an in-person event, e.g., meeting space, food and beverage, + etc. It is often challenging to quantify what portions of this are + associated with the Hackathon versus what is incurred for the IETF + meeting overall. + +3.2.1. In-Person Event Expenses + + The following expenses are associated with in-person participation in + a Hackathon. When the IETF meeting is online only, these expenses + are eliminated. + +3.2.1.1. Meeting Space + + The meeting space for the Hackathon is sometimes included as part of + the overall contract for the IETF meeting. Other times, an + additional expense is incurred to secure a large enough space earlier + than would otherwise have been required. Typically, the space is + needed for setup from Friday afternoon before the start of the IETF + meeting until Sunday afternoon. After the Hackathon, the space is + typically repurposed for the IETF Lounge. If the size of the + Hackathon continues to increase, it might be necessary to use the + same space as is later used for the IETF plenary. + +3.2.1.2. Food and Beverage + + Some portion of the food and beverage expense is often included as + part of a minimum spend the IETF is obligated to make. When a + Hackathon sponsor is identified, funds resulting from this + sponsorship are typically used to offset food and beverage expenses + or to increase the food and beverage budget. + + The minimum food and beverage requirements for the Hackathon have + been: + + * coffee, tea, and water Saturday and Sunday morning + + * lunch Saturday and Sunday + + Additional items, in order of importance, include: + + * beer Saturday evening + + * dinner Saturday evening + + * continental breakfast Saturday and Sunday + + * afternoon snacks Saturday and Sunday + +3.2.1.3. T-Shirts + + Hackathon T-shirts are an important part of the Hackathon. They have + been provided for all in-person Hackathons and greatly appreciated by + many participants. They also serve as great advertising for the + IETF, the Hackathon, and sponsors. Cisco or other event sponsors + have often covered expenses associated with T-shirts. The current + model is that the Secretariat covers the expenses using whatever + funding is available. + + The number of size distribution of T-shirts for IETF 107 is provided + here as an example. + + * 380 T-shirts at a cost of roughly $10 USD each, with shipping to + the Secretariat included: + + - 50 Small + + - 120 Medium + + - 110 Large + + - 75 XL + + - 25 XXL + + The T-shirts are all standard cut. We previously tried providing + fitted cut T-shirts as an option for Hackathon participants, but + these were not well received. + +3.2.1.4. Stickers + + Laptop stickers are popular with developers. Stickers have been made + available at the Hackathon for those that want them. Expenses have + been covered by the IETF LLC, which oversees the communications and + operations budget. + +3.2.2. Remote Participation Expenses + + The following expenses are associated things done primarily to + facilitate remote participation in a Hackathon. This includes + participation when the Hackathon is online only, as well as remote + participation when the Hackathon is in person. + + * Meetecho: cost associated with the Hackathon kickoff and closing + + * Gather: costs associated with premium service, required to enable + more than 25 concurrent users. This has not been necessary but + will almost certainly be if Gather becomes a valuable way for + Hackathon participants to meet within and across teams. + + * Webex: IETF Webex accounts are made available to champions for the + duration of the Hackathon and some period beyond that encompasses + at least the rest of the IETF meeting. These accounts are + presently available at no additional cost to the IETF. + + * Network: setup and support of the IETF network and remote access + to it + + The change in timing and extended duration of the Hackathon at an + online-only IETF meeting increases the duration and use of remote + participation facilities from 7 days to 12 days. This may result in + increases to the cost of providing these facilities. + +4. Project Presentations + + Project presentations are an important mechanism for capturing what + each team intends to accomplish, capturing what they actually + accomplished, and sharing the results and findings with the IETF + community. + + For the first few Hackathons, we had two very distinct types of + presentations: + + 1. presentations that served as project pitches at the start of the + Hackathon + + 2. presentations that summarized results at the end of the Hackathon + +4.1. Project Pitches + + The project pitches were 5-10 minute presentations by a champion of a + project describing what they wanted to do and how they proposed to + accomplish it. This gave everyone in the room a better understanding + of all the projects and helped participants match themselves with + appropriate projects. This worked well when we had few projects, but + it became unwieldy as the number of projects increased. As knowledge + of the Hackathon grew and advanced planning became more common, many + participants knew exactly which team they planned to join and wanted + to get to work as quickly as possible rather than spend time + listening to presentations. Project pitches were dropped from the + Hackathon. Champions are encouraged to share this type of + information in advance via the IETF Meeting Wiki (Section 5.4) + instead. + +4.2. Project Results Presentations + + The project results presentations were brief presentations by each + team of what problem they tried to solve, what they achieved, and + highlights that included lessons learned, feedback to associated + working groups, and collaboration with open source communities and + other standards organizations. They also highlight individuals who + participated in their first IETF Hackathon or first IETF event, which + helps facilitate the introduction of such individuals to the IETF + community. The production and presentation of summaries of results + is optional. Fortunately, despite the lack of awards and prizes, + most teams participate. + + As with the project pitches, project results presentations can become + unwieldy as the number of projects increases. With this in mind, the + total time for all results presentations is limited to 2 hours. The + maximum duration of each presentation is calculated based on the + number of teams that indicate the desire to present. This maximum is + strictly enforced to ensure all teams have the opportunity to present + their results. Maximum durations of 3-5 minutes are typical. + +4.2.1. Templates + + Project results presentation templates provides guidance on what to + cover. The use of these templates is optional. They are made + available in various formats in a GitHub repo created specifically + for the presentations for each IETF Hackathon, e.g., + [RESULTS-PRESENTATIONS]. + +4.2.1.1. Microsoft PowerPoint Open XML (PPTX) + + For portability, presentations that use the PPTX template should be + exported into a PDF format as well. + +4.2.1.2. HTML Format + + The HTML format template should render within any browser. It can be + rendered as a slideshow using [REMARK]. + +4.3. Upload to GitHub + + All project results presentations are uploaded to the GitHub repo + created for the Hackathon, e.g., [RESULTS-PRESENTATIONS]. The + contents of this repo are used as the source for all results + presentations at the end of the Hackathon and remain as a reference + after the Hackathon. + + One must be a member of the [IETF-HACKATHON-GITHUB] organization to + upload a new presentation or update/replace an existing presentation. + + To be added as a member, presenters are asked to: + + * include the name by which they are known in their GitHub profile + + * enable 2-factor authentication (2FA) + + * send their GitHub username to the Hackathon Chair(s) + + Presenters are asked to do this at their earliest convenience, as the + Chair(s) typically gets very busy as the start of presentations + approaches. + +4.4. Presenting in Person + + Presentations are run from a shared Chromebook at the front of the + Hackathon room. This Chromebook is provided by the Secretariat. + +4.5. Presenting Remotely + + Remote presenters are welcome to run their own presentations using + the screen-sharing functionality in Meetecho. Alternatively, the + Hackathon Chair(s) can share the presentation and advance slides for + the presenter. + +5. Tooling + + The IETF Hackathon uses the same tooling used by the IETF community + for its work and meetings. + +5.1. Datatracker + + The [DATATRACKER] supports the notion of teams that are not part of + the standards development process. The Hackathon exists as one such + team. From the Datatracker menu, navigate to "Groups" -> "Other" -> + "Active Teams" -> "hackathon". Here exists a Datatracker space for + the Hackathon similar to what is available for working groups, + including meeting materials, agendas, etc. Initially, there was some + attempt to copy materials hosted in the [IETF-HACKATHON-GITHUB] to + the Datatracker. Now, this is done only when required for + integration with other IETF tooling, including: + + * requesting sessions for the Hackathon kickoff and closing and for + Hackdemo Happy Hour, e.g., [REQUEST-SESSIONS] + + * posting agendas (e.g., see [AGENDAS]) + +5.2. IETF Website + +5.2.1. Hackathon Website + + The IETF website includes a [HACKATHON-WEBSITE]. This website + contains information about the Hackathon in general, as well as links + to past, present, and future Hackathons. The relevant links are + updated after each IETF meeting. Other content on the website is + updated on a more ad hoc basis. + +5.2.2. Meeting Website + + Each IETF [MEETING-WEBSITE] contains information about the + corresponding Hackathon, including the dates of the Hackathon in the + header and a link to the Hackathon website in the "Additional Events" + section. + +5.3. Registration + + Registration for the Hackathon is through the IETF meeting + [REGISTRATION-SYSTEM]. Participant registration for the Hackathon + is: + + * independent of participation registration for the meeting + + * free + + * required + + As with meeting registration, registrants for the Hackathon + acknowledge the [NOTE-WELL] during the registration process. + +5.3.1. Participant List + + An active list of all registered participants, e.g., [PARTICIPANTS], + is maintained by the Secretariat. Important information displayed + for each registrant includes the set of projects and technologies in + which each participant is interested and an email address. This + information is optional at the time of registration and may be + updated or removed by editing one's registration. + +5.3.2. Caps on Registrations + + Registrations were capped for the first several Hackathons. This was + done for both space and costs considerations. The cap was hit + multiple times, each time resulting in temporary confusion and + frustration among would-be registrants, which led to the cap being + increased. Currently, there are no caps enforced by the registration + system. In the event the number of participants exceeds the capacity + of the main Hackathon room, designated overflow areas within the + meeting venue are made available. + +5.4. Meeting Wiki + + The [MEETING-WIKI] serves as the primary source of information for + each Hackathon. + +5.4.1. Hackathon + + A page within the meeting wiki, e.g., [IETF-110-HACKATHON-WIKI], is + created by the Secretariat for each Hackathon and initialized with + information that is based largely on the information from the + previous Hackathon. Once created, the Hackathon Chair(s) updates and + moderates this page. Champions are requested and are responsible for + adding information about projects for which they are a champion. + + Anyone can edit the wiki by logging in using their Datatracker login + credentials. Credentials can be obtained by creating a + [DATATRACKER-ACCOUNT]. + +5.4.2. Lost and Found + + A Lost and Found wiki page, e.g., [LOST-AND-FOUND], is created by the + Chair(s) for each Hackathon. Participants looking for a team are + encouraged to add themselves to the "Skills to Offer" table, + providing some information about their skills and interests. This + will help others with matching needs and/or interests find them. + Champions wanting help on their projects are encouraged to add their + teams to the "Skills Needed" table, providing some information about + the skills they seek. + +5.4.3. Results Presentation Schedule + + A Results Presentation Schedule wiki page, e.g., + [RESULTS-PRESENTATION-SCHEDULE], is created by the Chair(s) for each + Hackathon. Hackathon teams are welcome and encouraged to present + their results during the Hackathon closing. Hackathon teams add the + name of their project and the name of the presenter to the table at + the bottom of this page. + +5.4.4. In Person Only + + The following wiki pages are applicable for in-person Hackathons + only. + +5.4.4.1. Hackdemo Happy Hour + + A Hackdemo Happy Hour wiki page, e.g., [HACKDEMO], is created by the + Chair(s) for each Hackathon. Champions are welcome and encouraged to + add their project by entering the project name/acronym and a contact + name and email address in the table displayed on the page. + +5.4.4.2. Code Lounge + + A Code Lounge wiki page, e.g., [CODE-LOUNGE], is created by the + Chair(s) for each Hackathon. Champions are welcome and encouraged to + add their project by entering the project name/acronym and a contact + name and email address in the table displayed on the page. + +5.4.5. Online Only + + The following wiki pages are applicable for online-only Hackathons. + +5.4.5.1. Team Schedule + + A Team Schedule wiki page, e.g., [TEAM-SCHEDULE], is created by the + Chair(s) for each online-only Hackathon. Online-only Hackathons take + place globally for an entire week. It is up to individual project + teams to determine the preferred dates, times, and ways to meet to + work on their project within the context of that week (e.g., Zoom, + Webex, or Slack). This page is meant to help facilitate coordination + of schedules within and across teams. + +5.5. Email List + + The Hackathon [EMAIL-LIST] is used for all email communication and + announcements related to the Hackathon. All registrants are given + the option to subscribe to the list. Anyone interested in staying up + to date on the Hackathon is able to subscribe at any time. Once + subscribed, anyone can send and respond to emails via the list. The + same list is used for each Hackathon. Anyone wishing to receive + emails for a specific Hackathon only can unsubscribe after that + Hackathon has concluded. + +5.5.1. Email Alias for Hackathon Chairs + + The email alias <hackathon-chairs@ietf.org> was created and is + maintained by the Secretariat. It is used on Hackathon web pages and + wiki pages to provide a single point of contact for the Hackathon. + +5.6. GitHub + + The [IETF-HACKATHON-GITHUB] is used to share code, presentations, and + other artifacts at IETF Hackathons. The Hackathon Chair(s) is + responsible for administering the GitHub organization. + + Code for Hackathon projects often exist elsewhere, which is perfectly + fine. Anyone needing a place to host code for the Hackathon can + request the creation of a repository for their project. + + A repository is created and maintained by the Chair(s) for each + Hackathon, e.g., [RESULTS-PRESENTATIONS]. This repo is for + participants to upload project results presentations. The contents + of this repo are used as the source for all presentations at the end + of the Hackathon and remain as a reference after the Hackathon. + +5.7. Meetecho + + [MEETECHO] is used for the kickoff and closing sessions of the + Hackathon. This provides many capabilities, including the following: + + * allows participants to join Hackathon sessions in person or + remotely + + * validates the registration of participants at the time of joining + Hackathon sessions + + * enables remote presenters of project results presentations + + * captures recordings of the Hackathon kickoff and closing + +5.8. Network + + Access to the IETF network is an important aspect of the Hackathon. + The IETF network provides unfettered Internet access that is not + typical within many residential, corporate, and university + environments. For many IETF participants and projects, access to the + Internet and each other via wireless access to the IETF network is + sufficient. However, due to the nature of the work done in the IETF, + wired access and special networking capabilities are often required. + + The Network Operations Center (NOC) has graciously met the needs of + the Hackathon since its inception and continues to add more + capabilities over time. In advance, champions are able to request + wired access and special networking functionality, including static + IPv4 and IPv6 addresses, IPv6-only networking, a closed user group, + Network Address and Protocol Translation from IPv6 Clients to IPv4 + Servers (NAT64), and IPv6 Prefix Delegation. All of this, and the + IETF network in general, is made available by the start of the + Hackathon and in advance for setup to the extent possible. + +5.8.1. Remote Networking + + Online-only meetings present both a personal-networking challenge and + a computer-networking challenge. The NOC came to the rescue for the + latter with an experimental mechanism that was used to join the IETF + network while attending a meeting remotely. This evolved into what + is now known as "HackNet" [HACKNET], a global Layer 2 VPN designed to + support IETF protocol development across teams within the IETF + Hackathon. A limited set of devices for connecting to HackNet are + supported. In addition to Layer 2 connectivity, a subset of the + networking capabilities available at in-person meetings are + available. Both the set of devices and the set of networking + capabilities are expected to expand and evolve over time. However, + it is important to note that HackNet is still an experiment and not a + production service. Best-effort support is available via email to + <support@ietf.org>. + +5.9. Webex + + Champions can request a [WEBEX-ACCOUNT] they can use to schedule + meetings for their team. These are similar to the Webex accounts + that are allocated to and used by the working group chairs for + virtual interim meetings. An account can be requested by a team + champion at any time. Accounts remain active and available + throughout the duration of the Hackathon and the associated IETF + meeting. A project name may be used in place of "Working Group Name" + in the request form. + +5.10. Gather + + [GATHER] facilitates virtual hallway interaction during IETF + meetings. A dedicated area within the overall space is created by + the Secretariat for the Hackathon. The area includes tables, + identified by letters of the alphabet, that teams are free to self- + assign and use as and when they like. Eight to ten seats around each + table facilitate group discussions within the team. A dry erase + board or shared notes tablet, e.g., [HEDGEDOC], at tables facilitates + sharing of information within the team. The tables also facilitate + collaboration across teams. One cautionary note: Gather has relative + high-network bandwidth and CPU requirements and, as such, may not be + well suited for some Hackathon participants. + + The Gather space remains available between IETF meetings, with + incremental improvements and additions made during this time. The + space is cleaned about a month prior to the start of the next + meeting, removing anything left over from the previous meeting. + Hackathon teams are encouraged to make a copy of anything they want + to retain within a week of the end of the IETF meeting. + +6. Statistics and Metrics + + Statistics for the Hackathon have been gathered informally from the + first Hackathon, at IETF 92, and more formally since IETF 101. + Registration is required, but it is also free, which can lead to + misleading statistics. Starting with IETF 101, an effort has been + made by the Secretariat to validate registrations for all in-person + participants by checking registrations at the main entrance to the + Hackathon room. Badges similar to those issued for the rest of the + IETF meeting are now issued for the Hackathon as well. There is + still no good mechanism for determining the number of remote + participants. + + Hackathon participation has grown from 45 participants at IETF 92 to + a maximum of 406 participants at IETF 104. Participation tends to be + slightly higher when the IETF meeting is located in Europe. Recent + in-person Hackathons have had roughly 30-40% as many participants as + the corresponding IETF meeting. For roughly 20-30% of Hackathon + participants, the Hackathon is their first experience at any IETF + event. + +6.1. IETF Survey Results + + For each IETF meeting, there is a post-event survey that often + includes a question or two about the Hackathon, e.g., + [IETF-106-SURVEY]. + +6.2. Hackathon Survey Results + + Hackathon-specific surveys have been used on some occasions to obtain + more detailed feedback about the Hackathon from the IETF community. + This has been especially useful for feedback on online-only + Hackathons. Surveys have been short with most questions being + optional, e.g., [IETF-110-SURVEY]. + +7. Roles and Responsibilities + + This section provides a summary of the roles and responsibilities of + individuals and groups involved in a successful IETF Hackathon. The + summary provided here is not meant to be exhaustive. Some + responsibilities are described entirely or in more detail throughout + the rest of the document. + +7.1. Hackathon Chair(s) + + The role of a Hackathon Chair is similar to that of a working group + chair. As with working groups, it is typically best to have co- + chairs share responsibilities and the workload. The Hackathon + Chair(s) works very closely with the Secretariat on all + responsibilities. Key responsibilities include the following: + + * Organize and deliver a Hackathon at each IETF meeting, which + involves soliciting help from all other roles to do much of the + heavy lifting + + * Encourage and provide guidance to champions who volunteer to lead + projects + + * Maintain the Hackathon wiki, e.g., [IETF-110-HACKATHON-WIKI], and + all of its child pages. + + * Moderate the Hackathon email list (Section 5.5) + + * request sessions for the Hackathon opening and closing in the IETF + meeting, e.g., [REQUEST-SESSIONS] + + * Emcee the Hackathon, including the opening and closing sessions + and announcements in between + + * Create and manage the GitHub repository used for each Hackathon, + e.g.,[RESULTS-PRESENTATIONS] + + * Serve as the main point of contact for all Hackathon questions and + concerns + +7.2. Secretariat + + Key responsibilities include the following: + + * Configure and manage the Hackathon registration system + (Section 5.3) + + * Maintain the Hackathon website (Section 5.2.1) + + * Create and maintain the web page for each Hackathon, e.g., + [IETF-110-HACKATHON-WEBSITE] + + * Create a wiki page for each Hackathon, e.g., + [IETF-110-HACKATHON-WIKI]. This is initialized and updated at + times by the Secretariat, but the Chair(s) is ultimately + responsible for maintaining it. + + * Handle venue logistics for the Hackathon, Hackdemo Happy Hour, and + the Code Lounge (e.g., reserve room, food and beverages, AV, etc.) + + * Handle internal IETF promotion (e.g., via email messages to the + IETF community) + + * Assist with external outreach, as needed, including finding + sponsors + + * Validate Hackathon registrations for in-person participants, + including issuing badges and Hackathon T-shirts (Section 3.2.1.3) + when available + +7.3. Sponsor + + Key responsibilities include the following: + + * Provide some funding to help offset costs of the Hackathon (either + per meeting or per year, depending on the model) + + * Optionally provide T-shirts or other giveaways + + * Optionally provide support staff to assist with the Hackathon + + Key benefits include the following: + + * Sponsor logo on Hackathon T-shirts + + * Sponsor logo on Hackathon signage + + * Sponsor logo on the Hackathon web page and wiki + + * Sponsor logo and call out in the Hackathon kickoff and closing + presentations + + * Sponsor logo and call out in the IETF plenary presentation + + * Sponsor logo and call out in the Hackathon recap on [IETF-BLOG] + + * Recognition in the IETF community for helping the IETF Hackathon + remain free and open to everyone + +7.4. Champions of Projects + + Champions of projects are the key to a successful Hackathon. Key + responsibilities for champions include the following: + + * Volunteer to lead a project at the Hackathon + + * Serve as the primary contact for the project + + * Add and manage information on the Hackathon wiki for the project, + including the Hackdemo Happy Hour (Section 2.2), Code Lounge + (Section 2.3), and Team Schedule (Section 5.4.5.1) pages + + * Promote the project to appropriate groups inside the IETF and + outside as well + + * Welcome and organize members of the team + + * Provide focus, guidance, and leadership for the project + +7.5. IETF LLC, Director of Communications and Operations (was ISOC) + + Key responsibilities include the following: + + * Promote the Hackathon outside of the IETF, including web search + engine ad words, social media posts, and listing on external event + calendars, such as [RIPE-CALENDAR] and [NSRC-CALENDAR] + + * Handle outreach to local universities + + * Provide a photographer, including optional team photos and candid + photos of collaborating during in-person events + + * Provide laptop stickers (Section 3.2.1.4) at in-person events + +7.6. Judges + + The first several Hackathons involved judges who listened to project + results presentations by teams at the closing of each Hackathon and + identified winning teams for an arbitrary number of project + categories. Prizes were made available to members of winning teams. + This was done as an incentive to participate in the Hackathon and + present results and to provide a fun yet informative end to the + Hackathon that could be appreciated by the entire IETF community. + Judging and the awarding of prizes led to confusion regarding the + nature of the Hackathon, making it appear overly competitive to some. + Procurement of appropriate prizes was financially and logistically + challenging. The arrangement of judges, determination of winners, + and awarding of prizes all became more time consuming, especially as + the number of projects and participants grew. Ultimately, it was + deemed best to eliminate judging, awards, and prizes entirely. + Apparently, the IETF community has an innate incentive to participate + and present results in the Hackathon. + +8. Implementation Status + + The practices described in this document have been established, used, + and refined over the course of running numerous IETF Hackathons, + including several at online-only IETF meetings. The GitHub + repository [GITHUB-REPO] has been used to collaborate on this + document. The IETF-Hackathon GitHub (Section 5.6) contains code + associated with IETF Hackathons. + +9. Security Considerations + + HackNet (Section 5.8.1) enables Hackathon participants to join the + IETF network while attending a meeting remotely. The intent is for + those connecting remotely to have as open a network as possible, just + like those connecting to the IETF network at an in-person meeting. A + user must have a Datatracker account to access HackNet and is + expected to respect it, just as they are expected to respect the IETF + network at an in-person meeting. If HackNet is exploited, it is + addressed in the same manner as an exploitation of the IETF network + would be at an in-person meeting. + +9.1. Privacy Considerations + + The Hackathon complies with the IETF/IRTF/IAB [PRIVACY-STATEMENT]. + + Participant names are displayed publicly in the Participant List + (Section 5.3.1). As part of their registration, participants may opt + in to display their email address as well. + + The email addresses of individual champions are often shared publicly + by the champions on the wiki. This is done voluntarily by individual + champions to make it easier for others to contact them. + + Photos taken during the Hackathon, and during the IETF meeting in + general, are sometimes included in blog posts or on social media. + Red lanyards are made available to Hackathon participants to wear to + indicate that they do not wish to be photographed individually or in + small groups. + +10. IANA Considerations + + This document has no IANA actions. + +11. Informative References + + [AGENDAS] IETF, "IETF Meeting Agenda", + <https://datatracker.ietf.org/meeting/agenda/>. + + [BITS-N-BITES] + IETF, "About Bits-N-Bites", + <https://www.ietf.org/how/meetings/98/bits-n-bites/>. + + [CODE-LOUNGE] + IETF, "IETF 113 Code Lounge", + <https://trac.ietf.org/trac/ietf/meeting/ + wiki/113hackathon/codelounge>. + + [CODE-SPRINT] + IETF, "Code Sprint", + <https://www.ietf.org/how/runningcode/code-sprint/>. + + [DATATRACKER] + IETF, "IETF Datatracker", <https://datatracker.ietf.org/>. + + [DATATRACKER-ACCOUNT] + IETF, "IETF Datatracker Account Creation", + <https://datatracker.ietf.org/accounts/create/>. + + [EMAIL-LIST] + IETF, "IETF Hackathon Mailing List", + <https://www.ietf.org/mailman/listinfo/Hackathon/>. + + [GATHER] "Gather", <https://gather.town/>. + + [GITHUB-REPO] + "draft-ietf-shmoo-hackathon: IETF SHMOO working group + draft on running an IETF Hackathon", commit 6a8aad6, July + 2022, + <https://github.com/eckelcu/draft-ietf-shmoo-hackathon/>. + + [HACKATHON-WEBSITE] + IETF, "IETF Hackathons", + <https://www.ietf.org/how/runningcode/hackathons/>. + + [HACKDEMO] IETF, "IETF 113 Hackdemo Happy Hour", + <https://trac.ietf.org/trac/ietf/meeting/ + wiki/113hackathon/hackdemo>. + + [HACKNET] IETF, "HackNet", <https://hacknet.meeting.ietf.org/>. + + [HEDGEDOC] IETF, "HedgeDoc", <https://notes.ietf.org/>. + + [IETF-106-SURVEY] + IETF, "IETF 106 Meeting Survey", + <https://www.ietf.org/media/documents/ + IETF_106_Meeting_Survey.pdf>. + + [IETF-108-HACKATHON-WIKI] + IETF, "IETF 108 Hackathon Wiki", + <https://trac.ietf.org/trac/ietf/meeting/ + wiki/108hackathon/>. + + [IETF-110-HACKATHON-WEBSITE] + IETF, "IETF 110 Hackathon Online", + <https://www.ietf.org/how/runningcode/ + hackathons/110-hackathon/>. + + [IETF-110-HACKATHON-WIKI] + IETF, "IETF 110 Hackathon Wiki", + <https://trac.ietf.org/trac/ietf/meeting/ + wiki/110hackathon/>. + + [IETF-110-SURVEY] + IETF, "IETF 110 Meeting Survey", <https://ql.tc/8K1JeZ/>. + + [IETF-BLOG] + IETF, "IETF Blog", <https://www.ietf.org/blog/>. + + [IETF-HACKATHON-GITHUB] + IETF, "IETF-Hackathon Repositories", + <https://github.com/ietf-hackathon/>. + + [LOST-AND-FOUND] + IETF, "IETF 110 Hackathon Lost and Found", + <https://trac.ietf.org/trac/ietf/meeting/ + wiki/110hackathon/lost&found>. + + [MEETECHO] "Meetecho", <https://www.meetecho.com/>. + + [MEETING-WEBSITE] + IETF, "Meetings and events", + <https://www.ietf.org/how/meetings/>. + + [MEETING-WIKI] + IETF, "IETF Meeting Wiki", + <https://trac.ietf.org/trac/ietf/meeting/wiki>. + + [NOTE-WELL] + IETF, "Note Well", <https://ietf.org/about/note-well/>. + + [NSRC-CALENDAR] + Network Startup Resource Center, "Education Outreach and + Training (EOT) Calendar for Internet Development", + <https://nsrc.org/calendar/>. + + [PARTICIPANTS] + IETF, "IETF 110 Hackathon Participant List", + <https://registration.ietf.org/110/participants/ + hackathon/>. + + [PRIVACY-STATEMENT] + IETF, "IETF/IRTF/IAB Privacy Statement", + <https://www.ietf.org/privacy-statement/>. + + [REGISTRATION-SYSTEM] + IETF, "IETF Meeting Registration System", + <https://registration.ietf.org/>. + + [REMARK] "remark: A simple, in-browser, markdown-driven slideshow + tool", commit 1bbce13, May 2022, + <https://github.com/gnab/remark/>. + + [REQUEST-SESSIONS] + IETF, "IETF Session Request", + <https://datatracker.ietf.org/secr/sreq/>. + + [RESULTS-PRESENTATION-SCHEDULE] + IETF, "IETF 110 Hackathon Results Presentation Schedule", + <https://trac.ietf.org/trac/ietf/meeting/ + wiki/110hackathon/resultspresentationschedule>. + + [RESULTS-PRESENTATIONS] + IETF, "IETF 110 Hackathon Project Results Presentations", + commit a6a12bd, March 2021, <https://github.com/ietf- + hackathon/ietf110-project-presentations>. + + [RIPE-CALENDAR] + RIPE NCC, "Upcoming Events", + <https://www.ripe.net/participate/meetings/calendar/>. + + [RUNNING-CODE-SPONSOR] + IETF, "IETF Meeting Sponsorship: Running Code Sponsors", + <https://www.ietf.org/support-us/sponsorship/#running- + code>. + + [SURVEY] IETF, "IETF 107 Hackathon Results: Participant Survey", + <https://www.surveymonkey.com/results/SM-9HLRXN8M7/>. + + [TEAM-SCHEDULE] + IETF, "IETF 110 Hackathon Team Schedule", + <https://trac.ietf.org/trac/ietf/meeting/ + wiki/110hackathon/teamschedule>. + + [WEBEX-ACCOUNT] + IETF, "IETF Webex Account", + <https://ietf.webex.com/webappng/sites/ietf/ + dashboard?siteurl=ietf/>. + +Acknowledgments + + The IETF Secretariat, notably Alexa Morris and Stephanie McCammon, + contributed significantly to the creation of the IETF Hackathon and + the practices in this document. Among other things, Alexa drafted + the initial breakdown of "Roles and Responsibilities" (Section 7), + and Stephanie created the initial Hackathon website and wiki. These + have evolved over time and are used to run each Hackathon. + + Greg Wood, Barry Leiba, Michael Richardson, Benson Muite, Dhruv + Dhody, Karl Auerbach, Mallory Knodel, Lars Eggert, Robert Sparks, + Thomas Fossati, Alvaro Retana, Erik Kline, John Scudder, Roman + Danyliw, and Éric Vyncke also provided significant contributions to + the Hackathon and to this document. + +Author's Address + + Charles Eckel + Cisco Systems + United States of America + Email: eckelcu@cisco.com |