finos / InnerSource

The FINOS InnerSource SIG is a community of people implementing, or interested in implementing, InnerSource within their financial services organization.
Apache License 2.0
28 stars 21 forks source link

InnerSource metrics for Financial Industry #119

Open chamindra opened 3 months ago

chamindra commented 3 months ago

Feature Request

Description of Problem:

What InnerSource metrics would be valuable to measure around each InnerSource project in the Financial Industry to understand:

  1. The value of the project from the perspective of cost saved through reuse or otherwise ( USD saved ideal )
  2. How much each InnerSource contributor is contributing to the project transparently to recognise then
  3. The Engineering health of the project from the perspective of maintainability, security and quality
  4. How InnerSource is enabling better collaboration on engineering / engineering efficiency
  5. Understand the adoption by versions to minimise support costs
  6. Open Source behaviours in organisation - Russel

Requirements

  1. People like to segment these metrics by business unit to understand the how innersource impacts across the org

Things you cannot put a metric easily on

  1. Is the project successful and what is the business value of the project -
  2. Social component of developer experience delivered by InnerSource - Georg
  3. Contribution to better Innovation - Russel
  4. Innersource as a Job creator - Brittany

Inner Source Metrics for Measuring Project Value and Individual Contributions

Below is a table outlining common inner source metrics that can be measured using data from tools like Jira, GitHub, Bitbucket, SonarQube, and popular DevOps tools used in the financial industry.

General Engineering Health

Metric Area Description Calculation Tool Used to Obtain Metric
Commits Per Contributor Individual Measures the number of commits made by each contributor. Count of commits per contributor over a specific period. GitHub, Bitbucket
Pull Requests Merged Individual/Project Tracks the number of pull requests merged. Count of merged pull requests. GitHub, Bitbucket
Issues Closed Individual/Project Measures the number of issues resolved by an individual or within a project. Count of closed issues. Jira, GitHub Issues, Bitbucket Issues
Code Review Participation Individual Tracks an individual's involvement in code reviews. Number of code reviews participated in per contributor. GitHub, Bitbucket
Code Coverage Project Measures the percentage of code covered by automated tests. Code coverage percentage. SonarQube
Static Code Analysis Project Assesses code quality through static analysis, checking for code smells, bugs, and vulnerabilities. Number of issues found by static analysis. SonarQube
Build Success Rate Project Measures the rate of successful builds. Percentage of successful builds over total builds. Jenkins, GitLab CI/CD, Bitbucket Pipelines
Deployment Frequency Project Tracks how often the code is deployed to production. Number of deployments per time period. Jenkins, GitLab CI/CD, Bitbucket Pipelines
Time to Resolve Issues Project Measures the average time taken to resolve issues. Average time from issue creation to resolution. Jira, GitHub Issues, Bitbucket Issues
Time to Merge Pull Requests Project Tracks the time taken from opening a pull request to merging it. Average time from PR creation to merge. GitHub, Bitbucket
Contributor Activity Individual/Project Measures overall activity of contributors including commits, issues, and comments. Count of commits, issues created, and comments. GitHub, Bitbucket, Jira
Code Churn Project Measures the amount of code changed over a period of time. Lines of code added, modified, or deleted. GitHub, Bitbucket
Defect Density Project Measures the number of defects per lines of code. Number of defects / KLOC (thousand lines of code). SonarQube, Jira
Lead Time for Changes Project Measures the time taken from a code commit to deployment in production. Average time from commit to production deployment. Jenkins, GitLab CI/CD, Bitbucket Pipelines
Security Vulnerabilities Project Tracks the number of security vulnerabilities found in the codebase. Count of security vulnerabilities. SonarQube, Snyk, GitHub Security

InnerSource Focused Metrics

Metric Area Description Calculation Tool Used to Obtain Metric
Downloads Project Tracks the number of times the InnerSource code or submodule has been downloaded or forked Downloads Github, Bitbucket
InnerSource Contributors Project Tracks the number of InnerSource contributors Number of non-core team code contributors Github, Bitbucket, JIRA
Reuse Factor Project Tracks the number of times the InnerSource code or submodule has been reused number of time reused Github, Bitbucket

Other tools that can provide data

  1. SCANOSS
  2. Backstage
  3. Slack

Reporting Tools

  1. 8Knot
  2. CHAOSS Augur
  3. CHAOSS GrimoireLab

These metrics are specifically chosen for their ease of measurement using common tools in the financial industry. Each metric also mention tools like Jira, GitHub, Bitbucket, SonarQube, and popular CI/CD platforms such as Jenkins and GitLab CI/CD. These tools provide extensive data and reporting features that can be used to track and analyze the metrics effectively.

chamindra commented 3 months ago

From InnerSource Commons a space for us to update https://innersourcecommons.gitbook.io/managing-innersource-projects/measuring/goals

chamindra commented 3 months ago

https://chaoss.github.io/grimoirelab/

chamindra commented 3 months ago

https://eightknot.osci.io/

GeorgLink commented 3 months ago

Reporting Tool:

rrrutledge commented 6 days ago

This work is great!