GitLab Quad Planning Process
This improvement to our planning aims to align GitLab's product and engineering process to include our modern take on the three amigo process.
In the world of scrum/agile/devops, the leading principle of baking software quality in early is to involve test expertise much earlier in the planning cycle. This process is known as the three amigos. This is the industry standard for teams that ship high-quality software.
- https://www.visual-paradigm.com/scrum/agile-three-amigos-development-strategy/
- https://www.getzephyr.com/insights/creating-dream-team-three-amigos-devops-deployment-success
- http://www.edgetesting.co.uk/news-events/blog/three-amigos-in-the-world-of-agile
- https://johnfergusonsmart.com/three-amigos-requirements-discovery/
We initially had a brief mention of this when rolling out the new Product Development workflow https://gitlab.com/gitlab-com/www-gitlab-com/merge_requests/25877/diffs?diff_id=48249938&start_sha=d516573e0683e1bf9df842d75c3923d29013f78c#2e3fd5ad1348b4a72833e2785a0b4d41dc6ca282_49_49. This iteration evolves the process further with clear actionable items and measurement.
Plan
We currently have the trio dris that are engaged in product planning https://about.gitlab.com/handbook/product/#pm-em-and-ux-trio-dris. This plan evolves the trio into quad to include Software Engineers in Test (SET/SDET).
- Product Managers
- Engineering Managers
- UXers
- SETs
These 4 areas are the main pillars to ensure we can continue to ship features while ensuring optimal test coverage. Velocity is only productive when we don't incur test debt. We want to be nimble while shipping less bugs thus improving our own velocity. One can look at the metaphor of the 4 legs of the Tanuki, without either one of it's legs the Tanuki isn't able to run as fast.
Counterpart mapping
Expectations
SETs
When the feature proposal issue moves into workflowplanning breakdown. SETs owns the completion of the Availability and Testing section in the Feature Proposal to complete the definition of done. As we grow to reach our desired ratio, we will only have the quad approach in groups where we have an assigned SET in place.
- Assign the issue to yourself if the PM hasn't initiate this and the issue should be multi-assigned along with the counterpart UXer.
- SET is the DRI for the
Availability and Testingsection, ensuring that the strategy accounts for all test levels and facilitating discussions and feedback with the group. - SET determines if the feature change needs to run
package-and-qaregression job, this is made clear in the above section. - SET applies the ~"quad-planning" label and unassign themselves from the issue.
QEMs
For Quality Engineering Managers please:
- Review the assigned product groups here and sign-off.
- You should already be doing some prep and socializing with the EMs, and PMs in the groups above mapped to your team's charter.
- As these issues get tackled please make sure these are surfaced on your team board so you can see the overall activity of your counterpart teams and help/assist/unblock your SETs
Eng Prod
- Engineering Productivity will be helping spinning up GitLab Insights dashboard to visualize how many feature issues have ~"quad-planning" per release. gitlab-org/gitlab-insights#160 (closed)
- Dashboard will drill down to each of the product group so we know which area needs more help and hot spots.
Tasks
-
Update our product development build phase 1 to involve the counterpart SDETs in test planning. !38860 (merged) - https://about.gitlab.com/handbook/product-development-flow/#build-phase-1-plan
- Issues that come out of planning should not only be about feature details, but should also establish functional, performance and security acceptance criteria.
-
Update our product dris to include SETs making this the quad dris. !38860 (merged) -
Update our feature template issue to include instructions on prune test levels (unit/integration/end-to-end) and identify additional tests or testing needed. gitlab-org/gitlab!22457 (merged) execution), SET will label the issue with the label ~quad-planned. -
Communication prep issue https://gitlab.com/gitlab-org/quality/team-tasks/issues/373 -
Un-backtick all counterpart in this issue -
Email, announcement on monday Feb 11th -
Company call announcement on Feb 11th -
Slack on Feb 11th
-
-
Kick start this planning process for %12.9 milestone - Planning process
- Our first iteration will focus on product
~featureDeliverable or~planning-priority - Once a SET has reviewed and helped break down planning to include testing tasks (automation and one-off test
Measurements
To ensure that we can measure our area of coverage, we will be looking at issues with ~feature Deliverable or ~planning-priority in a given milestone.
- Create visualization to see now many issues have
~quad-plannedlabel in a given milestone. gitlab-org/gitlab-insights#160 (closed) - Slice data by stage and group to see which areas have gaps.
To measure our effectiveness, managers in Quality Department will:
- cross analyse bug creation rate, compare each group with how quad planning with tests are working.
- Iterate on our process focusing on areas that need help.
- As these issues get tackled please make sure these are surfaced on your team board so you can see the overall activity of your counterpart teams and help/assist/unblock your SETs
