Wikimedia Technology/Annual Plans/FY2019/TEC13: Code Health/Goals

= Program Goals and Status for FY18/19 =

TEC13: Code Health


 * Goal Owner: Greg Grossmeier
 * Program Goals for FY18/19: The program shares its goals/vision with the Code Health Group, which is: work on efforts that universally improve the lives of engineers and their ability to write products with shorter iteration time, decreased development effort, greater stability, and improved performance. Working closely with the Code Health Group, the Code Health Program will focus on the software engineering processes and practices that enable both experienced and junior technical contributors to deliver high value/quality features to the various Wikimedia projects in the most productive way possible
 * Annual Plan: TEC13: Code Health
 * Primary Goal is Knowledge as a Service: Evolve our systems and structures
 * Tech Goal: Sustaining



 =  Q1 Goals =

Outcome 1 / Output 1.1
Increase software stewardship levels of our deployed code
 * Assess deployed code and prioritize stewardship gaps.

Dependencies on: Code Health Group

Goal(s)

 * Investigate and propose record of origin (ROO) for deployed code (currently Developers/Maintainers page)

Status
July 2018

August 10, 2018
 * should get started on this in the next week or so (trying to get to a single record of origin (automated if possible))

September 14, 2018
 * This is now and will need to do a few conversations with SRE folks for clarification and information for ROO.

October 2,, 2018
 * This is now and will wrap up in the next couple of days.

Outcome 1 / Output 1.3
Increase software stewardship levels of our deployed code
 * Using stewardship review process, create plan of action for top priority items each quarter.

Dependencies on: Development Teams

Goal(s)

 * Perform existing review process for Q1 cycle.

Status
July 2018

August 10, 2018
 * this work is scheduled to start in the next week.

September 14, 2018
 * There wasn't anything submitted so far this quarter, so it's still in a status until there is work to be done.

Outcome 2 / Output 2.1
We reduce the number of testable regressions from hitting our users
 * Integrate regression testability evaluation into our on-going post-mortem process.

Dependencies on: Release Engineering (re: TEC3, Outcome 2)

Goal(s)

 * Add test evaluation to post mortem review process.

Status
July 2018

August 10, 2018

September 14, 2018
 * This is now ✅, we might need a slightly different way to collect this information, as right now the document is a bit difficult to use after an incident. We'll take a look at this in the future.

Outcome 2 / Output 2.2
We reduce the number of testable regressions from hitting our users
 * Jointly create smoke tests addressing high priority needs for 15 projects over the year.

Dependencies on: Development Teams

Goal(s)

 * Review existing e2e test coverage.
 * Define prioritization scheme.
 * Prioritize e2e testing gaps.

Status
July 2018

August 10, 2018
 * Need to find time to work on this, but it's a high priority task

September 14, 2018
 * This has been for the last couple of weeks — we're looking at the repos in production and noting the activity in the repos over time and will figure out which ones need the end to end coverage.

October 2, 2018
 * This has nearly finished, and is

Outcome 2 / Output 2.3
We reduce the number of testable regressions from hitting our users
 * Pro-actively add unit tests to MediaWiki core and deployed extensions.

Dependencies on: Development Teams, Code Health Group

Goal(s)

 * Make current unit testing coverage more visible by reporting out to Engineering Management.
 * (maybe, TBC) set coverage goals

Status
July 2018

August 10, 2018
 * The unit testing coverage reporting is in progress but the actual report hasn't yet gone out quite yet.

September 14, 2018
 * This is still and will have the first report out by end of Sept.

October 2, 2018
 * This is now ✅

Outcome 3 / Output 3.2
Reduce Technical Debt
 * Tech Debt Management process rolled out.

Dependencies on: Development Teams

Goal(s)

 * Platform and Search Platform teams are using TDM PoC

Status
July 2018

August 10, 2018
 * Worked with both Platform teams to talk about their tech debt and how to manage them. Might want to revise / change up the existing tech debt tags in Phabricator.

September 14, 2018
 * This is currently ❌ due to the other teams being super swamped. Will roll over to Q2's work.

Outcome 3 / Output 3.4
Reduce Technical Debt
 * Reduce technical debt in the MediaWiki core, by refactoring and improving internal interfaces and policies.

