Project Maturity
Tooling and Processesβ
Development & On-boardingβ
Level 0:
Level 1:
Level 2:
- External developers can build and test the code locally with minimum help from core team.
 - Team hosts open office hours at a regular cadance
 
Level 3:
- External developers can pull, build and test the code locally and automatically.
 
Continuous Integration & Testingβ
Level 0:
- Code compiles and can be executed.
 - A mix of automated and manual tests
 
Level 1:
- Unit tests are automated
 - Teams has develops their own CI process, using non corporate or standard CI tools.
 
Level 2:
- Automated builds execute a range of tests and pre-release gate checks- Integration tests are automated
 - There are CI environments.
 - Teams has developed their own CI process, using corporate CI tools
 
Level 3:
Continuous Deployment & Buildingβ
Level 0:
- Builds are manual or scheduled (ie nightly)
 - Approved PR does not guarantee Production release
 
Level 1:
- Builds are automated on merge. Not automatically releasing to pre-prod environments.
 - Approved PRs are integration-tested and deployed to Production on host team cadence
 
Level 2:
- Approved PRs can be deployed to Production independent of host team release cadence
 
Level 3:
- Automated CI/CD allows Production release upon PR approval, consistent with the organization's regulations and processes.
 - Releases should be gated on meeting code quality metrics and standards.
 
Development Practicesβ
Level 0:
- Pulling the code and setting it up to run locally is poorly defined and often requires reaching out to the core team developers for help
 - Code Reviews are happening on demand
 - Contribution support is not planned and may require overtime from Trusted Committers
 
Level 1:
- Code Reviews are required but scrutiny may vary between in-team and outside submissions
 - Capacity is allocated in sprint for Trusted Committer activities
 
Level 2:
- Automated linters and style checks run on commit, so Code Reviews focus on design topics
 - Design reviews happen for large changes before coding begins, to ensure quality and minimize the amount of rework/frustration resulting from code reviews
 - Code review needs to be done to a certain standard, by independent (disinterested) parties.
 
Level 3:
- Code Review process is universal for all submissions regardless of which team authored the code.
 - Code review is done by both, internal and external team members.
 - Issue prioritization is similar to open source process: backlog is open, such that anyone in org can view and add to it; process to add new issue documented; automated checking for similar issues in tooling. Project team is working on backlog (not just theatre).
 - Process maintainers use to decide which work gets done is transparent and contributors understand how that process works.
 
Examples:
Documentation, Standards, & Communicationβ
Context for Implementationβ
Level 0:
- Opportunity provided by central CI/CD implementation or code review
 
Level 1:
Level 2:
Level 3:
Roadmapβ
Level 0:
Level 1:
Level 2:
- Open backlog/issue tracker
 
Level 3:
- Forward looking roadmap is published for anyone in the organization
 - Meeting minutes from design discussions are published
 
Documentation & Standards: Contributing Processβ
Level 0:
- Most repositories have non-trivial README files
 
Level 1:
- Contributing guidelines are available in either the README or a separate CONTRIBUTING file
 - Each repository has a README outlining (a) user value, (b) how to run
 
Level 2:
- SLAs for inquiry responses and code reviews
 - Documented contributing standards, including code style and test coverage requirements
 - Defined post-merge expectations from contributors (i.e., 90-day warranty)
 
Level 3:
Documentation & Standards: Preferred Idioms & Design Patternsβ
Level 0:
Level 1:
Level 2:
Level 3:
- Document architecture (e.g. like architecture.md)
 
Community & Communicationβ
Level 0:
- Accepting contributions
 - Do you have multiple people contributing and using the like-minded projects?
 
Level 1:
Level 2:
- Documented support channels.
 
Level 3:
State of the Codeβ
State of the Code: Overviewβ
Level 0:
- Multiple code versioning systems
 - Significant percentage of legacy code without documentation, automated tests and deep SME knowledge
 - People refusing to share //rephrase and/or move to culture (how about: Code components tied to specific individuals)
 
Level 1:
- Single code versioning system
 - An active effort is made to modernize some legacy code
 - Remaining legacy code continues to exist without documentation, automated tests and deep SME knowledge
 - Secrets/passwords are stored in the code, preventing it from being made public
 
Level 2:
- An active effort is made to document legacy code while it exists
 - An active effort is made to remove secrets from the code
 
Level 3:
- An active effort is made to modernize most legacy code and implement automated tests for the remaining parts
 - Passwords and keys are managed outside the code
 
Technologyβ
Level 0:
- XX% of legacy code
 - XX% of orphan code
 - Private Repos
 - People refusing to share
 - Nightly builds
 - Mainframe code - code owners donβt have SMEs who understand the complexity of changing API
 
Level 1:
Level 2:
Level 3:
Leadershipβ
Leadership: Overviewβ
Level 0:
- Grass roots efforts within the team with no leadership support (or potentially even awareness).
 
Level 1:
- Grass roots within thte team with leadership knowledge and no-one impeding progress.
 
Level 2:
- Leadership has stated their support of InnerSource efforts.
 - InnerSource is not the default, but a supported option. Choice of whether to InnerSource often dictated by other priorities (e.g. time to release).
 
Level 3:
- Full support communicated by leadership for InnerSource initiative.
 - Participation and contribution to inner sourced projects, including and especially projects beyond one's core team, group, and/or business unit, can be accounted for in the company's performance management system and directly contribute to decisions about incentive compensation -- i.e., such "assists" are formally recognized as important work and rewarded as such; InnerSource goals are recognised by leadership in HR in annual reviews.
 - Policy to InnerSource by default (reuse first).
 - Regular reporting on business value delivered by InnerSource.
 
Cultureβ
Culture: Overviewβ
Level 0:
- Accepting contributions from inside the team or within the org (ie they are all under my boss's boss)
 - Product owners are largely unaware of InnerSource
 
Level 1:
- Accepting outside contributions after preliminary discussion
 - Double standards for inside-the-team and outside contributions
 - Escalations are normal and necessary for cross-org deliverables
 - Product owners may view InnerSource activities as impediments to feature delivery
 
Level 2:
- Accepting contributions from anyone based on standard documented contribution process
 - Leaders reward reuse above writing brand new code
 - Product owners understand value of reuse and better documentation
 
Level 3:
- Public credit is given to contributors by the code owners
 - Product owners and teams negotiate scope without leaders' involvement
 
Ownershipβ
Ownership: Overviewβ
Level 0:
- It is not clear who is responsible and maintenance done on a best effort basis with no SLAs.
 
Level 1:
- Have defined expectations of person contributing code in terms of code maintenance, often with an SLA for a defined period of time.
 
Level 2:
- Have more than one department contributing.
 - Expectation that the team that nominally owns the area is responsible fo the code that others are contributing.
 
Level 3:
- Have a clear adoption strategy (putting projects up for adoptions)
 - Have a clear maintenance / deprecation strategy.
 - Have at least 3 maintainers and at least 1 from different department or business group.
 - More than one department with decision making ability.
 - The people finding the issues are the ones fixing the code (as opposed to original contributor).