What the Code Health Group (CHG) does 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.
The CHG will be the stewards of 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.
Characteristics of Healthy code are: easy to understand, easy to maintain, simple in design, and stable. In addition, healthy code is enjoyable to work on, allowing software developers to be as productive as possible. Working towards that end, the Code Health Group will work together to define, measure, and implement the processes, practices, and technologies necessary to establish a strong foundation for delivering healthy code. More more info see the Code Health article.
The CHG is made up of a cross-organization group of software engineers that spend a dedicated amount of time towards the betterment of code health. The CHG will be comprised of a steering committee as well as project-tasked sub groups.
The steering committee will include liaisons from each technical team and will meet regularly to discuss and define the code health priorities of the Foundation. In order to promote continuity, the members of the steering committee will have at least a six month tenure.
Project-tasked sub groups will be formed on an as-needed basis in support of the priorities as defined by the steering committee. Those engineers participating on the sub-teams will be expected to dedicate at least 20% of their efforts towards the sub-team's priorities. Unlike the steering committee, sub-teams only exist to support and deliver a specific work project. Upon completion, the sub-team is disbanded.
Key Success Factors
In order to be successful, the CHG will need the following:
- Executive sponsorship: To help ensure the work is properly resourced and to help align priorities to broader Foundational priorities.
- Steering committee cross-organizational representation: To insure a consistent approach to code health and also minimize duplication of effort.
- Properly resourced sub-groups: Members of sub-teams should be able to allocate a minimum amount of their efforts to sub-team priorities. Industry trends for CHGs suggest a minimum of 20% of an individual's time should be dedicated.
Key Success Indicators
So why are we doing this?
Below are some of the changes we should see and measure:
- Lower barrier of entry for new developers
- Fewer defects per change
- Higher developer productivity
- Higher rate of new capabilities
- Higher developer happiness
- Happier user base
|Erik Bernhardson||Search Platformfirstname.lastname@example.org|
|Jean-René Branaa||Quality & Test Engineering (Chair)||jbranaawikimedia.org|
|Kate Chapman||Architecture Teamemail@example.com|
|Greg Grossmeier||Advancement Engineering||gregwikimedia.org|
|Andre Klapper||Developer Advocacyfirstname.lastname@example.org|
|Guillaume Lederrey||Search Platformemail@example.com|
|Jon Robson||Desktop & Mobile Web||jrobsonwikimedia.org|
- Learning Circles
- Quality Big Picture
- projects/CodeReview/meeting notes/20190709
- projects/Code Health Metrics
- projects/Code Health Metrics/meeting notes/20180911
- projects/Code Health Metrics/meeting notes/20180921
- projects/Code Health Metrics/meeting notes/20181015
- projects/Code Health Metrics/meeting notes/20181126
- projects/Code Health Metrics/meeting notes/20181217
- projects/Code Health Metrics/meeting notes/20190107
- projects/Code Health Metrics/meeting notes/20190211
- projects/Code Health Metrics/meeting notes/20190318
- projects/Code Health Metrics/meeting notes/20190401
- projects/Code Health Metrics/meeting notes/20190415
- projects/Code Health Metrics/meeting notes/20190506
- projects/Code Health Metrics/meeting notes/20190624
- projects/Code Health Metrics/meeting notes/20190708
The Code Health Program has been created for the coming fiscal year to help move forward some of our Code Health objectives. Please see Wikimedia Technology/Annual Plans/FY2019/TEC13: Code Health for more information about what's in plan for FY2019.
Below is a summary of the active CHG projects.
|DevEd||To develop educational resources for software engineers, software test engineers, software engineers in test||Code Health Working Group||Active|
|Code Review||To understand the code review challenges that we are facing and propose a course of action.||Code Review Working Group||Done|
|Code Health Metrics||To define a set of core Code Health metrics.||Code Health Working Group||Active|
|Technical Debt Program||This project is defining how to identify technical debt and a process to manage it.||Jean-René Branaa||Done|
- initial work to determine what the scope of the project would be and make initial assessment in terms of priority and importance.
- as most projects will require efforts and perspectives from across the foundation and broader community, this is the phase in which we form the initial work group.
- work group is formed and activities are in motion.
- work is paused due to other priorities.
- work is paused due to dependencies on other external teams and/or work.
- work is complete. Work group has been disbanded.
- work is incomplete. Work group has been disbanded. Restart is not planned.