Last updated 21 May 2015. Created on 19 December 2014.
Edited by xjm, webchick. Log in to edit this page.

As part of D8 Accelerate, we are planning focused sprints around specific target areas that have a big impact (unblocking other work, getting the upgrade path working, etc.). This involves getting various domain experts together, and being laser-focused on a specific goal, as opposed to a general contribution sprint where participants bring their own projects to work on, or where new contributors are mentored by more experienced contributors (as seen in e.g. DrupalCon sprints).

Because this model makes sense for some things outside Drupal 8 core as well, here are a set of best practices for planning focused, topical sprints with domain experts. For information on planning an open sprint focused on getting new people involved in Drupal core, see https://www.drupal.org/core-mentoring/sprint-resources.

Pre-requisites

  1. Choose a specific focus area. For example, critical Drupal 8 issues tagged "D8 upgrade path" or "the menu links system."
  2. Reach out to domain experts for the given focus area, including at least some who can "own" the issues and help bring them to completion post-sprint.
  3. It's also important to have a core maintainer there (or if that's not possible, a core maintainer who's following the sprint closely remotely, or a subsystem maintainer with detailed knowledge of the given area) to bounce ideas off of).
  4. Schedule the event around these peoples' availability/location. When scheduling, include a wide range of dates to accommodate vacations, site launches, etc. This can be done with a service like Doodle (be careful to select days individually and not accidentally multiple days as one chunk!) or in a spreadsheet (convenient because you can drag rows), or similar.
  5. Try to make the sprint dates include a weekend; this puts less pressure on people who have a M-F job that is not D8
  6. Also invite seasoned developers to help out in the given area of focus. If you get prospective attendees who prefer to work in other areas or are new to Drupal, recommend a different sprint that they could attend instead. See https://www.drupal.org/drupal-8.0/get-involved#sprints for some recommendations.
  7. Choose a venue that has ample space for all participants, as well as room for a few more. See the page on organizing sprints for specific requirements and recommendations for the venue.

Preparation

  1. ~1 month prior to the sprint, contact all domain experts and set up a time for a meeting on e.g. Google Hangouts to get everyone up to speed as to what plan for the sprint is.
  2. ~2 weeks prior to the sprint, have the meeting. Work through any areas of uncertainty, hammer out details, etc. Post a new/updated issue summary based on this discussion (such as #2407505: [meta] Finalize the menu links (and other user-entered paths) system), and make sure all interested parties are reached out to for comment (whether they can attend the sprint or not). Spend the two week buffer arriving at a plan that everyone can live with, so sprinters can hit the ground running upon arrival and don't get blocked on bikeshedding.
  3. ~2 days prior to the sprint, coordinate with the lead domain expert and sprint runner on a more specific "hit-list" of issues for the sprint. Choose a tag to commemorate the event, such as D8 Accelerate NJ, and tag the issues as well as a living "overview" doc that lays out the main goals/priorities of the sprint (example). This way, sprinters know what the top things to focus on are, as well as how best to "parallelize" their efforts if one priority's already being worked on by someone else.

At the sprint

  • There key thing is no distractions. These sprints are best held outside of other events, so participants are not taken away by session presenting, company booth time, mentoring other contributors, etc.
  • If at all possible, have someone (easiest if they're not actively participating in the sprint, so those who are can focus... see the previous bullet ;)) follow along and post/tweet brief status updates at the end of each day explaining where things are at. This helps communicate to the "outside" what's happening, which can help bring in other non-sprint contributors in complementary time zones, allow issues to be raised if necessary, and also helps sprinters feel good to have someone highlight their accomplishments. :)

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.