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
Unassigned
tasks 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 (
Assignees
at 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 Review
to 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 Work
coordinating 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 Work
coordinating 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 time
mentality 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-Call
of 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