Code Health Group
The Code Health Group is currently paused. Planning to restart in 2024. |
Vision
editWhat 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.
Structure
editThe 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
editIn 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
editSo 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
Steering Committee
editActive
editName | Group | Contact |
---|---|---|
Erik Bernhardson | Search Platform | ebernhardson@wikimedia.org |
Jean-René Branaa | Quality & Test Engineering (Chair) | jbranaa wikimedia.org |
Kate Chapman | Architecture Team | kchapman@wikimedia.org |
Greg Grossmeier | Advancement Engineering | greg wikimedia.org |
Andre Klapper | Developer Advocacy | aklapper@wikimedia.org |
Guillaume Lederrey | Search Platform | glederrey@wikimedia.org |
Jon Robson | Desktop & Mobile Web | jrobson wikimedia.org |
Meeting Minutes
edit- 20170822
- 20171018
- 20171115
- 20171220
- 20180117
- 20180321
- 20180620
- 20181017
- Learning Circles
- Quality Big Picture
- projects/CodeReview
- 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
- projects/DevEd
- projects/DevEd/Workshops
Annual Plans
editThe 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.
Active Projects
editBelow is a summary of the active CHG projects.
Project | Purpose | Participants | Status |
---|---|---|---|
DevEd | To develop educational resources for software engineers, software test engineers, software engineers in test | Code Health Working Group | Stalled |
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 | Done |
Technical Debt Program | This project is defining how to identify technical debt and a process to manage it. | Jean-René Branaa | Done |
States
edit- Investigation
- initial work to determine what the scope of the project would be and make initial assessment in terms of priority and importance.
- Formation
- 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.
- Active
- work group is formed and activities are in motion.
- Stalled
- work is paused due to other priorities.
- Blocked
- work is paused due to dependencies on other external teams and/or work.
- Done
- work is complete. Work group has been disbanded.
- Cancelled
- work is incomplete. Work group has been disbanded. Restart is not planned.
See also
edit- Code Health Group/Quality Big Picture
- The what and how of code health (2017-10 blog post)