What is Drupal 8 Accelerate?
Drupal 8 Accelerate is a pilot program from the Drupal Association to put $125,000 of community funds toward accelerating the release of Drupal 8, due to the strategic impact this work has on the entire Drupal ecosystem.
The money in the Drupal 8 Accelerate fund is split into two pools: the Branch Maintainer request pool (where branch maintainers decide among themselves where money should be spent based on current priorities/impact), and Community Request pool (where the Drupal community as a whole has the opportunity to submit ideas for funding).
Who decides what to fund?
The D8 Accelerate fund is run by the D8 branch maintainers (who have voting rights on what to fund) and others with deep familiarity with the current status of Drupal 8. Its current membership is:
- Dries Buytaert (Dries) (branch maintainer)
- Angie Byron (webchick) (branch maintainer)
- Nat Catchpole (catch) (branch maintainer)
- Alex Pott (alexpott) (branch maintainer)
- Jess M (xjm)
- Alex Bronstein (effulgentsia)
The Drupal Association does not play a role in the decision-making process, but rather plays a supporting and amplifying role, by handling tasks such as logistics and fundraising.
Branch Maintainer funding process
A subset of the D8 Accelerate team meets bi-weekly, as well as on an ad-hoc basis, to discuss the current state of Drupal 8 and make recommendations for funding. These recommendations are passed along to the wider team for acceptance. If at least two voting members approve, and no one objects in 3+ days, the proposal is accepted.
Issue evaluation
Issues to fund through D8 Accelerate go through the following evaluation process:
- Is it a release blocker to Drupal 8? (a critical bug/task)
- Is it a blocker to other work, especially other release blockers?
- Is it an "ecosystem" blocker? (For example "D8 upgrade path" issues that block early D8 adoption, blockers to a major portion of contributed modules/themes porting)
- Are the people working on it not directly funded (by an employer or client) to fix it already?
- Is momentum on it slow, making it unlikely to be fixed "organically" by D8 contributors?
- Do we have some confidence that funding will lead to a successful outcome?
Issues that answer "yes" to more of these questions than not are more likely to get funded.
Funding process
On any given issue, the branch maintainers will generally recommend two "owners" (individuals, not companies) who can pair up to solve the issue and also peer-review each others' work. Owners will be recommended based on their prior contributions, communication skills, and experience in the target area. As far as funding individual contributors' time, members of the D8 Accelerate team, as well as those already funded by an alternate arrangement—e.g. time provided by employer to spend on D8—will not receive funding, in order to spend money where it can have the biggest impact. For all issues, an initial stipend of $500 for five hours will be provided. This time can be used to work on an initial patch, and create an estimate of the time remaining. Someone on the release management team will be designated as a "Technical Contact" for the proposal.
As part of the 5 hours, the contributors should update the issue to document its status and proposed resolution, and present to the D8 Accelerate team a high/low estimate of the remaining time necessary (assuming they want to continue working on the issue). The team will then decide whether to continue funding work on the issue, and will agree the next stage of funding with a cap on the number of hours to be funded. If the cap is reached before the issue is completed, we will review the status again.
Statement of Work template
If a proposal is approved, the D8 Accelerate Team will submit a statement of work to the Drupal Association using the following template:
Proposed owners:
(In descending order of suitability)
- Full Name1 https://drupal.org/u/X (owner)
- Full Name2 https://drupal.org/u/X (alternate owner/reviewer)
Issue(s):
- https://www.drupal.org/node/123: Issue title here
Technical contact: username
Proposed scope of work: A paragraph or two laying out the work that's desired, and what's in scope, what deliverables are expected.
The Drupal Association will then take on contacting the individual(s) to determine their availability and interest and handle logistics from there.
Community Request funding process
Coming soon! In general, though, provide details. For example, if you want to hold a sprint with key contributors, mention who they are, what role they'll play in the sprint, and what specific issues you plan to tackle.
Types of funding the Drupal Community can request
We are looking for creative ideas that foster the acceleration of Drupal 8's release. This is a brand new program, so we intend to learn as we go, providing more guidance and suggestions as we learn, but we are looking to fund projects that:
- Resolve one or more critical Drupal 8 issues that block release, either directly or by holding targeted sprints with key people.
- Accelerate work on critical issues in other ways (e.g. through tools improvements).
Here are some examples:
- I am planning a Drupal 8 criticals sprint at my camp: A camp can request funding to bring in Drupal 8 branch maintainers or key contributors to lead work on a specific set of critical issues.
- I am a contributor to the Drupal.org automated testing infrastructure, and want to hold a sprint on drastically improving automated testing performance: A community member or group can request funds for a sprint on tool improvements.
- I am a contributor who knows a lot about critical issue #12345, and am requesting a stipend (initially capped at $500 for five hours) to complete it.
- Surprise us! We want you to tell us what we can best do to support you in your Drupal 8 efforts. Please feel free to submit your ideas and they will be considered.
What won’t be funded
While we wish could fund every request, we must focus our limited resources on the work that will most directly impact the release of Drupal 8. Here are a few things that we won’t consider for funding:
- General contribution sprints. To qualify for funding, you would need to organize a sprint with a Drupal 8 focus and a plan to solve specific, release-blocking issues.
FAQ
Q: How can I apply for a grant?
A: Read the preamble at https://assoc.drupal.org/d8accelerate and click the big green "Apply for a Grant Today" button
Q: Where can I see a list of things that were funded?
A: Grants that are awarded are catalogued at https://assoc.drupal.org/d8accelerate/awarded.
Q: Can I request money for myself to fix critical issues?
A: No. While the branch maintainers have the option to pay individuals to work on blocking issues out of this fund (the pool of candidates for these bounties will in almost all cases come from the existing participants in a given issue, so this is open to the general pubilc), this fund is explicitly not for any community member to request funds to pay for their time. While it may grow into this at some point, for now in order to mitigate risk (such as "bidding wars," unknown contributors who may be inexperienced and end up spending more time and thus more $) for now, funding time for fixing criticals will be driven from the "top-down" pool of money only.
Q: How do I donate to the fund?
You can become Drupal Association member, a partner, or contact the DA about donating directly at accelerategrants@association.drupal.org.
D8 Accelerate Sprint planning
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
- Choose a specific focus area. For example, critical Drupal 8 issues tagged "D8 upgrade path" or "the menu links system."
- 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.
- 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).
- 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.
- 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
- 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.
- 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 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 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.
- ~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. :)