About the Foundation for Public Code

Codebase stewardship

This index

Contents

  1. Our main line of work
    1. Understanding the codebase community
    2. Common and repeating kinds of tasks
    3. Flexibility in our support
  2. Our most important tool: Standard for Public Code
  3. Related activities
  4. Useful resources
    1. Templates

Codebase stewardship is what we call the way we support public code codebase communities as they aim and work to meet the Standard for Public Code. Our approach of relating to the codebase community from the position of being stewards is highly intentional. We have no ambition in claiming ownership of or running a codebase, but rather our goal is to help the community be successful in what they want to achieve. Thus, our approach is more similar to a coach, mentor or advisor rather than a hands-on developer or project manager. Sometimes we act as a neutral party that can arbitrate on issues that the community escalates to us.

You can get an overview of the codebase stewardship process from the lifecycle diagram. If you want to learn more on how to explain stewardship, see this activity for that.

Our main line of work

Understanding the codebase community

In order to be able to help, we must first understand and empathize with the codebase community.

  • what is it that they want?
  • what are their pain points?
  • what can we help them with?

This is important during all stages, but even more prominent when we first meet a new codebase community.

Common and repeating kinds of tasks

As codebase stewards, we aim to support codebase communities in whatever ways we identify would enable better collaboration and codebase improvement. We’ve seen that most codebases communities have similar needs.

Conference calls have become essential for collaboration. Each codebase community will benefit from having a regular (monthly or quarterly) product steering conference call where stakeholders and product managers from each deployment can come together and talk about what their needs are presently and in the future, thus we host a Jitsi video conference server for the communities. Simlilarly, each codebase community will benefit from having a weekly or bi-weekly technical call where the developers can discuss how they should change the codebase. In each of these types of calls we typically coach community members to become the (rotating) chair of the call, although we may chair the calls in the beginning. By being present in the calls, stewards can listen for early signs of friction, and ensure that it is addressed before it grows. Stewards should ensure after any call that a summary is sent to a persistent and searchable primary communication channel for the codebase community, like an email list. These summaries should contain a brief list of topics discussed and any conclusions reached and any follow-up actions agreed to.

Additionally, mailing lists and open text chat platforms are often needed. We can host these:

With the aim to help the communities get more collaborators, we push them to work more in the open. Clear governance helps a new collaborator participate, thus we help codebase communities draft or improve their GOVERNANCE.md.

Flexibility in our support

We do try to support the codebase communities overcoming their current painpoints. This might lead to developing new processes and methods. Here are a few examples when addressing specific codebase community needs has generated experiences that might be applicable to more communities in the future.

  • Creating an open market consultation to get early insight in a possible ecosystem of vendors and users
  • Navigating security processes (Common Vulnerabilities and Exposures, CVE)
  • Building trust between teams in different organizations by getting them together in a safe environment
  • Guiding through license considerations for a codebase and its components

Our most important tool: Standard for Public Code

The Standard for Public Code is our most important tool, and everything we do should be in the spirit of it. The requirements in it are the results of distilling good practices that are essential for enabling collaboration. It is useful even as a handbook when trying to guide a community through any situation they are in.

Useful resources

Templates