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.
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.
|Foundation point of contact
|Decide to open source
|Organization page on Github
|Disable merge to main
|One paragraph codebase description
|Document codebase objectives
|One sentence codebase description for Github
|Issue tracker (or link if hosted elsewhere)
|Explanation of how codebase decisions get made
|Contextual explainer (including policy explanation, users and process owners)
|High level overview of what’s in the codebase
|Product: is this findable and usable? Quality: is all the right information included?
|Codebase maturity label
|Quality (release management)
|Codebase brand or logo
|List of codebase stakeholders with their role (real people)
|List of experienced vendors
|Simple architectural model
|Community fora (or links if hosted elsewhere)
|Reports from user research into how codebase is working or could be improved
|Quickstart deployment guide
|Quickstart user guide
|A publiccode.yml file
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)