idnits 2.17.1 draft-ietf-shmoo-hackathon-07.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (21 June 2022) is 668 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- No issues found here. Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Stay Home Meet Occasionally Online C. Eckel 3 Internet-Draft Cisco Systems 4 Intended status: Informational 21 June 2022 5 Expires: 23 December 2022 7 Running an IETF Hackathon 8 draft-ietf-shmoo-hackathon-07 10 Abstract 12 IETF Hackathons encourage the IETF community to collaborate on 13 running code related to existing and evolving Internet standards. 14 This document provides a set of practices that have been used for 15 running IETF Hackathons. These practices apply to Hackathons in 16 which both in-person and remote participation are possible with 17 adaptations for Hackathons that are online only. 19 Discussion Venues 21 This note is to be removed before publishing as an RFC. 23 Discussion of this document takes place on the Stay Home Meet 24 Occasionally Online Working Group mailing list 25 (manycouches@ietf.org), which is archived at 26 https://mailarchive.ietf.org/arch/browse/manycouches/. 28 Source for this draft and an issue tracker can be found at 29 https://github.com/eckelcu/draft-ietf-shmoo-hackathon. 31 Status of This Memo 33 This Internet-Draft is submitted in full conformance with the 34 provisions of BCP 78 and BCP 79. 36 Internet-Drafts are working documents of the Internet Engineering 37 Task Force (IETF). Note that other groups may also distribute 38 working documents as Internet-Drafts. The list of current Internet- 39 Drafts is at https://datatracker.ietf.org/drafts/current/. 41 Internet-Drafts are draft documents valid for a maximum of six months 42 and may be updated, replaced, or obsoleted by other documents at any 43 time. It is inappropriate to use Internet-Drafts as reference 44 material or to cite them other than as "work in progress." 46 This Internet-Draft will expire on 23 December 2022. 48 Copyright Notice 50 Copyright (c) 2022 IETF Trust and the persons identified as the 51 document authors. All rights reserved. 53 This document is subject to BCP 78 and the IETF Trust's Legal 54 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 55 license-info) in effect on the date of publication of this document. 56 Please review these documents carefully, as they describe your rights 57 and restrictions with respect to this document. Code Components 58 extracted from this document must include Revised BSD License text as 59 described in Section 4.e of the Trust Legal Provisions and are 60 provided without warranty as described in the Revised BSD License. 62 Table of Contents 64 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 65 2. Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 66 2.1. Agenda . . . . . . . . . . . . . . . . . . . . . . . . . 5 67 2.2. Hackdemo Happy Hour . . . . . . . . . . . . . . . . . . . 7 68 2.3. Code Lounge . . . . . . . . . . . . . . . . . . . . . . . 7 69 2.4. Code Sprint . . . . . . . . . . . . . . . . . . . . . . . 7 70 2.5. Online Only . . . . . . . . . . . . . . . . . . . . . . . 8 71 3. Funding . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 72 3.1. Sponsorship . . . . . . . . . . . . . . . . . . . . . . . 9 73 3.2. Expenses . . . . . . . . . . . . . . . . . . . . . . . . 9 74 3.2.1. In-person Event Expenses . . . . . . . . . . . . . . 9 75 3.2.2. Remote Participation Expenses . . . . . . . . . . . . 11 76 4. Project Presentations . . . . . . . . . . . . . . . . . . . . 12 77 4.1. Project Pitches . . . . . . . . . . . . . . . . . . . . . 12 78 4.2. Project Results Presentations . . . . . . . . . . . . . . 12 79 4.2.1. Templates . . . . . . . . . . . . . . . . . . . . . . 13 80 4.3. Upload to GitHub . . . . . . . . . . . . . . . . . . . . 13 81 4.4. Presenting in Person . . . . . . . . . . . . . . . . . . 14 82 4.5. Presenting Remotely . . . . . . . . . . . . . . . . . . . 14 83 5. Tooling . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 84 5.1. Datatracker . . . . . . . . . . . . . . . . . . . . . . . 14 85 5.2. IETF Website . . . . . . . . . . . . . . . . . . . . . . 14 86 5.2.1. Hackathon Website . . . . . . . . . . . . . . . . . . 14 87 5.2.2. Meeting Website . . . . . . . . . . . . . . . . . . . 15 88 5.3. Registration . . . . . . . . . . . . . . . . . . . . . . 15 89 5.3.1. Participant List . . . . . . . . . . . . . . . . . . 15 90 5.3.2. Caps on Registrations . . . . . . . . . . . . . . . . 15 91 5.4. Meeting Wiki . . . . . . . . . . . . . . . . . . . . . . 15 92 5.4.1. Hackathon . . . . . . . . . . . . . . . . . . . . . . 16 93 5.4.2. Lost and Found . . . . . . . . . . . . . . . . . . . 16 94 5.4.3. Results Presentation Schedule . . . . . . . . . . . . 16 95 5.4.4. In Person Only . . . . . . . . . . . . . . . . . . . 16 96 5.4.5. Online Only . . . . . . . . . . . . . . . . . . . . . 17 97 5.5. Email List . . . . . . . . . . . . . . . . . . . . . . . 17 98 5.5.1. Hackathon Chairs Email Alias . . . . . . . . . . . . 17 99 5.6. GitHub . . . . . . . . . . . . . . . . . . . . . . . . . 17 100 5.7. Meetecho . . . . . . . . . . . . . . . . . . . . . . . . 18 101 5.8. Network . . . . . . . . . . . . . . . . . . . . . . . . . 18 102 5.8.1. Remote Networking . . . . . . . . . . . . . . . . . . 19 103 5.9. Webex . . . . . . . . . . . . . . . . . . . . . . . . . . 19 104 5.10. Gather . . . . . . . . . . . . . . . . . . . . . . . . . 19 105 6. Statistics and Metrics . . . . . . . . . . . . . . . . . . . 20 106 6.1. IETF Survey Results . . . . . . . . . . . . . . . . . . . 20 107 6.2. Hackathon Survey Results . . . . . . . . . . . . . . . . 20 108 7. Roles and Responsibilities . . . . . . . . . . . . . . . . . 20 109 7.1. Hackathon Chair(s) . . . . . . . . . . . . . . . . . . . 21 110 7.2. Secretariat . . . . . . . . . . . . . . . . . . . . . . . 21 111 7.3. Sponsor . . . . . . . . . . . . . . . . . . . . . . . . . 22 112 7.4. Champions of Projects . . . . . . . . . . . . . . . . . . 22 113 7.5. IETF LLC, Director of Communications and Operations (was 114 ISOC) . . . . . . . . . . . . . . . . . . . . . . . . . . 23 115 7.6. Judges . . . . . . . . . . . . . . . . . . . . . . . . . 23 116 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 24 117 9. Security Considerations . . . . . . . . . . . . . . . . . . . 24 118 9.1. Privacy Considerations . . . . . . . . . . . . . . . . . 24 119 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 120 11. Informative References . . . . . . . . . . . . . . . . . . . 24 121 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 28 122 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 28 124 1. Introduction 126 IETF Hackathons encourage the IETF community to collaborate on 127 running code related to existing and evolving Internet standards. 128 IETF Hackathons aim to: 130 * Advance the pace and relevance of IETF standards activities by 131 bringing the speed and collaborative spirit of open source 132 development into the IETF 134 * Bring developers and young people into IETF and get them exposed 135 to and interested in the IETF 137 IETF Hackathons are free to attend and open to everyone. Software 138 developers are the primary audience, but participation by subject- 139 matter experts who are not necessary developers is encouraged and 140 very important as well. Similarly, while the Hackathon is meant to 141 attract newcomers and those who do not typically view themselves as 142 standards people, long time IETF contributors, including Internet- 143 Draft authors, working group chairs, and subject-matter experts, are 144 key participants as well. Group dynamics and blending of skill sets 145 and perspectives are extremely valuable aspects of IETF Hackathons. 147 In addition to the running code created and improved as a result of 148 each Hackathon, the exchange of ideas, extensions of human networks, 149 and establishment of trust, respect, and friendships are some of the 150 most valuable outputs of each Hackathon. Code written in a 151 programming language can be more illustrative and less 152 confrontational than opinions expressed during a meeting or in an 153 email. Working together to find common understanding of proposals, 154 concerns, and solutions that result in improvements to evolving 155 Internet standards is as important as the development of running code 156 that implements or validates the correctness of these same proposals. 158 Consequently, IETF Hackathons are collaborative events, not 159 competitions. Any competitiveness among participants is friendly and 160 in the spirit of advancing the pace and relevance of new and evolving 161 Internet standards. IETF Hackathons are inclusive, not only in terms 162 of who can participate but also in terms of the projects included in 163 each Hackathon. All projects should be related to existing or 164 proposed Internet standards in some way. Examples include, but are 165 not limited to, interoperability of implementations, proof of 166 concepts, and tools. 168 IETF Hackathons foster an open environment, with much of the code 169 being open source and projects results typically shared publicly. 170 The Hackathon operates under the [NOTE-WELL]; however, the rules and 171 terms around code are those of the license associated with the code. 172 Although code is often and preferably open source, it may be 173 proprietary as well. 175 This document provides a set of practices that have been used for 176 running IETF Hackathons. 178 2. Timing 180 The first IETF Hackathon was held the weekend before the start of the 181 IETF 92 meeting. The rationale was to avoid conflicts yet make it 182 relatively convenient for those attending the IETF meeting to 183 participate in the Hackathon as well. Holding the Hackathon on the 184 weekend was also viewed as making it more accessible to non IETF 185 meeting participants, including students and working professionals 186 who would have other commitments during the week. The weekend before 187 was viewed as better than the weekend after so that things learned 188 during the Hackathon could be shared and discussed with the rest of 189 the IETF community during working group sessions and the like. This 190 worked well at IETF 92, was repeated at IETF 93, and quickly became 191 an established norm with the IETF meeting being officially extended 192 to include the Hackathon at the start. An additional benefit of this 193 timing noted and appreciated by participants is that it serves as a 194 more informal and social way to physically and mentally acclimate to 195 changes in time zones and surroundings. 197 2.1. Agenda 199 The IETF Hackathon is a strenuous event. Though not a competition, 200 participants want to make the most of their time together, much as 201 with the IETF meeting in general. Competitive Hackathons typically 202 run non-stop for on the order of 40 hours. There is a strict 203 deadline and teams are judged and winners declared at the end. 204 Afterward everyone is wiped out and heads off to briefly celebrate or 205 commiserate, but mainly to recuperate. As the IETF Hackathon serves 206 as the start of the overall IETF meeting, we aim to strike a 207 compromise that provides enjoy time to get valuable work accomplished 208 without exhausting themselves before the main IETF meeting even 209 starts. While some people participate in the Hackathon only, the 210 majority of people remain and plan to be actively engaged in the rest 211 of the IETF meeting. 213 The typical agenda is as follows: 215 Saturday before IETF meeting week 216 08:30: Room open for setup by project champions 217 09:00: Room open for all - Pastries and coffee provided 218 09:30: Hackathon kickoff 219 09:45: Form Teams 220 12:30: Lunch provided 221 15:30: Afternoon break - Snacks provided 222 19:00: Dinner provided 223 22:00: Room closes 225 Sunday before IETF meeting week 226 08:30: Room opens - Pastries and coffee provided 227 12:30: Lunch provided 228 13:30: Hacking stops, prepare brief presentation of project results 229 14:00: Project results presentations to other participants 230 15:45: Closing remarks and opportunities for next time 231 16:00: Hackathon ends 232 17:00: Tear down complete 234 The time on Saturday morning provides team champions time for setup 235 and participants time to socialize and learn more about projects and 236 team they might want to join. The kickoff presentation and 237 formalities are kept to minimum to leave as much time as possible for 238 team to work together with their team on their projects. The 239 proximity of teams to each other fosters communication and 240 collaboration across teams as well. 242 Lunch and dinner are provided as a convenience and an incentive to 243 remain at the Hackathon. Participants are free to come and go as 244 they like. It is well understood and accepted that there are other 245 things vying for time and that meeting with friends and colleagues 246 outside of the Hackathon is an entirely reasonable thing to do. 248 The room closes Saturday evening to give hotel staff unfettered 249 access to the room and to encourage people to pace and take care of 250 themselves. There are no rules against continuing work on projects 251 outside of the Hackathon room. Similarly, working on projects long 252 before and after the Hackathon is allowed and encouraged. 254 The end of the Hackathon on Sunday is driven by other IETF meeting 255 events. There typically are Newcomer events that start at 16:00. 256 The IETF Hackathon typically includes many newcomers in its list of 257 participants and it is important to provide them time to participate 258 in the Newcomer events. The opening reception for the IETF typically 259 start at 17:00, and we want to make it easy for all Hackathon 260 participants to join that as well. 262 Hackdemo Happy Hour (Section 2.2) and the Code Lounge (Section 2.3) 263 exist to facilitate ongoing discussion and work on projects beyond 264 the official end of the Hackathon weekend. 266 2.2. Hackdemo Happy Hour 268 Hackdemo Happy Hour provides an opportunity for more in depth sharing 269 and discussion than is possible within the time constraints of the 270 result presentations that occur at the end of the Hackathon. This 271 opportunity is made available to all teams. As with the results 272 presentations, participation is optional. 274 Initially, we did something similar as part of Bits and Bites. This 275 worked well for the Hackathon but the Bits and Bites event was 276 eventually abandoned for other reasons. Hackdemo Happy Hour was 277 created as a low cost, informal event to provide a venue for the IETF 278 community to engage with the Hackathon teams in more in depth 279 discussions related to their projects. 281 Hackdemo Happy Hour is typically Monday evening, roughly from 18:00 - 282 19:30, often overlapping a bit with the last working group session of 283 the day but continuing long enough to allow everyone an opportunity 284 to join. The goal is to make it convenient to attend by not 285 conflicting with other meetings but also no running too late into the 286 night. 288 Light snacks and beverages are provided, and a cash bar is available 289 to align with the spirit of a happy hour. 291 2.3. Code Lounge 293 The Code Lounge provides space for groups to gather and continue to 294 collaborate on running code after the Hackathon. It is typically in 295 the IETF Lounge and open the same hours as the IETF Lounge. 296 Champions are encouraged to look at the final agenda and determine 297 time slots best suited to ensure attendance of Code Lounge sessions 298 as well as any related working group sessions. It is okay for 299 multiple teams to sign up for the same time slots. This is in fact 300 encouraged for work that spans multiple working groups or projects. 302 2.4. Code Sprint 304 The IETF [CODE-SPRINT] develops tools that support the work of the 305 IETF. The Code Sprint existed long before the Hackathon and 306 benefitted from being a focused event in a quiet space with few 307 interruptions. However, there is a great deal of synergy between the 308 Code Sprint and the Hackathon, and they attract some of the same 309 participants. For example, some Hackathon projects, such as those 310 related to YANG model validation, involve the creation or 311 modification of IETF tools. It is therefore advantageous to co- 312 locate these two events when practical, and when separate space is 313 deemed helpful, to allocate spaces that are physically close to each 314 other to make it easy for participants to switch back and forth 315 between the two events. 317 2.5. Online Only 319 The IETF 107 Hackathon was originally scheduled to be the weekend at 320 the start of the IETF meeting in Vancouver. When COVID-19 hit and it 321 became clear the IETF meeting could not occur in person, the 322 Hackathon already had 23 projects and 176 registrations. With only 323 10 days until the anticipated start of the Hackathon, a [SURVEY] went 324 out to the Hackathon community, including all project champions and 325 registered participants, to see if they wanted to participate in the 326 Hackathon exactly as planned except with everyone participating 327 remotely rather than in person. A relatively small number of people 328 expressed interest in participating, with even fewer wanting to 329 continue to champion their projects. The fact that the Hackathon was 330 planned for the weekend before the IETF meeting and in the local time 331 zone, both of which were historically very convenient and attractive 332 to Hackathon participants, suddenly became huge obstacles. 333 Consequently, the IETF 107 Hackathon was cancelled. 335 We knew more in advance that IETF 108 would be an online only 336 meeting. We moved and expanded the schedule to run the entire work 337 week before the rest of the IETF meeting. The Hackathon kickoff was 338 set for Monday, the closing for Friday, with all the time in between 339 left for individual project teams to arrange to meet how and when was 340 most convenient for them. The kickoff and closing sessions were 341 schedule to align with the time frame established for the IETF 108 342 meeting. All of this was, of course, not ideal, and it worked much 343 better for some people than for others, but at least everyone knew 344 the plan and corresponding time commitment well in advance and had 345 the ability to plan accordingly. 347 We ultimately had 19 projects and almost 300 registrations. It is 348 hard to say how many people actually participated and for how long, 349 but many projects were able to get substantial work done. For the 350 closing, 10 teams produced and shared presentations summarizing their 351 findings and achievements. All results presentations as well as the 352 agenda and a recording of the closing session are available via the 353 [IETF-108-HACKATHON-WIKI]. This level of participation was strong 354 enough to be considered a success and justify including the Hackathon 355 in future online only IETF meetings. 357 Hackdemo Happy Hour and the Code Lounge are not applicable for online 358 only Hackathons. 360 3. Funding 362 The Hackathon requires funding, and that funding increases with the 363 number of participants. Participating has always been free; 364 therefore, funding from other sources than participant fees is 365 required. 367 3.1. Sponsorship 369 The initial funding model was to have Hackathon sponsors sign up to 370 sponsor and fund the Hackathon for one year. As part of starting the 371 Hackathon, Cisco volunteered to sponsor and fund the Hackathon for 372 its first year (i.e., three Hackathons, one at each IETF meeting 373 during a calendar year). This sponsorship was to rotate. Huawei 374 volunteered to sponsor the second year of the Hackathon. After the 375 second year, a sponsor for the 3rd year was not found. However, the 376 Hackathon had become a proven success. Consequently, the IETF 377 decided to fund the Hackathon as part of the IETF meeting, with 378 Hackathon sponsorship being on a best effort basis. 380 Online only Hackathons in response to the COVID-19 pandemic, and 381 increased remote participating in general, result in increased cloud 382 infrastructure requirements that make Hackathon sponsorship more 383 attractive to cloud infrastructure providers. 385 Hackathon sponsorship is available at different levels as part of 386 being an [IETF-RUNNING-CODE-SPONSOR]. 388 3.2. Expenses 390 The primary expenses associated with the Hackathon are those for 391 hosting an in-person event, e.g., meeting space, food and beverage, 392 etc. It is often challenging to quantify the portion of this 393 associated with the Hackathon from that incurred for the IETF meeting 394 overall. 396 3.2.1. In-person Event Expenses 398 The following expenses are associated with in-person participation in 399 a Hackathon. When the IETF meeting is online only, these expenses 400 are eliminated. 402 3.2.1.1. Meeting Space 404 The meeting space for the Hackathon is sometimes included as part of 405 the overall contract for the IETF meeting. Other times, additional 406 expense is incurred to secure a large enough space earlier than would 407 otherwise have been required. Typically, the space is needed for 408 setup from Friday afternoon before the start of the IETF meeting 409 until Sunday afternoon. After the Hackathon, the space is typically 410 repurposed for the IETF Lounge. If the size of the Hackathon 411 continues to increase, it might be necessary to use the same space as 412 is later used for the IETF plenary. 414 3.2.1.2. Food and Beverage 416 Some portion of the food and beverage expense is often included as 417 part of a minimum spend the IETF is obligated to make. When a 418 Hackathon sponsor is identified, funds resulting from this 419 sponsorship are typically used to offset food and beverage expenses, 420 or to increase the food and beverage budget. 422 The minimum food and beverage for the Hackathon has been, 424 * coffee, tea, and water Saturday and Sunday morning 426 * lunch Saturday and Sunday 428 Additional items, in order of importance, include, 430 * beer Saturday evening 432 * dinner Saturday evening 434 * continental breakfast Saturday and Sunday 436 * afternoon snacks Saturday and Sunday 438 3.2.1.3. T-shirts 440 Hackathon t-shirts are an important part of the Hackathon. They have 441 been provided for all in-person Hackathons and greatly appreciated by 442 many participants. They also serve as great advertising for the 443 IETF, the Hackathon, and sponsors. Cisco or other event sponsors 444 have often covered expenses associated with t-shirts. The current 445 model is that the secretariat covers the expenses using whatever 446 funding is available. 448 The number of size distribution of t-shirts for IETF 107 is provided 449 here as an example. 451 * 380 t-shirts at a cost of roughly $10 USD / t-shirt with shipping 452 to the Secretariat included 454 - 50 Small 456 - 120 Medium 458 - 110 Large 460 - 75 XL 462 - 25 XXL 464 The t-shirts are all standard cut. We previously tried providing 465 fitted cut t-shirts as an option for Hackathon participants, but 466 these were not well received. 468 3.2.1.4. Stickers 470 Laptop stickers are popular with developers. Stickers have been made 471 available at the Hackathon for those that want them. Expenses have 472 been covered by the IETF LLC, Director of Communications and 473 Operations. 475 3.2.2. Remote Participation Expenses 477 The following expenses are associated things done primarily to 478 facilitate remote participation in a Hackathon. This includes 479 participation when the Hackathon is online only as well as remote 480 participation when the Hackathon is in-person. 482 * Meetecho: cost associated with Hackathon kickoff and closing 484 * Gather: costs associated with premium service, required to enable 485 more than 25 concurrent users. This has not been necessary, but 486 will almost certainly be if Gather becomes a valuable way for 487 Hackathon participants to meet within and across teams. 489 * Webex: IETF Webex accounts are made available to champions for the 490 duration of the Hackathon and some period beyond that encompasses 491 at least the rest of the IETF meeting. These accounts are 492 available at no additional cost to the IETF at present 494 * Network: setup and support of the IETF network, and remote access 495 to it 497 The change in timing and extended duration of the Hackathon at an 498 online only IETF meeting increases the duration and use of remote 499 participation facilities from 7 days to 12 days. This may result in 500 increases to the cost of providing these facilities. 502 4. Project Presentations 504 Project presentations are an important mechanism for capturing what 505 each team intends to accomplish, what they actually accomplished, and 506 sharing the results and findings with the IETF community. 508 For the first few Hackathons, we had two very distinct types of 509 presentations: 511 1. Presentations that served as project pitches at the start of the 512 Hackathon 514 2. Presentations that summarized results at the end of the 515 Hackathon. 517 4.1. Project Pitches 519 The project pitches were 5-10 minute presentations by a champion of a 520 project describing what they wanted to do and how they proposed to 521 accomplish it. This gave everyone in the room a better understanding 522 of all the projects and helped participants match themselves with 523 appropriate projects. This worked well when we had few projects, but 524 it became unwieldy as the number of projects increased. As knowledge 525 of the Hackathon grew and advanced planning became more common, many 526 participants knew exactly which team they planned to join and wanted 527 to get to work as quickly as possible rather than spend time 528 listening to presentations. Project pitches were dropped from the 529 Hackathon. Champions are encouraged to share this type of 530 information in advance via the Meeting Wiki (Section 5.4) instead. 532 4.2. Project Results Presentations 534 The project results presentations were brief presentations by each 535 team of what problem they tried to solve, what they achieved, and 536 highlights that included lessons learned, feedback to associated 537 working groups, and collaboration with open source communities and 538 other standards organizations. They also highlight individuals who 539 participated in their first IETF Hackathon or first IETF event, which 540 helps facilitate the introduction of such individuals to the IETF 541 community. The production and presentation of results summaries is 542 optional. Fortunately, despite the lack of awards and prizes, most 543 teams participate. 545 As with the project pitches, project results presentations can become 546 unwieldy as the number of projects increases. With this in mind, the 547 total time for all results presentations is limited to 2 hours. The 548 maximum duration of each presentation is calculated based on the 549 number teams that indicate the desire to present. This maximum is 550 strictly enforced to ensure all teams have the opportunity to present 551 their results. Maximum durations of 3-5 minutes are typical. 553 4.2.1. Templates 555 Project results presentation templates provides guidance on what to 556 cover. The use of these templates is optional. They are made 557 available in various formats in a GitHub repo created specifically 558 for the presentations for each IETF Hackathon, e.g., 559 [RESULTS-PRESENTATIONS]. 561 4.2.1.1. PPTX 563 For portability, presentations that use this template should be made 564 exported into PDF format as well. 566 4.2.1.2. HTML format 568 This template should render within any browser. It can be rendered 569 as a slideshow using [REMARK]. 571 4.3. Upload to GitHub 573 All project results presentations are uploaded to the GitHub repo 574 created the Hackathon, e.g., [RESULTS-PRESENTATIONS]. The contents 575 of this repo are used as the source for all results presentations at 576 the end of the Hackathon and remain as a reference after the 577 Hackathon. 579 One must be a member of the [IETF-HACKATHON-GITHUB] organization to 580 upload a new presentation or update/replace an existing presentation. 582 To be added as a member, presenters are asked to: 584 * include the name by which they are known in their GitHub profile 586 * enable two-factor authentication (2FA) 588 * send your GitHub username to the Chair(s) 590 Presenters are asked to do this at their earliest convenience as the 591 Chair(s) typically get very busy as the start of presentations 592 approaches. 594 4.4. Presenting in Person 596 Presentations are run from a shared Chromebook at the front of the 597 Hackathon room. This Chromebook is provided by the Secretariat. 599 4.5. Presenting Remotely 601 Remote presenters are welcome to run their own presentations using 602 the screen sharing functionality in Meetecho. Alternatively, the 603 Hackathon Chairs can share the presentation and advance slides for 604 the presenter. 606 5. Tooling 608 The IETF Hackathon uses the same tooling used by the IETF community 609 for its work and meetings. 611 5.1. Datatracker 613 The [DATATRACKER] supports the notion of Teams that are not part of 614 the standards development process. The Hackathon exists as one such 615 Team. From the Datatracker menu, navigate to "Other" -> "Active 616 Teams" -> "Hackathon". Here exists a Datatracker space for the 617 Hackathon similar to what is available for working groups, including 618 meeting materials, agendas, etc. Initially, there was some attempt 619 to copy materials hosted in the [IETF-HACKATHON-GITHUB] to the 620 Datatracker. Now this is done only when required for integration 621 with other IETF tooling, including to: 623 * [REQUEST-SESSIONS] for the Hackathon kickoff and closing, and for 624 Hackdemo Happy Hour 626 * post [AGENDAS] 628 5.2. IETF Website 630 5.2.1. Hackathon Website 632 The IETF website includes a [HACKATHON-WEBSITE]. This website 633 contains information about the Hackathon in general as well as links 634 to past, present, and future Hackathons. The relevant links are 635 updated after each IETF meeting. Other content on the website is 636 updated on a more ad hoc basis. 638 5.2.2. Meeting Website 640 Each IETF [MEETING-WEBSITE] contains information about the 641 corresponding Hackathon, including the dates of the Hackathon in the 642 header and a link to the Hackathon website in the "Additional Events" 643 section. 645 5.3. Registration 647 Registration for the Hackathon is through the IETF meeting 648 [REGISTRATION-SYSTEM]. Participant registration for the Hackathon 649 is: 651 * independent of participation registration for the meeting 653 * free 655 * required 657 As with meeting registration, registrants for the Hackathon 658 acknowledge the [NOTE-WELL] during the registration process. 660 5.3.1. Participant List 662 An active list of all registered participants, e.g., [PARTICIPANTS], 663 is maintained by the Secretariat. Important information displayed 664 for each registrant includes the set of projects and technologies in 665 which each participant is interested and an email address. This 666 information is optional at the time of registration and may be 667 updated or removed by editing one's registration. 669 5.3.2. Caps on Registrations 671 Registrations were capped for the first several Hackathons. This was 672 done both for space and costs considerations. The cap was hit 673 multiple times, each time resulting in temporary confusion and 674 frustration among would be registrants, followed by the cap being 675 increased. Currently, there are no caps enforced by the registration 676 system. 678 5.4. Meeting Wiki 680 The [MEETING-WIKI] serves as the primary source of information for 681 each Hackathon. 683 5.4.1. Hackathon 685 A page within the meeting wiki, e.g., [IETF-110-HACKATHON-WIKI], is 686 created by the Secretariat for each Hackathon and initialized with 687 information that is based largely on the information from the 688 previous Hackathon. Once created, the Hackathon Chairs update and 689 moderate this page. Champions are requested and responsible for 690 adding information about projects for which they are a champion. 692 Anyone can edit the wiki by logging in using their Datatracker login 693 credentials. Credentials can be obtained by creating a 694 [DATATRACKER-ACCOUNT]. 696 5.4.2. Lost and Found 698 A Lost and Found wiki page, e.g., [LOST-AND-FOUND], is created by the 699 Chairs for each Hackathon. Participants looking for a team are 700 encouraged to add themselves to the "Skills to Offer" table, 701 providing some information about their skills and interests. This 702 will help others with matching needs and/or interests find them. 703 Champions wanting help on their projects are encouraged to add their 704 teams to the "Skills Needed" table, providing some information about 705 the skills they seek. 707 5.4.3. Results Presentation Schedule 709 A Results Presentation Schedule wiki page, e.g., 710 [RESULTS-PRESENTATION-SCHEDULE], is created by the Chairs for each 711 Hackathon. Hackathon teams are welcome and encouraged to present 712 their results during the Hackathon Closing. Hackathon teams add the 713 name of their project and the name of the presenter to the table at 714 the bottom of this page. 716 5.4.4. In Person Only 718 The following wiki pages are applicable for in-person Hackathons 719 only. 721 5.4.4.1. Hackdemo Happy Hour 723 A Hackdemo Happy Hour wiki page, e.g., [HACKDEMO], is created by the 724 Chairs for each Hackathon. Champions are welcome and encouraged to 725 add their project by entering the project name/acronym and a contact 726 name and email address in the table displayed on the page. 728 5.4.4.2. Code Lounge 730 A Code Lounge wiki page, e.g., [CODE-LOUNGE], is created by the 731 Chairs for each Hackathon. Champions are welcome and encouraged to 732 add their project by entering the project name/acronym and a contact 733 name and email address in the table displayed on the page. 735 5.4.5. Online Only 737 The following wiki pages are applicable for online Hackathons only. 739 5.4.5.1. Team Schedule 741 A Team Schedule wiki page, e.g., [TEAM-SCHEDULE], is created by the 742 Chairs for each online only Hackathon. Online only Hackathons take 743 place globally for an entire week. It is up to individual project 744 teams to determine the preferred dates, times, and ways to meet to 745 work on their project within the context of that week (e.g., Zoom, 746 Webex, Slack). This page is meant to help facilitate coordination of 747 schedules within and across teams. 749 5.5. Email List 751 The Hackathon email list, [EMAIL-LIST], is used for all email 752 communication and announcements related to the Hackathon. All 753 registrants are given the option to subscribe to the list. Anyone 754 interested in staying up to date on the Hackathon is able to 755 subscribe at any time. Once subscribed, anyone can send and respond 756 to emails to the list. The same list is used for each Hackathon. 757 Anyone wishing to receive email for a specific Hackathon only can 758 unsubscribe after that Hackathon has concluded. 760 5.5.1. Hackathon Chairs Email Alias 762 The email alias, [EMAIL-ALIAS], was created and is maintained by the 763 Secretariat. It is used on Hackathon webpages and wiki pages to 764 provide a single point of contact for the Hackathon. 766 5.6. GitHub 768 The [IETF-HACKATHON-GITHUB] is used to share code, presentations, and 769 other artifacts at IETF Hackathons. The Hackathon Chairs are 770 responsible for administering the GitHub organization. 772 Code for Hackathon projects often exist elsewhere, which is perfectly 773 fine. Anyone needing a place to host code for the Hackathon can 774 request the creation of a repository for their project. 776 A repository is created and maintained by the Chairs for each 777 Hackathon, e.g., [RESULTS-PRESENTATIONS]. This repo is for 778 participants to upload project results presentations. The contents 779 of this repo are used as the source for all presentations at the end 780 of the Hackathon and remain as a reference after the Hackathon. 782 5.7. Meetecho 784 [MEETECHO] is used for the kickoff and closing sessions of the 785 Hackathon. This provides many capabilities, including the following: 787 * allows participants to join Hackathon sessions in person or 788 remotely 790 * validates registration of participants at time of joining 791 Hackathon sessions 793 * enables remote presenters of project results presentations 795 * captures recording of Hackathon kickoff and closing 797 5.8. Network 799 Access to the IETF network is an important aspect of the Hackathon. 800 The IETF network provides unfettered Internet access that is not 801 typical within many residential, corporate, and university 802 environments. For many of IETF participants and projects, access to 803 the Internet and each other via wireless access to the IETF network 804 is sufficient. However, due to the nature of the work done in the 805 IETF, wired access and special networking capabilities are often 806 required. 808 The NOC has graciously met the needs of the Hackathon since its 809 inception and continues to add more capabilities over time. 810 Champions are able to request in advance wired access and special 811 networking functionality, including static IPv4 and IPv6 addresses, 812 IPv6 only networking, a closed user group, NAT64, and IPv6 PD. All 813 of this, and the IETF network in general, is made available by the 814 start of the Hackathon and in advance for setup to the extent 815 possible. 817 5.8.1. Remote Networking 819 Online only meetings present both a personal networking challenge and 820 a computer networking challenge. The NOC came to the rescue for the 821 latter with an experimental mechanism to join the IETF network while 822 attending a meeting remotely. This evolved into what is now known as 823 [HACKNET], a global Layer 2 VPN designed to support IETF protocol 824 development across teams within the IETF Hackathon. A limited set of 825 devices for connecting to HackNet are supported. In addition to 826 layer 2 connectivity, a subset of the networking capabilities 827 available at in-person meetings are available. Both the set of 828 devices and the set of networking capabilities are expected to expand 829 and evolve over time. However, it is important to note that HackNet 830 is still an experiment and not a production service. Best effort 831 support is available via email to [TICKET]. 833 5.9. Webex 835 Champions can request a [WEBEX-ACCOUNT] they can use to schedule 836 meetings for their team. These are similar to the Webex accounts 837 allocated to working group chairs to be used for virtual interim 838 meetings. An account can be requested by a team champion at any 839 time. Accounts remain active and available throughout the duration 840 of the Hackathon and the associated IETF meeting. A project name may 841 be used in place of "Working Group Name" in the request form. 843 5.10. Gather 845 [GATHER] facilitates virtual hallway interaction during IETF 846 meetings. A dedicated area within the overall space is created by 847 the Secretariat for the Hackathon. The area includes tables, 848 identified by letters of the alphabet, that teams are free to self 849 assign and use as and when they like. Eight to ten seats around each 850 table facilitate group discussions within the team. A whiteboard or 851 shared notes tablet, e.g., [HEDGEDOC], at tables facilitates sharing 852 of information within the team. The tables also facilitate 853 collaboration across teams. One cautionary note, Gather has relative 854 high network bandwidth and CPU requirements, and as such may not be 855 well suited for some Hackathon participants. 857 The Gather space remains available between IETF meetings, with 858 incremental improvements and additions made during this time. The 859 space is cleaned about a month prior to the start of the next 860 meeting, removing anything left over from the previous meeting. 861 Hackathon teams are encouraged to make a copy of anything they want 862 to retain within a week of the end of the IETF meeting. 864 6. Statistics and Metrics 866 Statistics for the Hackathon have been gathered informally from the 867 first Hackathon, at IETF 92, and more formally since IETF 101. 868 Registration is required but it is also free, which can lead to 869 misleading statistics. Starting with IETF 101, an effort has been 870 made by the Secretariat to validate registrations for all in-person 871 participants by checking registrations at the main entrance to the 872 Hackathon room. Badges similar to those issued for the rest of the 873 IETF meeting are now issued for the Hackathon as well. There is 874 still no good mechanism for determining the number of remote 875 participants. 877 Hackathon participation has grown from 45 at IETF 92 to a maximum of 878 406 at IETF 104. Participation tends to be slightly higher when the 879 IETF meeting is located in Europe. Recent in-person Hackathons have 880 had roughly 30-40% as many participants as the corresponding IETF 881 meeting. For roughly 20-30% of Hackathon participants, the Hackathon 882 is their first experience at any IETF event. 884 6.1. IETF Survey Results 886 For each IETF meeting, there is a post event survey that often 887 includes a question or two about the Hackathon, e.g., 888 [IETF-106-SURVEY] 890 6.2. Hackathon Survey Results 892 Hackathon specific surveys have been used on some occasions to obtain 893 more detailed feedback about the Hackathon from the IETF community. 894 This has been especially useful for feedback on online only 895 Hackathons. Survey have been short with most questions being 896 optional, e.g., [IETF-110-SURVEY]. 898 7. Roles and Responsibilities 900 This section provides a summary of the roles and responsibilities of 901 individuals and groups involved in a successful IETF Hackathon. The 902 summary provided here is not meant to be exhaustive. Some 903 responsibilities are described entirely or in more detail throughout 904 the rest of the document. 906 7.1. Hackathon Chair(s) 908 The role of a Hackathon chair is similar to that of a working group 909 chair. As with working groups, it is typically best to have co- 910 chairs share responsibilities and workload. The Chairs work very 911 closely with the Secretariat on all responsibilities. Key 912 responsibilities include: 914 * Organize and deliver a Hackathon at each IETF meeting, soliciting 915 help from all other roles to do much of the heavy lifting 917 * Encourage and provide guidance to champions who volunteer to lead 918 projects 920 * Maintain the Hackathon wiki, e.g., [IETF-110-HACKATHON-WIKI], and 921 all of its child pages. 923 * Moderate Hackathon email list (Section 5.5) 925 * [REQUEST-SESSIONS] for the Hackathon opening and closing in the 926 IETF meeting 928 * Emcee the Hackathon, including the opening and closing sessions 929 and announcements in between 931 * Create and manage the GitHub repository used for each Hackathon, 932 e.g.,[RESULTS-PRESENTATIONS] 934 * Serve as main point of contact for all Hackathon questions and 935 concerns 937 7.2. Secretariat 939 Key responsibilities include: 941 * Configure and manage Hackathon registration system (Section 5.3) 943 * Maintain Hackathon website (Section 5.2.1) 945 * Create and maintain web page for each Hackathon, e.g., 946 [IETF-110-HACKATHON-WEBSITE] 948 * Create wiki page for each Hackathon, e.g., 949 [IETF-110-HACKATHON-WIKI]. This is initialized and updated at 950 times by the Secretariat, but the Chair(s) are ultimately 951 responsible for maintaining it. 953 * Handle venue logistics for Hackathon, Hackdemo Happy Hour, and 954 Code Lounge (e.g., reserve room, food and beverages, AV, etc.) 956 * Internal IETF promotion (e.g., email messages to IETF community) 958 * Assist with external outreach, as needed, including finding 959 sponsors 961 * Validate Hackathon registrations for in-person participants, 962 including issuing badges and Hackathon t-shirts (Section 3.2.1.3) 963 when available 965 7.3. Sponsor 967 Key responsibilities include: 969 * Provide some funding to help offset costs of Hackathon (either per 970 meeting or per year, depending on model) 972 * Optionally provide t-shirts or other giveaways 974 * Optionally provide support staff to assist with Hackathon 976 Key benefits include: 978 * Sponsor logo on Hackathon t-shirts 980 * Sponsor logo on Hackathon signage 982 * Sponsor logo on Hackathon webpage and wiki 984 * Sponsor logo and call out in Hackathon kickoff and closing 985 presentation 987 * Sponsor logo and call out in IETF Plenary presentation 989 * Sponsor logo and call out in Hackathon recap on [IETF-BLOG] 991 * Recognition in IETF community for helping the IETF Hackathon 992 remain free and open to everyone 994 7.4. Champions of Projects 996 Champions of projects are the key to a successful Hackathon. Key 997 responsibilities for champions include: 999 * Volunteer to lead a project at the Hackathon 1000 * Serve as primary contact for the project 1002 * Add and manage information on the Hackathon wiki for the project 1004 * Promote the project to appropriate groups inside IETF and outside 1005 as well 1007 * Welcome and organize members of the team 1009 * Provide focus, guidance, and leadership for the project 1011 7.5. IETF LLC, Director of Communications and Operations (was ISOC) 1013 Key responsibilities include: 1015 * Promotion outside of IETF, including web search engine ad words, 1016 social media posts, and listing on external event calendars such 1017 as [RIPE-CALENDAR] and [NSRC-CALENDAR]. 1019 * Outreach to local universities 1021 * Provide photographer, including optional team photos and candid 1022 photos of collaborating during in-person events 1024 * Laptop stickers (Section 3.2.1.4) at in-person events 1026 7.6. Judges 1028 The first several Hackathon involved judges who listened to project 1029 results presentations by teams at the closing of each Hackathon and 1030 identified winning teams for an arbitrary number of project 1031 categories. Prizes were made available to members of winning teams. 1032 This was done as an incentive to participate in the Hackathon and 1033 present results, and to provide a fun yet informative end to the 1034 Hackathon that could be appreciated by the entire IETF community. 1035 Judging and awarding of prizes led to confusion regarding the nature 1036 of the Hackathon, making it appear to some overly competitive. 1037 Procurement of appropriate prizes was financially and logistically 1038 challenging. Arrangement of judges, determination of winners, and 1039 awarding of prizes all became more time consuming, especially as the 1040 number of projects and participants grew. Ultimately, it was deemed 1041 best to eliminate judging, awards, and prizes entirely. Apparently 1042 the IETF community has an innate incentive to participate and present 1043 results in the Hackathon. 1045 8. Implementation Status 1047 The practices described in this document have been established, used, 1048 and refined over the course of running numerous IETF Hackathons, 1049 including several at online only IETF meetings. The [GITHUB-REPO] 1050 GitHub repository has been used to collaborate on this document. The 1051 IETF-Hackathon GitHub (Section 5.6) contains code associated with 1052 IETF Hackathons. 1054 9. Security Considerations 1056 HackNet (Section 5.8.1) enables Hackathon participants to join the 1057 IETF network while attending a meeting remotely. The intent is for 1058 those connecting remotely to have as open a network as possible, just 1059 like those connecting to the IETF network at an in person meeting. A 1060 user must have a Datatracker account to access HackNet and is 1061 expected to respect it just as they are expected to respect the IETF 1062 network at an in person meeting. If HackNet is exploited, it is 1063 addressed as an exploitation of the IETF network would be at an in 1064 person meeting. 1066 9.1. Privacy Considerations 1068 Participant names are displayed publicly in the Participant List 1069 (Section 5.3.1). As part of their registration, participants may opt 1070 in to display their email address as well. 1072 The email addresses of individual champions are often shared publicly 1073 by the champions on the wiki. This is done voluntarily by individual 1074 champions to make it easier for others to contact them. 1076 10. IANA Considerations 1078 This document has no IANA actions. 1080 11. Informative References 1082 [AGENDAS] "IETF Meeting Agenda", n.d., 1083 . 1085 [CODE-LOUNGE] 1086 "IETF 113 Code Lounge", n.d., 1087 . 1090 [CODE-SPRINT] 1091 "IETF Code Sprint", n.d., 1092 . 1094 [DATATRACKER] 1095 "IETF Datatracker", n.d., . 1097 [DATATRACKER-ACCOUNT] 1098 "IETF Datatracker Account Creation", n.d., 1099 . 1101 [EMAIL-ALIAS] 1102 "IETF Hackathon Chairs Email Alias", n.d., 1103 . 1105 [EMAIL-LIST] 1106 "IETF Hackathon Email List", n.d., 1107 . 1109 [GATHER] "Gather", n.d., . 1111 [GITHUB-REPO] 1112 "GitHub Repository for draft-ietf-shmoo-hackathon", n.d., 1113 . 1115 [HACKATHON-WEBSITE] 1116 "IETF Hackathon Website", n.d., 1117 . 1119 [HACKDEMO] "IETF 113 Hackdemo Happy Hour", n.d., 1120 . 1123 [HACKNET] "HackNet", n.d., . 1125 [HEDGEDOC] "HedgeDoc", n.d., . 1127 [IETF-106-SURVEY] 1128 "IETF 106 Meeting Survey", n.d., 1129 . 1132 [IETF-108-HACKATHON-WIKI] 1133 "IETF 108 Hackathon Wiki", n.d., 1134 . 1137 [IETF-110-HACKATHON-WEBSITE] 1138 "IETF 110 Hackathon Website", n.d., 1139 . 1142 [IETF-110-HACKATHON-WIKI] 1143 "IETF 110 Hackathon Wiki", n.d., 1144 . 1147 [IETF-110-SURVEY] 1148 "IETF 110 Meeting Survey", n.d., . 1150 [IETF-BLOG] 1151 "IETF Blog", n.d., . 1153 [IETF-HACKATHON-GITHUB] 1154 "IETF-Hackathon GitHub", n.d., 1155 . 1157 [IETF-RUNNING-CODE-SPONSOR] 1158 "IETF Running Code Sponsor", n.d., 1159 . 1161 [LOST-AND-FOUND] 1162 "IETF 110 Hackathon Lost and Found", n.d., 1163 . 1166 [MEETECHO] "Meetecho", n.d., . 1168 [MEETING-WEBSITE] 1169 "IETF Meeting Website", n.d., 1170 . 1172 [MEETING-WIKI] 1173 "IETF Meeting Wiki", n.d., 1174 . 1176 [NOTE-WELL] 1177 "IETF Note Well", n.d., 1178 . 1180 [NSRC-CALENDAR] 1181 "Network Startup Resource Center Calendar", n.d., 1182 . 1184 [PARTICIPANTS] 1185 "IETF 110 Hackathon Participant List", n.d., 1186 . 1189 [REGISTRATION-SYSTEM] 1190 "IETF Meeting Registration System", n.d., 1191 . 1193 [REMARK] "remark GitHub Repository", n.d., 1194 . 1196 [REQUEST-SESSIONS] 1197 "IETF Session Request", n.d., 1198 . 1200 [RESULTS-PRESENTATION-SCHEDULE] 1201 "IETF 110 Hackathon Results Presentation Schedule", n.d., 1202 . 1205 [RESULTS-PRESENTATIONS] 1206 "IETF 110 Hackathon Project Results Presentations", n.d., 1207 . 1210 [RIPE-CALENDAR] 1211 "RIPE Upcoming Events", n.d., 1212 . 1214 [SURVEY] "IETF 107 Hackathon Participant Survey", n.d., 1215 . 1217 [TEAM-SCHEDULE] 1218 "IETF 110 Hackathon Team Schedule", n.d., 1219 . 1222 [TICKET] "IETF Support Email Alias", n.d., 1223 . 1225 [WEBEX-ACCOUNT] 1226 "IETF Webex Account", n.d., 1227 . 1230 Acknowledgments 1232 The IETF Secretariat, notably Alexa Morris and Stephanie McCammon, 1233 contributed significantly to the creation of the IETF Hackathon and 1234 the practices in this document. Among other things, Alexa drafted 1235 the initial breakdown of Roles and Responsibilities (Section 7), and 1236 Stephanie McCammon created the initial Hackathon website and wiki. 1237 These have evolved over time and are used to run each Hackathon. 1239 Greg Wood, Barry Leiba, Michael Richardson, Benson Muite, Dhruv 1240 Dhody, Karl Auerbach, Mallory Knodel, Lars Eggert, Robert Sparks, and 1241 Thomas Fossati also provided significant contributions to the 1242 Hackathon and to this document. 1244 Author's Address 1246 Charles Eckel 1247 Cisco Systems 1248 United States of America 1249 Email: eckelcu@cisco.com