Dependencies on: Platform Team

Goal(s)

 * Identify key Tech Debt areas
 * Put in place Tech Debt management process for PEP

Status
July 2018

August 10, 2018
 * Part of output 3.2's work, going slowly because PE Platform is still getting organized.

September 14, 2018
 * This is currently ❌ due to the other teams being super swamped. Will roll over to Q2's work.

Outcome 4 / Output 4.1
Increase visibility into Code Health
 * Define Code Health Metrics

Dependencies on: Code Health Group

Goal(s)

 * Define base Code Health metric set.

Status
July 2018

August 10, 2018
 * Gotten skeleton crew up and running, getting base set of metrics identified.

September 14, 2018
 * The working group has met for the first time, and have a follow-up meeting in another week or so. Everything is at this point and we might want to update the goal based on the working group's conversations to figure out 1 or 2 meaningful metrics.

October 2, 2018
 * This is now ✅

 =  Q2 Goals =

Outcome 1 / Output 1.1
Increase software stewardship levels of our deployed code


 * Assess deployed code and prioritize stewardship gaps.

Dependencies on: ___________

Goal(s)

 * Update/refresh review queue (review process for initial code deployment)

Status
October 2, 2018
 * This work has not yet started

November 8, 2018


 * Started discussions/reviews of Q2 Code Stewardship Review candidates. It appears that both are sunsetting candidates.

December 2018
 * Discussed...

Outcome 2 / Output 2.1
We reduce the number of testable regressions from hitting our users


 * Integrate regression testability evaluation into our on-going post-mortem process.

Dependencies on: Release Engineering (re: TEC3, Outcome 2)

Goal(s)

 * none

Status
October 2, 2018
 * This work has not yet started - will work on it when there is work to do.

November 8, 2018


 * No PMs thus far.

December 2018
 * Discussed...

Outcome 2 / Output 2.2
We reduce the number of testable regressions from hitting our users


 * Jointly create smoke tests addressing high priority needs for 15 projects over the year.

Dependencies on: Release Engineering (re: TEC3, Outcome 2)

Goal(s)

 * 5 of the 15 prioritized repositories have at least 1 end-to-end test.

Status
October 2, 2018
 * This work has not yet started

November 8, 2018


 * Prioritization data has been collected and starting to reach out to top 5 candidate teams.

December 2018
 * Discussed...

Outcome 2 / Output 2.3
We reduce the number of testable regressions from hitting our users


 * Pro-actively add unit tests to MediaWiki core and deployed extensions.

Dependencies on: Development Teams, Core Platform Team, Code Health Group

Goal(s)

 * Assess Platform unit test practices and define improvement plan

Status
October 2, 2018
 * This work has not yet started

November 8, 2018


 * This work has not yet started

December 2018
 * Discussed...

Outcome 3 / Output 3.2
Reduce Technical Debt


 * Tech Debt Management process rolled out.

Dependencies on: Development Teams, Core Platform Team, Search Team, Code Health Group

Goal(s)

 * Core Platform and Search Platform teams are using TDM PoC

Status
October 2, 2018
 * This work has not yet started

November 8, 2018


 * Had initial discussions with Editor group to understand their current approach to managing tech debt.

December 2018
 * Discussed...

Outcome 3 / Output 3.4
Reduce Technical Debt


 * Reduce technical debt in the MediaWiki core, by refactoring and improving internal interfaces and policies.

Dependencies on: Core Platform Team, Code Health Group

Goal(s)

 * Identify key Tech Debt areas
 * Put in place Tech Debt management process for PEP

Status
October 2, 2018
 * This work has not yet started

November 8, 2018


 * This work has not yet started

December 2018
 * Discussed...

Outcome 4 / Output 4.1
Increase visibility into Code Health


 * Define Code Health Metrics

Dependencies on: Code Health Group

Goal(s)

 * Metrics defined and deployed for all 4 Code Health areas.

Status
October 2, 2018
 * This work has not yet started

November 8, 2018


 * Code Health Metrics working group has been working steadily to review/assess code metrics tools. Current focus is on SonarQube.  PHPMetrics has also been deployed for review purposes.

December 2018
 * Discussed...