templates/govern-ps.erb (61 lines of code) (raw):
This is an asynchronous retrospective for the <%= release %> release, following
the process described [in the handbook][handbook].
This issue is private (confidential) to the <%= team.name %> group, plus anyone else
who worked with the group during <%= release %>, to ensure everyone feels
comfortable sharing freely. On <%= due_date %>, in preparation for the [R&D-wide
<%= release %> Retrospective][retrospective], the issue will be opened up to the public, as long
as everyone is comfortable with this. You're free to redact any comments that
contain information that you'd like to stay private before that date.
### Instructions
Please look back at your experiences working on this release, ask yourself and honestly describe your thoughts and feelings below.
- 🌟 What praise do you have for the group?
- 👍 What went well?
- 👎 What did not go well?
- 📈 What can we improve or try differently?
- 🎯 Why did each missed deliverable not make it?
### Questions to consider for EM and PM
- What was our Say/Do ratio and why?
- Was our expected team velocity accurate? If not, why?
- Was there anything that reduced capacity more than expected?
### Psychological Safety
If there is anything you are not comfortable sharing here, please message your
manager directly. Note, however, that 'Emotions are not only allowed in
retrospectives, they should be encouraged', so we'd love to hear from you here
if possible.
[handbook]: https://about.gitlab.com/handbook/engineering/management/group-retrospectives/
[issue-types-by-milestone]: https://app.periscopedata.com/app/gitlab/1042933/Issue-Types-by-Milestone
<% if updating_description %>
## Issues we shipped
Deliverables (closed issues with ~Deliverable label for <%= release %> milestone):
<% deliverables.each do |issue| %>
1. <%= issue.dig('references', 'full').to_s + '+' %>
<% end %>
<% if deliverables.empty? %>
No deliverables
<% end %>
[All closed issues] (within <%= release %> milestone)
## [Issues that slipped]
<% slipped.each do |issue| %>
1. <%= issue.dig('references', 'full').to_s + '+' %>
<% end %>
<% if slipped.empty? %>
No missed issues for <%= release %> found; great job!
<% end %>
```glql
display: table
title: "Issues that were unplanned for this milestone"
fields: title, assignees
query: group = 'gitlab-org' AND label = 'Unplanned' AND label = '<%= team.label %>' AND milestone = '<%= release %>'
```
[All closed issues]: https://gitlab.com/<%= "#{issue_url_prefix}" %>state=closed&label_name[]=<%= ERB::Util.url_encode(team.label) %>&milestone_title=<%= release %>
[Issues that slipped]: https://gitlab.com/<%= "#{issue_url_prefix}" %>label_name[]=<%= ERB::Util.url_encode(team.label) %>&label_name[]=missed%3A<%= release %>
[Issues that were unplanned for this milestone]: https://gitlab.com/<%= "#{issue_url_prefix}" %>label_name[]=<%= ERB::Util.url_encode(team.label) %>&label_name[]=unplanned&milestone_title=<%= release %>
- Total deliverables closed: <%= deliverables.headers['X-Total'] %>
- Total issues closed: <%= issue_count %>
- Total MRs merged: <%= merge_request_count %>
<% else %>
/label ~retrospective
/label ~"<%= team.label %>"
/due <%= due_date %>
/assign <%= mention_owners %>
<% end %>