Proposal: Tech Debt Week (TDW) Processes
Author: @electronjoe
Last updated: 04/21/21
What is Tech Debt Week
Tech debt weeks are an opportunity for all Magma core contributors, plus new and existing comunity stakeholders - to focus on burning down tech debt topics. The objective is to provide responsive and focused support for the following.
- GH Issue dissemination
- GH Issue clarification and or prototype demonstration
- GH PR early feedback
- GH PR final review
- GH PR merge support
Getting Help
There are several options for getting help - reach out early and often! Preferred contact will be provided to you based upon the GH Issue you are working, but additionally the following general methods always exist.
- GH user tag (if not at all urgent)
- [Video conference](TBD LINK) monitored by TDW On-Call
- Slack channel #project-tech-debt-week-apr-2021 monitored by TDW On-Call
- Page: email the TDW On-call at tdw@magma.pagerduty.com
- Provide a preferred contact (e.g. slack id, github id, ...)
Process for Contributors
- Review the list of TDW Available Work
- What
Unassignedtasks interest you?
- What
- Reach out to TDW On-Call
- Settle on a task
- You will be provided contact information for an Issue Lead
- You now have a task! Fun!
- Review the GH issue
- Ensure a comment has been filed tagging the Issue Lead GH id for tracking
- If possible, assign the GH Issue to yourself (
Assigneesat right side)- Otherwise comment on the GH issue - to make clear you are assigned
- See if you understand the GH Issue, prepare questions
- Reach out to Issue Lead using the provided contact method
- Check with the lead to ensure you understand the problem
- And the preferred solution approach
- If the Issue lacks detail, do not hesitate to ask
- For an example of the shape of the solution
- To existing committed code that is similar
- Create an early Draft PR
- Work towards a draft PR early, post to GH as a Draft and
- Directly notify your Issue Lead over preferred communications
- Post it in Slack #project-tech-debt-week-apr-2021
- You can convert to draft if you mistakenly create full fledge PR (
Still in progress? Convert to draft)
- Review Timeliness and Tone (for both Draft and Final)
- Expect Timely review
- With a Spheherd menality
- Feel free to ask for precise assistance or examples (e.g. a GH gist with example code on an ask)
- The Issue Lead will aim to make contact daily if they haven't heard from you
- Apply any directional changes advised to draft PR
- Work towards a draft PR early, post to GH as a Draft and
- When a final PR is ready for review
- Click
Ready for Reviewto convert from Draft PR to PR - Directly notify your Issue Lead over preferred communications
- Post it in Slack #project-tech-debt-week-apr-2021
- See above Review Timeliness and Tone
- Click
- If Review is completed but you are blocked by CI Checks
- Reach out to your Issue Lead or the TDW On-Call for help
- When Review is complete and CI Checks are clear
- Reach out to Issue Lead or TDW On-Call to Merge
Magma TDW On-Call
TDW On-call Contact
- [Video conference](TBD LINK) monitored by TDW On-Call
- Slack channel #project-tech-debt-week-apr-2021 monitored by TDW On-Call
- Page: email the TDW On-call at tdw@magma.pagerduty.com
- Provide a preferred contact (e.g. slack id, github id, ...)
TDW On-Call Response time
During TDW, We ask that the following interactions and actions are given highest work priority - ideally with a response time of < 1 hour between the hours of 9AM and 3PM Pacific Time. This is to ensure maximum velocity for our external contributors during this tight week work window.
TDW On-Call Responsibilities
- Monitor for communications
- Pop open the video conference
- If empty you can mute yourself and turn off video
- Make sure sound is on!
- GH Taggs of your user (consider slack integration)
- Slack channel #project-tech-debt-week-apr-2021
- Pages
- Pop open the video conference
- General Assistance
- You may be contacted for help with CI failures
- You may be contacted for help with the final Merge
- Contribution life cycle for TDW On-Call
- Find appropriate task for contributor
- Area of expertise
- Complexity
- Compare with task scope and provided detail
- Reach out to potential Magma Issue Lead and confirm ownership
- With confirmation, reply to GH Issue with text
Issue Lead: <username tag> - Update status in
TDW Available Workcoordinating GH Issue- Unassigned -> Assigned and add tag to GH user assigned
- With confirmation, reply to GH Issue with text
- Put contributor in touch with GH Issue lead
- Generally the person filing the issue
- Otherwise a CODEOWNER
- Wait for notifications from GH Issue Lead
- E.g. Completed or MIA
- Update status in
TDW Available Workcoordinating GH Issue- Assigned -> Merged
- Find appropriate task for contributor
- Handle MIA contributions
- If a Magma Issue Lead reaches out about lack of contact with a contributor
- Attempt direct outreach for 2 days (on top of 2 days issue lead waited)
- Move GH Issue back to available stack
- Assigned -> Unassigned
- If a Magma Issue Lead reaches out about lack of contact with a contributor
Magma Issue Lead
A Magma Issue Lead is the designated individual who has filed a GH Issue deemed appropriate for TDW inclusion. These individuals may be a CODEOWNER for the relevant code base, but at least have a clear understanding of the issue's resolution and has strong communications channels with the CODEOWNERS implicated. Determining who is Issue Lead will occur between TDW On-Call and relevant Mamga core team members.
Issues Lead Response time
During TDW, We ask that the following interactions and actions are given highest work priority - ideally with a response time of < 1 hour between the hours of 9AM and 3PM Pacific Time. This is to ensure maximum velocity for our external contributors during this tight week work window.
Issues Lead Responsibilities
The following describes the contribution life cycle for a Magma Issue Lead.
- Receive first contact from contributor assigned your GH Issue
- This contact will be made by e.g. the TDW on-call
- Ensure that the Magma TDW On-Call tagged your GH username in the issue
- With text
Issue Lead: <username tag>for clarity to all
- With text
- Validate alignment of contributor withe GH Issue
- Understanding of the problem statement and solution
- Appropriate matching of skills and knowledge
- If possibly a mismatch, check with TDW on-call about re-matching
- Give contributor preferred communications method
- E.g. slack username, GH tagging, etc - your call
- Ask for an early Draft PR
- So that any substantial direction correction can happen early
- Check in at least once a day on the progress - even if you haven't heard anything
- In providing PR feedback (draft or other)
- Apply the Spheherd menality to PR review
- Provide early directional feedback
- Once directionally correct - ask for outreach on final PR
- Repeat the
reach out any timementality and preferred contact method
- Wait for final PR notification
- Apply timely review
- Check CI Checks, help contributor resolve any failures
- Once all CI checks are clear and review is good, confirm Mereg with contributor
- Merge PR and notify
TDW On-Callof the Merge for accounting
- If at any stage communications halts for more than two days
- Notify TDW on-call
Magma's TDW Planning and Execution Process
If you are not personally planning another Magma TDW, you can stop reading here.
The following is an attempt to generate a repeatable recipe for Tech Debt Weeks at Magma.
- Getting the word out via early and pro-active outreach
- 1:1 notification of all partners
- Announcement in Magma community meetings
- Announcement in Slack
- Announcement on GH Discussions
- Announcement in Magma Conferences
- Collect diverse set of well scoped, well defined GH Issues
- Across all segments of the code base
- Continuous Integration
- c/c++ AGW
- Python AGW
- Golang (Orc8r, FEG, CWF)
- Documentation
- Kubernetes Config
- Installation Process
- They should be very scoped (Say 4-8 hour efforts max)
- They should be very clear in their ask
- Ideally even with sample code and precise insertion links to GH files
- Or even a prototype example...
- Across all segments of the code base
- Set up TDW on-call rotation during business hours
- Point members at this document's TDW on-call
- Ensure they read it!
- Have all TDW on-call set up pagerduty accounts
- And tie them to the pagingn service at
tdw@magma.pagerduty.com
- And tie them to the pagingn service at
- Point members at this document's TDW on-call
- Set up a video conference meeting for the TDW on-call
- And cross post to Slack #project-tech-debt-week-apr-2021
- Amend this process document to incorporate improvmenets
- From lessons learned during the TDW