In Matt Mullenweg’s 2018 State of the Word, he detailed 9 projects that he envisioned being tackled by individual teams in 2019. These projects were then posted to this blog for further discussion.
The last item on the list (which was in no particular order) was: “Forming a Triage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. team to tackle our 6,500+ open issues on Trac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress..”
“We need to do a lot of triaging work. There are over 6,500 open issues in our Core Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Trac right now. There have been some requests about moving to a different bug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. tracker and things like that. I would feel bad about doing that without cleaning up our home first.”Matt Mullenweg – 2018 State of the Word This is the annual report given by Matt Mullenweg, founder of WordPress at WordCamp US. It looks at what we’ve done, what we’re doing, and the future of WordPress. https://wordpress.tv/tag/state-of-the-word/..
As WordPress has grown, the volume of tickets in Trac has naturally increased. While the number of open tickets on its own should never be the sole metric of software health, a large number of open tickets can have many undesirable and frustrating consequences, such as tickets being lost or accidentally glossed over, and contributors not knowing where to focus their (often very limited) time and effort to have the largest impact.
This team will coordinate with component maintainers, release leads, project leadership, contributors, and other WordPress related projects with issue trackers outside of Trac (such as Gutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/, new default themes, etc.) to ensure that everyone is empowered to focus on what they are best at: contributing!
With that in mind, let’s meet the new Triage Team!
Initial Team Structure
The following initial team structure was self-organized and was formed based on nominations and interest expressed in the comments of Make WordPress Core posts related to this topic. The following people have a strong track record of contributing to WordPress, exhibiting good triaging practices, and being overall good community members. They also represent a range of disciplines to ensure every type of contribution is considered by the team when making recommendations for process changes.
This team structure can be altered at any time as needed and was created with the goal of getting the team to a point where it can be functioning and effective starting today. In addition, more team members are needed in order to accomplish these goals.
Jonathan Desrosiers (@desrosj) – Team Lead
Jonathan has been a consistent contributor to the WordPress project since 2013, lending his time to various components and initiatives (such as Media, REST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/., and Privacy), and has been a significant contributor to organizational tasks. He also helps run new contributor meetings where all questions about contributing are welcome. Having worked in such various capacities, he’s thrilled to be able to focus on the organization of the issue tracking tools and processes.
Chris Christoff (@chriscct7) – Process Advocate
Chris has a long history of contributing to WordPress Core, particularly as part of ticket Created for both bug reports and feature development on the bug tracker. triage (including over 1,000 tickets triaged in the WordPress 4.4 and 4.5 release cycles). As a part of the team, Chris will be working to ensure that the triage team is meeting its milestone goals, performing ticket triages in an effective way, and working to improve and optimize processes.
Tammie Lister (@karmatosed) – Design Advocate
Tammie has a background in ticket triage, especially as it pertains to designers and design UX User experience/UI User interface concerns. As Design Advocate, Tammie will be working to ensure the workflow needs and requirements of designers receive proper consideration and are represented in all decisions made by the team.
Sergey Biryukov (@sergey) – Developer Advocate
Sergey is a prolific WordPress contributor with a deep-rooted knowledge of Trac and the needs of developers contributing to the project. As Developer Advocate, Sergey will be working to ensure the workflow needs and requirements of developers receive proper consideration and are represented in all decisions made by the team.
Sheri Bigelow (@designsimply) – Triage Advocate
Sheri has over 12 years experience supporting WordPress developers and users with an extensive background in triage and testing, most recently assisting with Gutenberg triage prior to its release in WordPress 5.0. She has a strong track record as a user and developer advocate and will ensure the team is communicating clearly (without jargon) to everyone to help build a strong, sustainable community of contributors.
Here is a list of some recent challenges that the team would like to explore solutions for:
- Large time burdens on release leads to triage tickets in their release milestone.
- Punting many issues each release, leading to frustration over poorly-set expectations.
- Contributors don’t know where to spend time effectively especially when not contributing on a daily basis.
- Tickets get buried, lost or glossed over.
Here are some metrics related to those problems:
- The number of issues punted each release.
- The number of interactions per contributor over time.
- The number of stale and unactionable tickets left open.
Short Term Goals (First Half of 2019)
After reviewing current day to day Trac practices and considering both public and private feedback about the team, the immediate short-term goal of the team is to start a regular triage process to help maintain properly categorized and actionable tickets. Here are some of the ways that this can be done:
- Create and execute a plan to work together with component maintainers and other contributors to triage open tickets with an emphasis on the Awaiting Review milestone and tickets that have become “stale”.
- Provide any needed support to component maintainers in the form of (but not limited to): ticket scrubs, testing, ticket triaging.
- Help release leads and deputies manage the flow of tickets into and out of release milestones.
- Define and document WordPress ticket triage processes and best practices, including when to close an issue, requirements for moving an issue into a release milestone, etc.
- Research and make some small process change recommendations (examples: new ticket resolutions, keywords, or workflows).
- Sketch ticket flows for visual representations of processes.
- What are the correct processes for supporting codebases in multiple locations (ie, Trac/SVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase., GitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/, etc.).
- Changes to Trac reports:
- Which ones are no longer useful or manageable?
- How do we better direct contributors to reports that require focus?
- Where are there needs for new reports?
These are areas that require the focus and immediate attention of the team to ensure contributors are not overloaded and fully enabled to do their best work.
It’s important to note that none of the items above will replace the current responsibilities of component maintainers or ticket gardeners. Component maintainers and contributors are still encouraged to scrub tickets for their components in Trac. The Triage Team is not replacing that responsibility, but instead, are here to assist with that responsibility.
Component maintainers have a deep-rooted understanding of the component’s history, past decisions, and feature progression. They are the ones best suited to make decisions that will point the component in the direction they feel best aligns with the overall project goals and priorities. The Triage Team will work closely with component maintainers to expand the efforts around triage, help to improve those processes and ensure that tickets are actionable.
Long Term Goals (2019 and Beyond)
The ultimate goal of the team will be to make triage a scaleable, sustainable part of the WordPress project. Longer term, a roadmap will be established to detail the team’s vision. Here are a few potential long-term goals that have come up in discussions so far.
- Automated workflow keywords. such as
needs-verification (to make sure the reported bug is still reproducible) for older tickets.
- Documentation for onboarding new team members.
- Creating a rotation where interested contributors can donate time to the team as part of fulfilling the 5 for the Future challenge.
- Ensuring that triage practices and ticket lifespans are agnostic to the ticket tracking software used (keeping in mind the ongoing WordPress + Git conversation).
- Ensuring new tools and technologies in processes are properly supported (for example, NPM or Composer packages).
- Creating a deprecation handbook with recommendations for how deprecated or removed parts of WordPress should be supported through tickets (What types of tickets are accepted or considered for how long under what circumstances?).
- Global ticket triage days.
Moving forward, the team will post an update every other week to the WordPress Contributor Team Updates blog with a summary of the following:
- Summaries of the ticket scrubs held the previous week.
- Priorities and ticket scrubs for the following week.
- The ticket scrub schedule for the following week.
- An overall summary of Trac ticket activity.
As changes to workflows are researched and evaluated, change recommendations will be published to the Make WordPress Core blog (and cross-posted where appropriate) for feedback.
If you have an interest in being a part of this team and helping with its initiatives, please express your interest by commenting below. Feel free to be as specific as you’d like about how you would like to contribute to the team.
You can also attend the first team meeting! The first meeting will be held on Monday March 11, 2019 at 19:00 UTC in the #core room in the Making WordPress Slack.
In the interest of full transparency, the following additional people have also reviewed this post and provided feedback about the structure and priorities detailed in this post: @chanthaboune, @helen, @joemcgill.