Skip to content

feat: promote source-code-inventory #779

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@

## Problem

Given situations when InnerSource stakeholders do not value source code at the same level as other Organization's assets; when source code strategies are ad-hoc and different among legal entities with little consolidation at Organization-level; then it becomes harder both to select and support the right InnerSource project candidates as well as maximize business value of such a key asset.
Given situations when InnerSource stakeholders do not value source code at the same level as other organization's assets; when source code strategies are ad-hoc and different among legal entities with little consolidation at organization-level; then it becomes harder both to select and support the right InnerSource project candidates as well as maximize business value of such a key asset.

Can you get consistent answers within the Organization to questions like:
Can you get consistent answers within the organization to questions like:

* How would you find all source code touched by anyone in your legal entity?
* How would you find out who else can also access each of the above?
Expand All @@ -21,25 +21,25 @@

## Context

* You work on Legal Entity within a complex Organization under continuous change (e.g. new acquisitions or changing business priorities).
* You cannot find all source code touched, shared and consumed within the Organization.
* You work on legal entity within a complex organization under continuous change (e.g. new acquisitions or changing business priorities).
* You cannot find all source code touched, shared and consumed within the organization.
* You do not have a clear policy on default sharing level when creating a new project (e.g. Open Source, InnerSource or Closed Source).
* You cannot scan significant parts of the Organization's source code looking for duplication, similarity or code smells.
* You cannot scan significant parts of the organization's source code looking for duplication, similarity or code smells.
* You do not know the existing ratios of Open Source, innerSource and Closed Source and their trend.
* You cannot measure the diversity of contributions and resulting value for a given project.
* You cannot identify and optimize tech stack diversity.
* You cannot identify technical debt and determine the priorities for retirement (e.g. dead APIs/source).

## Forces

* Fragmentation of source code hosting systems in the Organization.
* Ad-hoc source code strategies scattered across the different Legal Entities in the Organization.
* Fragmentation of source code hosting systems in the organization.
* Ad-hoc source code strategies scattered across the different legal entities in the organization.
* Continuously changing map of the relationships between: projects, repositories, products, tech stacks, domains, solutions, platforms, services, components, sub-systems, people, authors, teams, external repositories.
* Diverse software culture of teams across the Organization (e.g. more open to collaboration or more siloed).
* Diverse software culture of teams across the organization (e.g. more open to collaboration or more siloed).

## Solutions

### Set up an Organization-level source code inventory live dashboard
### Set up an organization-level source code inventory live dashboard

* Combination of manual and automated input data sources to a single source of truth
* API available to add new data sources and extend coverage of the source code repository
Expand All @@ -55,11 +55,11 @@

Mockup dashboard | Mockup questionnaire
:-------------------------:|:-------------------------:
![Mockup dashboard](../../assets/img/source-code-inventory-mockup-dashboard.PNG) | ![Mockup questionnaire](../../assets/img/source-code-inventory-mockup-questionnaire.PNG)
![Mockup dashboard](../../assets/img/source-code-inventory/source-code-inventory-mockup-dashboard.png) | ![Mockup questionnaire](../../assets/img/source-code-inventory/source-code-inventory-mockup-questionnaire.png)

Check failure on line 58 in patterns/2-structured/source-code-inventory.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [ISC.Spelling] Did you really mean 'Mockup'? Raw Output: {"message": "[ISC.Spelling] Did you really mean 'Mockup'?", "location": {"path": "patterns/2-structured/source-code-inventory.md", "range": {"start": {"line": 58, "column": 3}}}, "severity": "ERROR"}

Check failure on line 58 in patterns/2-structured/source-code-inventory.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [ISC.Spelling] Did you really mean 'Mockup'? Raw Output: {"message": "[ISC.Spelling] Did you really mean 'Mockup'?", "location": {"path": "patterns/2-structured/source-code-inventory.md", "range": {"start": {"line": 58, "column": 110}}}, "severity": "ERROR"}

### Define a Source Code Strategy Assessment Framework

* Help to define a source code strategy including an explicit definition of policies at Organization and Legal Entity levels for:
* Help to define a source code strategy including an explicit definition of policies at organization and legal entity levels for:
* Inventory
* Sharing
* Consumption
Expand All @@ -69,38 +69,38 @@

## Resulting Context

### For the Organization, Legal Entity and Project maintainers
### For the Organization, Legal Entity and Project Maintainers

* We have explicit policies at Organization and Legal Entity level on source code strategy (e.g. where to create new repository or how to select the right sharing level).
* We can find all source code touched, shared and consumed within the Organization or Legal Entity and take actions as needed.
* We have explicit policies at organization and legal entity level on source code strategy (e.g. where to create new repository or how to select the right sharing level).
* We can find all source code touched, shared and consumed within the organization or legal entity and take actions as needed.
* We can measure the diversity of contributions and resulting business value for our project.
* We can identify technical debt and determine the priorities for retirement (e.g. dead APIs/source).

### For InnerSource governance

* We can scan significant parts of our Organization's source code looking for opportunities of reuse, duplication, similarity or code smells.
* We know the ratios of Open Source, InnerSource and Closed Source within the Organization so we can steer as needed.
* We can scan significant parts of our organization's source code looking for opportunities of reuse, duplication, similarity or code smells.
* We know the ratios of Open Source, InnerSource and Closed Source within the organization so we can steer as needed.
* We can identify and optimize tech stack diversity.
* We can create awareness and culture shift on certain Legal Entities as needed (e.g. ratio of Open Source and InnerSource below average).
* We can create awareness and culture shift on certain legal entities as needed (e.g. ratio of Open Source and InnerSource below average).

## Rationale

It creates a dynamic and extendable single source of truth for repositories to capture, visualize and act on source code repositories across the Organization. That helps to create awareness and focus efforts on the right direction.
It creates a dynamic and extendable single source of truth for repositories to capture, visualize and act on source code repositories across the organization. That helps to create awareness and focus efforts on the right direction.

The Source Code Strategy Assessment Framework helps teams to understand the value of intentional explicit policies on how to manage source code. It helps to create both continuous improvement cycles and references within the Organization of what others are doing.
The Source Code Strategy Assessment Framework helps teams to understand the value of intentional explicit policies on how to manage source code. It helps to create both continuous improvement cycles and references within the organization of what others are doing.

## Known Instances

* Philips (under test at scale)

## References

* Organization and Legal Entity terms as defined in the [InnerSource License Pattern - Glossary](../2-structured/innersource-license.md#glossary).
* "Organization" and "Legal Entity" terms as defined in the [InnerSource License Pattern - Glossary](../2-structured/innersource-license.md#glossary).
* Explore using this pattern in combination with the [InnerSource Portal](../2-structured/innersource-portal.md) pattern.

## Status

* Initial
* Structured

## Author(s)

Expand Down