idnits 2.17.1 draft-ietf-shmoo-hackathon-00.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 (27 May 2021) is 1036 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 shmoo C. Eckel 3 Internet-Draft Cisco Systems 4 Intended status: Informational 27 May 2021 5 Expires: 28 November 2021 7 Running an IETF Hackathon 8 draft-ietf-shmoo-hackathon-00 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 for running IETF 15 Hackathons. 17 Discussion Venues 19 This note is to be removed before publishing as an RFC. 21 Discussion of this document takes place on the Stay Home Meet Only 22 Online Working Group mailing list (manycouches@ietf.org), which is 23 archived at https://mailarchive.ietf.org/arch/browse/manycouches/. 25 Source for this draft and an issue tracker can be found at 26 https://github.com/eckelcu/draft-ietf-shmoo-hackathon. 28 Status of This Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at https://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on 28 November 2021. 45 Copyright Notice 47 Copyright (c) 2021 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 52 license-info) in effect on the date of publication of this document. 53 Please review these documents carefully, as they describe your rights 54 and restrictions with respect to this document. Code Components 55 extracted from this document must include Simplified BSD License text 56 as described in Section 4.e of the Trust Legal Provisions and are 57 provided without warranty as described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 62 2. Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 63 2.1. Agenda . . . . . . . . . . . . . . . . . . . . . . . . . 5 64 2.2. Hackdemo Happy Hour . . . . . . . . . . . . . . . . . . . 6 65 2.3. Code Lounge . . . . . . . . . . . . . . . . . . . . . . . 7 66 2.4. Code Sprint . . . . . . . . . . . . . . . . . . . . . . . 7 67 2.5. Online Only . . . . . . . . . . . . . . . . . . . . . . . 7 68 3. Funding . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 69 3.1. Sponsorship . . . . . . . . . . . . . . . . . . . . . . . 8 70 3.2. Expenses . . . . . . . . . . . . . . . . . . . . . . . . 9 71 3.2.1. In-person Event Expenses . . . . . . . . . . . . . . 9 72 3.2.2. Remote Participation Expenses . . . . . . . . . . . . 11 73 4. Project Presentations . . . . . . . . . . . . . . . . . . . . 11 74 4.1. Project Pitches . . . . . . . . . . . . . . . . . . . . . 12 75 4.2. Results Summaries . . . . . . . . . . . . . . . . . . . . 12 76 4.2.1. Templates . . . . . . . . . . . . . . . . . . . . . . 12 77 4.3. Upload to GitHub . . . . . . . . . . . . . . . . . . . . 13 78 4.4. Presenting in Person . . . . . . . . . . . . . . . . . . 13 79 4.5. Presenting Remotely . . . . . . . . . . . . . . . . . . . 13 80 5. Tooling . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 81 5.1. Datatracker . . . . . . . . . . . . . . . . . . . . . . . 14 82 5.2. IETF Website . . . . . . . . . . . . . . . . . . . . . . 14 83 5.2.1. Hackathon Webpage . . . . . . . . . . . . . . . . . . 14 84 5.2.2. Meeting Webpage . . . . . . . . . . . . . . . . . . . 14 85 5.3. Registration . . . . . . . . . . . . . . . . . . . . . . 14 86 5.3.1. Participant List . . . . . . . . . . . . . . . . . . 15 87 5.3.2. Caps on Registrations . . . . . . . . . . . . . . . . 15 88 5.4. Meeting Wiki . . . . . . . . . . . . . . . . . . . . . . 15 89 5.4.1. Hackathon . . . . . . . . . . . . . . . . . . . . . . 15 90 5.4.2. Lost and Found . . . . . . . . . . . . . . . . . . . 16 91 5.4.3. Results Presentation Schedule . . . . . . . . . . . . 16 92 5.4.4. In Person Only . . . . . . . . . . . . . . . . . . . 16 93 5.4.5. Online Only . . . . . . . . . . . . . . . . . . . . . 17 94 5.5. Mailing List . . . . . . . . . . . . . . . . . . . . . . 17 95 5.5.1. Hackathon Chairs Email Alias . . . . . . . . . . . . 17 96 5.6. GitHub . . . . . . . . . . . . . . . . . . . . . . . . . 18 97 5.7. Meetecho . . . . . . . . . . . . . . . . . . . . . . . . 18 98 5.8. Network . . . . . . . . . . . . . . . . . . . . . . . . . 18 99 5.8.1. Remote Networking . . . . . . . . . . . . . . . . . . 19 100 5.9. Webex . . . . . . . . . . . . . . . . . . . . . . . . . . 19 101 5.10. Gather . . . . . . . . . . . . . . . . . . . . . . . . . 20 102 6. Statistics and Metrics . . . . . . . . . . . . . . . . . . . 20 103 6.1. IETF Survey Results . . . . . . . . . . . . . . . . . . . 20 104 6.2. Hackathon Survey Results . . . . . . . . . . . . . . . . 21 105 7. Roles and Responsibilities . . . . . . . . . . . . . . . . . 21 106 7.1. Hackathon Chair(s) . . . . . . . . . . . . . . . . . . . 21 107 7.2. Secretariat . . . . . . . . . . . . . . . . . . . . . . . 22 108 7.3. Sponsor . . . . . . . . . . . . . . . . . . . . . . . . . 22 109 7.4. Champions of Projects . . . . . . . . . . . . . . . . . . 23 110 7.5. IETF LLC, Director of Communications and Operations (was 111 ISOC) . . . . . . . . . . . . . . . . . . . . . . . . . . 23 112 7.6. Judges . . . . . . . . . . . . . . . . . . . . . . . . . 24 113 8. Security Considerations . . . . . . . . . . . . . . . . . . . 24 114 8.1. Privacy Considerations . . . . . . . . . . . . . . . . . 24 115 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 116 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 24 117 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 24 119 1. Introduction 121 IETF Hackathons encourage the IETF community to collaborate on 122 running code related to existing and evolving Internet standards. 123 IETF Hackathons aim to: 125 * Advance the pace and relevance of IETF standards activities by 126 bringing the speed and collaborative spirit of open source 127 development into the IETF 129 * Bring developers and young people into IETF and get them exposed 130 to and interested in the IETF 132 IETF Hackathons are free to attend and open to everyone. Software 133 developers are the primary audience, but participation by subject 134 matter experts who are not necessary developers is encouraged and 135 very important as well. Similarly, while the Hackathon is meant to 136 attract newcomers and those who do not typically view themselves as 137 standards people, long time IETF contributors, including Internet- 138 Draft authors, working group chairs, and subject matter experts, are 139 key participants as well. Group dynamics and blending of skillsets 140 and perspectives are extremely valuable aspects of IETF Hackathons. 142 In addition to the running code created and improved as a result of 143 each Hackathon, the exchange or ideas, extensions of human networks, 144 and establishment of trust, respect, and friendships are some of the 145 most valuable outputs of each Hackathon. Code written in a 146 programming language can be more illustrative and less 147 confrontational than opinions expressed during a meeting or in an 148 email. Working together to find common understanding of proposals, 149 concerns, and solutions that result in improvements to evolving 150 Internet standards is as important as the development of running code 151 that implements or validates the correctness of these same proposals. 153 Consequently, IETF Hackathons are collaborative events, not 154 competitions. Any competitiveness among participants is friendly and 155 in the spirit of advancing the pace and relevance of new and evolving 156 Internet standards. 158 This document provides a set of practices for running IETF 159 Hackathons. 161 2. Timing 163 The first IETF Hackathon was held the weekend before the start of the 164 IETF 92 meeting. The rationale was to avoid conflicts yet make it 165 relatively convenient for those attending the IETF meeting to 166 participate in the Hackathon as well. Holding the Hackathon on the 167 weekend was also viewed as making it more accessible to non IETF 168 meeting participants, including students and working professionals 169 who would have other commitments during the week. The weekend before 170 was viewed as better than the weekend after so that things learned 171 during the Hackathon could be shared and discussed with the rest of 172 the IETF community during working group sessions and the like. This 173 worked well at IETF 92, was repeated at IETF 93, and quickly became 174 an established norm with the IETF meeting being officially extended 175 to include the Hackathon at the start. An additional benefit of this 176 timing noted and appreciated by participants is that it serves as a 177 more informal and social way to physically and mentally acclimate to 178 changes in time zones, surroundings, and subject matter. 180 2.1. Agenda 182 The IETF Hackathon is a strenuous event. Though not a competition, 183 participants want to make the most of their time together, much as 184 with the IETF meeting in general. Competitive Hackathons typically 185 run non-stop for on the order of 40 hours. There is a strict 186 deadline and teams are judged and winners declared at the end. 187 Afterward everyone is wiped out and heads off to briefly celebrate or 188 commiserate, but mainly to recuperate. As the IETF Hackathon serves 189 as the start of the overall IETF meeting, we aim to strike a 190 compromise that provides enjoy time to get valuable work accomplished 191 without exhausting themselves before the main IETF meeting even 192 starts. While some people participate in the Hackathon only, the 193 majority of people remain and plan to be actively engaged in the rest 194 of the IETF meeting. 196 The typical agenda is as follows: 198 Saturday before IETF meeting week 199 08:30: Room open for setup by project champions 200 09:00: Room open for all - Pastries and coffee provided 201 09:30: Hackathon kickoff 202 09:45: Form Teams 203 12:30: Lunch provided 204 15:30: Afternoon break - Snacks provided 205 19:00: Dinner provided 206 22:00: Room closes 208 Sunday before IETF meeting week 209 08:30: Room opens - Pastries and coffee provided 210 12:30: Lunch provided 211 13:30: Hacking stops, prepare brief presentation of project 212 14:00: Project presentations to other participants 213 15:45: Closing remarks and opportunities for next time 214 16:00: Hackathon ends 215 17:00: Tear down complete 217 The time on Saturday morning provides team champions time to setup 218 and participants time to socialize and learn more about projects and 219 team they might want to join. The kickoff presentation and 220 formalities are kept to minimum to leave as much time as possible for 221 team to work together with their team on their projects. The 222 proximity of teams to each other fosters communication and 223 collaboration across teams as well. 225 Lunch and dinner are provided as a convenience and an incentive to 226 remain at the Hackathon. Participants are free to come and go as 227 they like. It is well understood and accepted that there are other 228 things vying for time and that meeting with friends or colleagues 229 outside of the Hackathon is an entirely reasonable thing to do. 231 The room closes Saturday evening to give hotel staff unfettered 232 access to the room and to encourage people to pace and take care of 233 themselves. There are no rules against continuing work on Hackathon 234 projects outside of the Hackathon room. Similarly, working on 235 projects long before and after the Hackathon is allowed and 236 encouraged. 238 The end of the Hackathon on Sunday is driven by other IETF meeting 239 events. There typically are Newcomer events that start at 16:00. 240 The IETF Hackathon typically includes many newcomers in its list of 241 participants. It is important to provide them time to participate in 242 the Newcomer events. The opening reception typically start at 17:00, 243 and we want to make it easy for all Hackathon participants to join 244 that as well. 246 Hackdemo Happy Hour (ref) and the Code Lounge (ref) exist to 247 facilitate ongoing discussion and work on projects beyond the 248 official end of the Hackathon weekend. 250 2.2. Hackdemo Happy Hour 252 Hackdemo Happy Hour provides an opportunity for more in depth sharing 253 and discussion than is possible within the time constraints of the 254 result presentation that occur at the end of the Hackathon. This 255 opportunity is made available to all teams. As with the results 256 presentation, participation is optional. 258 Initially, we did something similar as part of Bits and Bites. This 259 worked well for the Hackathon but the Bits and Bites event was 260 eventually abandoned for other reasons. Hackdemo Happy Hour was 261 created as a low cost, informal event to provide a venue for the IETF 262 community to engage with the Hackathon teams in more in depth 263 discussions related to their projects. 265 Hackdemo Happy Hour is typically Monday evening, roughly from 18:00 - 266 19:30, often overlapping a bit with the last working group session of 267 the day but continuing long enough to allow everyone an opportunity 268 to join. The goal is to make it convenient to attend by not 269 conflicting with other meetings but also no running too late into the 270 night. 272 Light snacks and non alcoholic beverages are provided, and a cash bar 273 is available to align with the spirit of a happy hour. 275 2.3. Code Lounge 277 The Code Lounge provides space for groups to gather and continue to 278 collaborate on running code after the Hackathon. It is typically in 279 the IETF Lounge and open the same hours as the IETF Lounge. 280 Champions are encouraged to look at the final agenda and determine 281 time slots best suited to ensure successful attendance of Code Lounge 282 sessions as well as any traditional working group sessions. It is 283 okay for multiple teams to sign up for the same time slots. This is 284 in fact encouraged for work that spans multiple working groups or 285 projects. 287 2.4. Code Sprint 289 Some efforts were made to have the Hackathon and the Code Sprint work 290 together or potentially be combined into a single event focusing on 291 the development of IETF protocols and IETF internal tools. There is 292 some concern that the events currently compete for resources. There 293 is also a great deal of synergistic potential. Several Hackathon 294 projects, such as those related to YANG model validation, involve the 295 creation or modification of IETF tools. 297 The Code Sprint existed long before the Hackathon and has its own 298 identity and way of doing things. The Code Sprint organizers are 299 against combining the events and potentially losing this identity the 300 benefits of a customized event. The practice that exists today is to 301 locate the events physically close to each other to facilitate 302 switching back and forth between the two events. 304 2.5. Online Only 306 The IETF 107 Hackathon was originally scheduled to be the weekend at 307 the start of the IETF meeting in Vancouver. When COVID-19 hit and it 308 became clear the IETF meeting could not occur in person, the 309 Hackathon already had 23 projects and 176 registrations. With only 310 10 days until the anticipated start of the Hackathon, a survey 311 (https://www.surveymonkey.com/results/SM-9HLRXN8M7/) went out to the 312 Hackathon community, including all project champions and registered 313 participants, to see if they wanted to participate in the Hackathon 314 exactly as planned except with everyone participating remotely rather 315 than in person. A relatively small number of people expressed 316 interest in participating, with even fewer wanting to continue to 317 champion their projects. The fact that the Hackathon was planned for 318 the weekend before the IETF meeting and in the local time zone, both 319 of which were historically very convenient and attractive to 320 Hackathon participants, suddenly became huge obstacles. 321 Consequently, the IETF 107 Hackathon was cancelled. 323 We knew more in advance that IETF 108 would be an online only 324 meeting. We moved and expanded the schedule to run the entire work 325 week before the rest of the IETF meeting. The Hackathon kickoff was 326 set for Monday, the closing for Friday, with all the time in between 327 left for individual project teams to arrange to meet how and when was 328 most convenient for them. The kickoff and closing sessions were 329 schedule to align with the time frame established for the IETF 108 330 meeting. All of this was, of course, not ideal, and it worked much 331 better for some people than for others, but at least everyone knew 332 the plan and corresponding time commitment well in advance and had 333 the ability to plan accordingly. 335 We ultimately had 19 projects and almost 300 registrations. It is 336 hard to say how many people actually participated and for how long, 337 but many projects were able to get substantial work done. For the 338 closing, 10 teams produced and shared presentations summarizing their 339 findings and achievements. All presentations as well as the agenda 340 and a recording of the closing session are available via the IETF 108 341 Hackathon wiki (https://trac.ietf.org/trac/ietf/meeting/ 342 wiki/108hackathon). This level of participation was strong enough to 343 be considered a success and justify including the Hackathon in future 344 online only IETF meetings. 346 Hackdemo Happy Hour and the Code Lounge are not applicable for online 347 only Hackathons. 349 3. Funding 351 The Hackathon requires funding, and that funding increases with the 352 number of participants. Participating has always been free; 353 therefore, funding from other sources than participant fees is 354 required. 356 3.1. Sponsorship 358 The initial funding model was to have Hackathon sponsors sign up to 359 sponsor and fund the Hackathon for one year. As part of starting the 360 Hackathon, Cisco volunteered to sponsor and fund the Hackathon for 361 its first year (i.e., three Hackathons, one at each IETF meeting 362 during a calendar year). This sponsorship was to rotate. Huawei 363 volunteered to sponsor the second year of the Hackathon. After the 364 second year, a sponsor for the 3rd year was not found. However, the 365 Hackathon had become a proven success. Consequently, the IETF 366 decided to fund the Hackathon as part of the IETF meeting, with 367 Hackathon sponsorship being on a best effort basis. 369 Online only Hackathons in response to the COVID-19 pandemic, and 370 increased remote participating in general, result in increased cloud 371 infrastructure requirements that make Hackathon sponsorship more 372 attractive to cloud infrastructure providers. 374 Hackathon sponsorship is available at different levels as part of 375 being an IETF Running Code Sponsor (https://www.ietf.org/about/ 376 support/#running-code). 378 3.2. Expenses 380 The primary expenses associated with the Hackathon are those for 381 hosting an in-person event, e.g., meeting space, food and beverage, 382 etc. It is often challenging to quantify the portion of this 383 associated with the Hackathon from that incurred for the IETF meeting 384 overall. 386 3.2.1. In-person Event Expenses 388 The following expenses are associated with in-person participation in 389 a Hackathon. When the IETF meeting is online only, these expenses 390 are eliminated. 392 3.2.1.1. Meeting Space 394 The meeting space for the Hackathon is sometimes included as part of 395 the overall contract for the IETF meeting. Other times, additional 396 expense is incurred to secure a large enough space earlier than would 397 otherwise have been required. Typically, the space is needed for 398 setup from Friday afternoon before the start of the IETF meeting 399 until Sunday afternoon. After the Hackathon, the space is typically 400 repurposed for the IETF Lounge. If the size of the Hackathon 401 continues to increase, it might be necessary to use the same space as 402 is later used for the IETF plenary. 404 3.2.1.2. Food and Beverage 406 Some portion of the food and beverage expense is often included as 407 part of a minimum spend the IETF is obligated to make. When a 408 Hackathon sponsor is identified, funds resulting from this 409 sponsorship are typically used to offset food and beverage expenses, 410 or to increase the food and beverage budget. 412 The minimum food and beverage for the Hackathon has been, 414 * coffee, tea, and water Saturday and Sunday morning 416 * lunch Saturday and Sunday 417 Additional items, in order of importance, include, 419 * beer Saturday evening 421 * dinner Saturday evening 423 * continental breakfast Saturday and Sunday 425 * afternoon snacks Saturday and Sunday 427 3.2.1.3. T-shirts 429 Hackathon t-shirts are an important part of the Hackathon. They have 430 been provided for all in-person Hackathons and greatly appreciated by 431 many participants. The also serve as great advertising for the IETF, 432 the Hackathon, and sponsors. Cisco or other event sponsors have 433 often covered expenses associated with t-shirts. The current model 434 is that the secretariat covers the expenses using whatever funding is 435 available. 437 The number of size distribution of t-shirts for IETF 107 is provided 438 here as an example. 440 * 380 t-shirts at a cost of roughly $10 USD / t-shirt with shipping 441 to the Secretariat included 443 - 50 Small 445 - 120 Medium 447 - 110 Large 449 - 75 XL 451 - 25 XXL 453 The t-shirts are all standard cut. We previously tried providing 454 fitted cut t-shirts as an option for Hackathon participants, but 455 these were not well received. 457 3.2.1.4. Stickers 459 Laptop stickers are popular with developers. Stickers have been made 460 available at the Hackathon for those that want them. Expenses have 461 been covered by the IETF LLC, Director of Communications and 462 Operations. 464 3.2.2. Remote Participation Expenses 466 The following expenses are associated things done primarily to 467 facilitate remote participation in a Hackathon. This includes 468 participation when the Hackathon is online only as well as remote 469 participation when the Hackathon is in-person. 471 * Meetecho: cost associated with Hackathon kickoff and closing 473 * Gather: costs associated with premium service, required to enable 474 more than 25 concurrent users. This has not been necessary, but 475 will almost certainly be if Gather becomes a valuable way for 476 Hackathon participants to meet within and across teams. 478 * Webex: IETF Webex accounts are made available to champions for the 479 duration of the Hackathon and some period beyond that encompasses 480 at least the rest of the IETF meeting. These accounts are 481 available at no additional cost to the IETF at present 483 * Network: setup and support of the IETF network, and remote access 484 to it 486 The change in timing and extended duration of the Hackathon at an 487 online only IETF meeting increases the duration and use of remote 488 participation facilities from 7 days to 12 days. This may result in 489 increases to the cost of providing these facilities. 491 4. Project Presentations 493 Project presentations are an important mechanism for capturing what 494 each team intends to accomplish, what they actually accomplished, and 495 sharing the results and findings with the IETF community. 497 For the first few Hackathons, we had two very distinct types of 498 presentations, 500 1. Presentation that served as project pitches at the start of the 501 Hackathon 503 2. Presentations that summarize results at the end of the Hackathon. 505 4.1. Project Pitches 507 The project pitches were 5-10 minute presentations by a champion of a 508 project describing what they wanted to do and how they proposed to 509 accomplish it. This gave everyone in the room a better understanding 510 of all the projects and helped participants match themselves with 511 appropriate projects. This worked well when we had a small number of 512 projects, but it became unwieldy as the number of projects increased. 513 As knowledge of the Hackathon grew and advanced planning became more 514 common, many participants knew exactly which team they planned to 515 join and wanted to get to work as quickly as possible rather than 516 spend a couple hours listening to presentations. Project pitches 517 were dropped from the Hackathon. Champions are encouraged to share 518 this type of information in advance via the Meeting Wiki 519 (Section 5.4) instead. 521 4.2. Results Summaries 523 The results summaries are brief presentation by each team of what 524 problem they tried to solve, what they achieved, and highlights that 525 include lessons learned, feedback to associated working groups, and 526 collaboration with open source communities and other standards 527 organizations. They also highlight individuals who are participating 528 in their first IETF Hackathon or first IETF event to facilitate their 529 introduction into the IETF community. The production and 530 presentation of results summaries is optional. Fortunately, despite 531 the lack of awards and prizes, most teams participate. 533 As with the project pitches, results summaries can become unwieldy as 534 the number of projects increases. With this in mind, the total time 535 for all results summaries is limited to 2 hours. The maximum 536 duration of each presentation is calculated based on the number teams 537 that have indicated the desire to present. This maximum is strictly 538 enforced to ensure all teams have the opportunity to present their 539 results. Maximum durations of 3-5 minutes are typical. 541 4.2.1. Templates 543 Project results presentation templates provides guidance on what to 544 cover. The use of these templates is optional. They are made 545 available in various in various formats in a GitHub repo created 546 specifically for the presentations for each IETF Hackathon, e.g., 547 https://github.com/ietf-hackathon/ietf110-project-presentations 548 (https://github.com/ietf-hackathon/ietf110-project-presentations). 550 4.2.1.1. PPTX 552 For portability, presentations that use this template should be made 553 exported into PDF format as well. 555 4.2.1.2. HTML format 557 This template should render within any browser. It can be rendered 558 as a slideshow using remark (https://github.com/gnab/remark). 560 4.3. Upload to GitHub 562 All presentation are uploaded to the GitHub repo created the 563 Hackathon, e.g., https://github.com/ietf-hackathon/ietf110-project- 564 presentations (https://github.com/ietf-hackathon/ietf110-project- 565 presentations). The contents of this repo are used as the source for 566 all project presentations at the end of the Hackathon and remain as a 567 reference after the Hackathon. 569 One must be a member of the IETF-Hackathon GitHub org to upload a new 570 presentation or update/replace an existing presentation. 572 To be added as a member, presenters are asked to 574 * include the name by which they are known in their GitHub profile 576 * enable two factor authentication (2FA) 578 * send your GitHub user name to the Chair(s) 580 Presenters are asked to do this at their earliest convenience as the 581 Chair(s) typically get very busy as the start of presentations 582 approaches. 584 4.4. Presenting in Person 586 Presentations are run from a shared ChromeBook at the front of the 587 Hackathon room. This Chromebook is provided by the Secretariat. 589 4.5. Presenting Remotely 591 Remote presenters are welcome to run their own presentations using 592 the screen sharing functionality in Meetecho. Alternatively, the 593 Hackathon Chairs can share the presentation and advance slides for 594 the presenter. 596 5. Tooling 598 The IETF Hackathon uses the same tooling used by the IETF community 599 for its work and meetings. 601 5.1. Datatracker 603 The datatracker (https://datatracker.ietf.org/) supports the notion 604 of Teams that are not a part of the standards development process. 605 The Hackathon exists as one such Team. From the datatracker menu, 606 navigate to "Other" -> "Active Teams" -> "Hackathon". Here exists a 607 datatracker space for the Hackathon similar to what is available for 608 working groups, including meeting materials, agendas, etc. 609 Initially, there was some attempt to copy materials hosted in GitHub 610 (https://github.com/ietf-hackathon) to the datatracker. Now this is 611 done only when required for integration with other IETF tooling, 612 including: 614 * requesting sessions (https://datatracker.ietf.org/secr/sreq/) for 615 the Hackathon kickoff and closing, and for Hackdemo Happy Hour 617 * posting agendas (https://datatracker.ietf.org/meeting/agenda/) 619 5.2. IETF Website 621 5.2.1. Hackathon Webpage 623 The IETF website includes a dedicated page for the Hackathon webpage 624 (https://www.ietf.org/how/runningcode/hackathons/). This page 625 contains information about the Hackathon in general as well as links 626 to past, present, and future Hackathons. The relevant links are 627 updated after each IETF meeting. Other content on the page is 628 updated on a more ad hoc basis. 630 5.2.2. Meeting Webpage 632 Each IETF meeting webpage (https://www.ietf.org/how/meetings/) 633 contains information about the corresponding Hackathon, including the 634 dates of the Hackathon in the header, a link to the Hackathon webpage 635 in the "Additional Events" section. 637 5.3. Registration 639 Registration for the Hackathon is through the IETF meeting 640 registration (https://registration.ietf.org) system. Participant 641 registration for the Hackathon is 643 * independent of participation registration for the meeting 644 * free 646 * required 648 As with meeting registration, registrants for the Hackathon 649 acknowledge the Note Well (https://ietf.org/about/note-well/) during 650 the registration process. 652 5.3.1. Participant List 654 An active list of all registered participants, e.g., 655 https://registration.ietf.org/110/participants/hackathon/ 656 (https://registration.ietf.org/110/participants/hackathon/), is 657 maintained by the Secretariat. Important information displayed for 658 each registrant includes the set of projects and technologies in 659 which each participant is interested and an email address. This 660 information is optional at the time of registration and may be 661 updated or removed by editing one's registration. 663 5.3.2. Caps on Registrations 665 Registrations were capped for the first several Hackathons. This was 666 done both for space and costs considerations. The cap was hit 667 multiple times, each time resulting in temporary confusion and 668 frustration among would be registrants, followed by the cap being 669 increased. Currently, there are no caps enforced by the registration 670 system. 672 5.4. Meeting Wiki 674 The meeting wiki serves as the primary source of information for each 675 Hackathon. 677 5.4.1. Hackathon 679 A page within the meeting wiki, e.g., 680 https://trac.ietf.org/trac/ietf/meeting/wiki/110hackathon 681 (https://trac.ietf.org/trac/ietf/meeting/wiki/110hackathon), is 682 created by the Secretariat for each Hackathon and initialized with 683 information that is based largely on the information from the 684 previous Hackathon. Once created, the Hackathon Chairs update and 685 moderate this page. Champions are requested and responsible for 686 adding information about projects for which they are a champion. 688 Anyone can edit the wiki by logging in using their datatracker login 689 credentials. Credentials can be obtained by requesting 690 (https://datatracker.ietf.org/accounts/create/) a new datatracker 691 account. 693 5.4.2. Lost and Found 695 A Lost and Found wiki page, e.g., 696 https://trac.ietf.org/trac/ietf/meeting/wiki/110hackathon/lost&found 697 (https://trac.ietf.org/trac/ietf/meeting/wiki/110hackathon/ 698 lost&found), is created by the Chairs for each Hackathon. 699 Participants looking for a team are encouraged to add themselves to 700 the "Skills to Offer" table, providing some information about their 701 skills and interests. This will help others with matching needs and/ 702 or interests find them. Champions wanting help on their projects are 703 encouraged to add their teams to the "Skills Needed" table, providing 704 some information about the skills they seek. 706 5.4.3. Results Presentation Schedule 708 A Results Presentation Schedule wiki page, e.g., 709 https://trac.ietf.org/trac/ietf/meeting/wiki/110hackathon/ 710 resultspresentationschedule 711 (https://trac.ietf.org/trac/ietf/meeting/wiki/110hackathon/ 712 resultspresentationschedule), is created by the Chairs for each 713 Hackathon. Hackathon teams are welcome and encouraged to present 714 their results during the Hackathon Closing. Hackathon teams add the 715 name of their project and the name of the presenter to the table at 716 the bottom of this page. 718 5.4.4. In Person Only 720 The following wiki pages are applicable for in-person Hackathons 721 only. 723 5.4.4.1. Hackdemo Happy Hour 725 A Hackdemo Happy Hour wiki page, e.g., 726 https://trac.ietf.org/trac/ietf/meeting/wiki/106hackdemo 727 (https://trac.ietf.org/trac/ietf/meeting/wiki/106hackdemo), is 728 created by the Chairs for each Hackathon. Champions are welcome and 729 encouraged to add their project by entering the project name/acronym 730 and a contact name and email address in the table displayed on the 731 page. 733 5.4.4.2. Code Lounge 735 A Code Lounge wiki page, e.g., 736 https://trac.ietf.org/trac/ietf/meeting/wiki/106codelounge 737 (https://trac.ietf.org/trac/ietf/meeting/wiki/106codelounge), is 738 created by the Chairs for each Hackathon. Champions are welcome and 739 encouraged to add their project by entering the project name/acronym 740 and a contact name and email address in the table displayed on the 741 page. 743 5.4.5. Online Only 745 The following wiki pages are applicable for online Hackathons only. 747 5.4.5.1. Team Schedule 749 A Team Schedule wiki page, e.g., 750 https://trac.ietf.org/trac/ietf/meeting/wiki/110hackathon/ 751 teamschedule 752 (https://trac.ietf.org/trac/ietf/meeting/wiki/110hackathon/ 753 teamschedule), is created by the Chairs for each online only 754 Hackathon. Online only Hackathons take place globally for an entire 755 week. It is up to individual project teams to determine the 756 preferred dates, times, and ways to meet to work on their project 757 within the context of that week (e.g., Zoom, Webex, Slack). This 758 page is meant to help facilitate coordination of schedules within and 759 across teams. 761 5.5. Mailing List 763 The Hackathon mail list, hacakthon@ietf.org 764 (https://www.ietf.org/mailman/listinfo/Hackathon), is used for all 765 email communication and announcement related to the Hackathon. All 766 registrants and given the option to subscribe to the list. Anyone 767 interested in staying up to date on the Hackathon is able to 768 subscribe at any time. 770 5.5.1. Hackathon Chairs Email Alias 772 The email alias hackathon-chairs@ietf.org (mailto:hackathon- 773 chairs@ietf.org) was created and is maintained by the Secretariat. 774 It is used on hackathons webpages and wiki pages to provide a single 775 point of contact for the Hackathon. 777 5.6. GitHub 779 The IETF-Hackathon (https://github.com/ietf-hackathon) is used to 780 share code, presentations, and other artifacts at IETF Hackathons. 781 The Hackathon Chairs are responsible for administering the GitHub 782 org. 784 Code for Hackathon projects often exist elsewhere, which is perfectly 785 fine. Anyone needing a place to host code for the Hackathon can 786 request the creating of a repository for their project. 788 A repository is created and maintained by the Chairs for each 789 Hackathon, e.g., https://github.com/ietf-hackathon/ietf110-project- 790 presentations (https://github.com/ietf-hackathon/ietf110-project- 791 presentations). This repo is for participants to upload project 792 presentations. The contents of this repo are used as the source for 793 all project presentations at the end of the Hackathon and remain as a 794 reference after the Hackathon. 796 5.7. Meetecho 798 Meetecho (https://www.meetecho.com/) is used for the kickoff and 799 closing sessions of the Hackathon. This provides many capabilities, 800 including the following: 802 * allows participants to join Hackathon sessions in person or 803 remotely 805 * validate registration of participants at time of joining Hackathon 806 sessions 808 * enable remote presentations of project results 810 * capture recording of Hackathon sessions 812 5.8. Network 814 Access to the IETF network is an important aspect of the Hackathon. 815 The IETF network provides unfettered Internet access that is not 816 typical within many residential, corporate, and university 817 environments. For many of IETF participants and projects, access to 818 the Internet and each other via wireless access to the IETF network 819 is sufficient. However, due to the nature of the work done in the 820 IETF, wired access and special networking capabilities are often 821 required. 823 The NOC has graciously met the needs of the Hackathon since its 824 inception and continues to add more capabilities over time. 825 Champions are able to request in advance wired access and special 826 networking functionality, including static IPv4 and IPv6 addresses, 827 IPv6 only networking, a closed user group, NAT64, and IPv6PD. All of 828 this, and the IETF network in general, is made available by the start 829 of the Hackathon and in advance for setup to the extent possible. 831 5.8.1. Remote Networking 833 Online only meetings present both a personal networking challenge and 834 a computer networking challenge. The NOC came to the rescue for the 835 latter with remote networking options to join the IETF network while 836 attending the meeting remotely. With a Raspberry Pi 2B, 3B, or 4B, 837 the NOC has a recipe that allow teams to be virtually connected to 838 the IETF network with all the previously mentioned options. This 839 remote networking capability is available for in-person and online 840 only Hackathons. 842 Virtual connectively to the IETF network remains generally available 843 between meetings. Individuals or project champions can request 844 access through the IETF Ticketing System 845 (https://tickets.meeting.ietf.org/newticket). 847 5.9. Webex 849 Champions can request a Webex account 850 (https://ietf.webex.com/webappng/sites/ietf/dashboard?siteurl=ietf) 851 they can use to schedule meetings for their team. These are similar 852 to the Webex accounts allocated to working group chairs to be used 853 for virtual interim meetings. An account can be requested by a team 854 champion at any time. Accounts remain active and available 855 throughout the duration of the Hackathon and the associated IETF 856 meeting. A project name may be used in place of "Working Group Name" 857 in the request form. 859 5.10. Gather 861 Gather (https://gather.town/) facilitates virtual hallway interaction 862 during IETF meetings. A dedicated area within the overall space is 863 created by the Secretariat for the Hackathon. The area includes 864 tables, identified by letters of the alphabet, that teams are free to 865 self assign and use as and when they like. Eight to ten seats around 866 each table facilitate group discussions within the team. A 867 whiteboard or shared notes tablet (via CodiMD) at tables facilitates 868 sharing of information within the team. The tables also facilitate 869 collaboration across teams. One cautionary note, Gather has relative 870 high network bandwidth and CPU requirements, and as such may not be 871 well suited for some Hackathon participants. 873 The Gather space remains available between IETF meetings, with 874 incremental improvements and additions made during this time. The 875 space is cleaned about a month prior to the start of the next 876 meeting, removing anything left over from the previous meeting. 877 Hackathon teams are encouraged to make a copy of anything they want 878 to retain within a week of the end of the IETF meeting. 880 6. Statistics and Metrics 882 Statistics for the Hackathon have been gathered informally from the 883 first Hackathon, at IETF 92, and more formally since IETF 101. 884 Registration is required but it is also free, which can lead to 885 misleading statistics. Starting with IETF 101, an effort has been 886 made by the Secretariat to validate registrations for all in-person 887 participants by checking registrations at the main entrance to the 888 Hackathon room. Badges similar to those issued for the rest of the 889 IETF meeting are now issued for the Hackathon as well. There is 890 still no good mechanism for determining the number of remote 891 participants. 893 Hackathon participation has grown from 45 at IETF 92 to a maximum of 894 406 at IETF 104. Participation is tends to be slightly higher when 895 the IETF meeting is located in Europe. Recent in-person Hackathons 896 have had roughly 30-40% as many participants as the corresponding 897 IETF meeting. For roughly 20-30% of Hackathon participants, the 898 Hackathon is their first experience at any IETF event. 900 6.1. IETF Survey Results 902 For each IETF meeting, there is a post event survey that often 903 includes a question or two about the Hackathon, e.g., IETF 106 Survey 904 Results (https://www.ietf.org/media/documents/ 905 IETF_106_Meeting_Survey.pdf). 907 6.2. Hackathon Survey Results 909 Hackathon specific surveys have been used on some occasions to obtain 910 more detailed feedback about the Hackathon from the IETF community. 911 This has been especially useful for feedback on online only 912 Hackathons. Survey have been short with most questions being 913 optional, e.g., IETF 110 Hackathon Survey Results 914 (https://ql.tc/8K1JeZ). 916 7. Roles and Responsibilities 918 This section provides a summary of the roles and responsibilities of 919 individuals and groups involved in a successful IETF Hackathon. The 920 summary provided here is not meant to be exhaustive. Some 921 responsibilities are described entirely or in more detail throughout 922 the rest of the document. 924 7.1. Hackathon Chair(s) 926 The role of a Hackathon chair is similar to that of a working group 927 chair. As with working groups, it is typically best to have co- 928 chairs share responsibilities and workload. The Chairs work very 929 closely with the Secretariat on all responsibilities. Key 930 responsibilities include: 932 * Organize and deliver a Hackathon at each IETF meeting, soliciting 933 help from all other roles to do much of the heavy lifting 935 * Encourage and provide guidance to champions who volunteer to lead 936 projects 938 * Maintain the Hackathon wiki, e.g., 939 https://trac.ietf.org/trac/ietf/meeting/wiki/110hackathon 940 (https://trac.ietf.org/trac/ietf/meeting/wiki/110hackathon), and 941 all of its child pages. 943 * Moderate hackathon@ietf.org (mailto:hackathon@ietf.org) email list 945 * Request sessions (https://datatracker.ietf.org/secr/sreq/) for the 946 Hackathon opening and closing in the IETF meeting 948 * Emcee the Hackathon, including the opening and closing sessions 949 and announcements in between 951 * Create and manage the GitHub repo used for each Hackathon, e.g., 952 https://github.com/ietf-hackathon/ietf110-project-presentations 953 (https://github.com/ietf-hackathon/ietf110-project-presentations) 955 * Serve as main point of contact for all Hackathon questions and 956 concerns 958 7.2. Secretariat 960 Key responsibilities include: 962 * Configure and manage Hackathon registration system 964 * Maintain Hackathon web page (https://www.ietf.org/how/runningcode/ 965 hackathons/) 967 * Create and maintain web page for each Hackathon, e.g., 968 https://www.ietf.org/how/runningcode/hackathons/110-hackathon/ 969 (https://www.ietf.org/how/runningcode/hackathons/110-hackathon/) 971 * Create wiki page for each Hackathon, e.g., 972 https://trac.ietf.org/trac/ietf/meeting/wiki/110hackathon 973 (https://trac.ietf.org/trac/ietf/meeting/wiki/110hackathon). This 974 is initialized and updated at times by the Secretariat, but the 975 Chair(s) are ultimately responsible for maintaining it. 977 * Handle venue logistics for Hackathon, Hackdemo Happy Hour, and 978 Code Lounge (e.g., reserve room, food and beverages, AV, etc.) 980 * Internal IETF promotion (e.g., email messages to IETF community) 982 * Assist with external outreach, as needed, including finding 983 sponsors 985 * Validate Hackathon registrations for in-person participants, 986 including issuing badges and participant t-shirts when available 988 7.3. Sponsor 990 Key responsibilities include: 992 * Provide some funding to help offset costs of Hackathon (either per 993 meeting or per year, depending on model) 995 * Optionally provide t-shirts or other giveaways 997 * Optionally provide support staff to assist with Hackathon 999 Key benefits include: 1001 * Sponsor logo on Hackathon t-shirts 1002 * Sponsor logo on Hackathon signage 1004 * Sponsor logo on Hackathon webpage and wiki 1006 * Sponsor logo and call out in Hackathon kickoff and closing 1007 presentation 1009 * Sponsor logo and call out in IETF Plenary presentation 1011 * Sponsor logo and call out in Hackathon recap on IETF blog 1012 (https://www.ietf.org/blog/) 1014 * Recognition in IETF community for helping the IETF Hackathon 1015 remain free and open to everyone 1017 7.4. Champions of Projects 1019 Champions of projects are the key to a successful Hackathon. Key 1020 responsibilities for champions include: 1022 * Volunteer to lead a project at the Hackathon 1024 * Serve as primary contact for the project 1026 * Add and manage information on the Hackathon wiki for the project 1028 * Promote the project to appropriate groups inside IETF and outside 1029 as well 1031 * Welcome and organize members of the team 1033 * Provide focus, guidance, and leadership for the project 1035 7.5. IETF LLC, Director of Communications and Operations (was ISOC) 1037 Key responsibilities include: 1039 * External promotion outside of IETF, including web search engine ad 1040 words, social media posts, and listing on external event calendars 1041 such as https://www.ripe.net/participate/meetings/calendar 1042 (https://www.ripe.net/participate/meetings/calendar) and 1043 https://nsrc.org/calendar/ (https://nsrc.org/calendar/). 1045 * Outreach to local universities 1047 * Provide photographer, including optional team photos and candid 1048 photos of collaborating during in-person events 1050 * Laptop stickers (Section 3.2.1.4) at in-person events 1052 7.6. Judges 1054 The first several Hackathon involved judges who listened to summary 1055 presentations by teams at the closing of each Hackathon and 1056 identified winning teams for an arbitrary number of project 1057 categories. Prizes were made available to members of winning teams. 1058 This was done as an incentive to participate in the Hackathon and 1059 present results, and to provide a fun yet informative end to the 1060 Hackathon that could be appreciated by the entire IETF community. 1061 Judging and awarding of prizes led to confusion regarding the nature 1062 of the Hackathon, making it appear to some overly competitive. 1063 Procurement of appropriate prizes was financially and logistically 1064 challenging. Arrangement of judges, determination of winners, and 1065 awarding of prizes all became more time consuming, especially as the 1066 number of projects and participants grew. Ultimately, it was deemed 1067 best to eliminate judging, awards, and prizes entirely. Apparently 1068 the IETF community has an innate incentive to participate and present 1069 results in the Hackathon. 1071 8. Security Considerations 1073 None. 1075 8.1. Privacy Considerations 1077 Participant names and email addresses are displayed publicly in the 1078 Participant List (Section 5.3.1). Participants may opt-in or opt-out 1079 of the display of their email address as part of their registration. 1081 The email addresses of individual champions are often shared publicly 1082 by the champions on the wiki. This is done voluntarily by individual 1083 champions to make it easier for others to contact them. 1085 9. IANA Considerations 1087 This document has no IANA actions. 1089 Acknowledgments 1091 Michael Richardson and Benson Muite provided valuable contributions 1092 to this document. 1094 Author's Address 1095 Charles Eckel 1096 Cisco Systems 1098 Email: eckelcu@cisco.com