About the Foundation for Public Code

Product assets for early incubation

This resource

Contents

  1. Assumptions
  2. Product assets
  3. Assumptions to test
  4. Further reading

This is a checklist of the most important product assets needed to put an existing codebase on its path to incubation, roughly organized by when they’re needed.

Assumptions

We assume that the chronological goals during incubation are to:

  • make sure the codebase is deliberately designed and documented to be reusable
  • create everything needed to enable and support a contributing community
  • focus on collecting evidence and marketing to attract more replicators and contributors
  • improve an active codebase based on performance metrics, user research or new feature requests

We assume each codebase will have different individual needs.

We assume the product asset order will be different for greenfield development.

Product assets

Timeline Product asset Foundation’s role Foundation point of contact
1 Decide to open source Confirms Quality
2 Plain English Confirms Product
3 Organization page on Github Responsible CEO
4 Disable merge to main Responsible Quality
5 One paragraph codebase description Provides assistance Product
6 Document codebase objectives Confirms Product
7 Configuration options Confirms Quality
8 One sentence codebase description for Github Creates proposal Product
9 Issue tracker (or link if hosted elsewhere) Creates proposal Community, Quality
10 CONTRIBUTING file Responsible Community
11 Explanation of how codebase decisions get made Creates proposal Community
12 Codebase name Creates proposal Product
13 Contextual explainer (including policy explanation, users and process owners) Provides assistance Product
14 High level overview of what’s in the codebase Confirms Product, Quality
15 README file Provides assistance Product: is this findable and usable? Quality: is all the right information included?
16 Codebase maturity label Responsible Quality (release management)
17 Codebase brand or logo Creates proposal Product
18 List of codebase stakeholders with their role (real people) Provides assistance Community
19 List of experienced vendors Responsible Community, Support
20 Simple architectural model Confirms Quality
21 Community fora (or links if hosted elsewhere) Responsible Community
22 Reports from user research into how codebase is working or could be improved Provides assistance Community
23 Quickstart deployment guide Confirms Support
24 Quickstart user guide Provides assistance Support
25 Choose license Provides assistance Support
26 A publiccode.yml file Creates proposal Product

Assumptions to test

This list is based on our experience from working with several codebases.

These include that:

  • making clear which responsibilities the Foundation has versus other parties is useful
  • which other party is responsible differs by codebase
  • for some codebases, multiple parties share responsibility for non-Foundation tasks (for example, a codebase’s current maintainers and a replicator working together)
  • the size of each task depends on codebase size and complexity
  • this list can be used as a checklist or plan of work during incubation
  • it would be helpful to add user needs, user stories or jobs to be done to the list items (as we discussed user needs when we created the list)

Further reading