Code Stewardship/Resources

Best Practices
Code Stewardship seeks to improve the long-term sustainability and support of code that is deployed to the foundation's production environment. This include the health of both the code and community that supports the code. Currently the Code Stewardship encompasses four core areas: Code Health, Code Review effectiveness, task/bug effectiveness, and general planning.

Pre First Deployment
Prior to the initial deployment of a module, extension, or service to the WMF production environment, it is important that a Code Steward be identified, which is generally the team delivering the new code. The Code Steward will then be responsible to ensure that the code in question meets or exceeds Code Health standards. In addition, the Code Steward is responsible for identifying the ongoing maintenance plans for this new code.

TODO: add maintenance plan template

It is recommended that projects be started with this in mind. Understanding the maintenance burden as well as the Code Health goals will help advise decisions throughout the product development cycle. Many of the maintenance challenges encountered in legacy code are due to things like code complexity, in adequate unit test coverage, and other technological decisions that focused on the near term requirements at the cost of longer term maintenance.

Code Health
Maintaining a high degree of Code Health is key to enabling maintenance and developing a healthy and happy development community. Healthy Code is more stable, maintainable, and generally of higher quality. As Code Stewards it's important to follow sound development practices that focus on ensuring Code Health from the beginning. When at all possible, avoid development practices and anti-patterns that yield low Code Health.

Use the Code Health dashboard {TODO: add dashboard link} to help assess Code Health throughout the development lifecycle. }

Code Review
The Code Review process is an important part of ensuring a high degree of code quality. However, it can require considerable effort to do so, especially on code with a high degree of activity. For that reason, it is important to consider the ongoing impact on resourcing that the code review activity can have. From a community engagement perspective, it's also important that code reviews be done in a timely manor. All too often commits are left to languish due to various reasons causing frustration in the volunteer community and increasing the barrier of entry for new contributors.

Task Management
Generally speaking, tasks are categorized into bugs and feature requests. In the end, they are both elements of work that are being requested. It is the Code Stewards responsibility to manage the task backlog as efficiently as possible after initial triage as occurred by the Bug Wrangler. Clearly identifying those tasks that are being worked on will help minimize the confusion and frustration of those submitting the tasks. To that end it is recommend that Code Stewards follow this process: TODO: add task management process

Annual/Mid-term/Long-term Planning
Code Stewards play a crucial role in the planning process within WMF. Historically, planning has focused a great deal on new capabilities. Although Code Stewards play an important role in new capability planning, Code Stewards should also place significant emphasis on planing for sustainability and on going support. Understanding the long-term __NOINDEX__