Skip to content

Latest commit

 

History

History
364 lines (246 loc) · 13.3 KB

what-is-inner-source.md

File metadata and controls

364 lines (246 loc) · 13.3 KB

What is InnerSource?

Learn more about the world of InnerSource, and why applying the open source working model internally is vital to your organization's future.

Table of contents

1. The InnerSource working model defined

The InnerSource working model applies the open-source product delivery model to private, internal IT teams. Like open-source, InnerSource is a decentralized product delivery model based on open and transparent collaboration. InnerSource relies on peer production to deliver features and fixes to consumers. InnerSource also depends on lightweight documentation in order to market to consumers and encourage community contributions.

1.1. InnerSource principles

InnerSource is a:

  • Decentralized product delivery model
  • Peer production network of self-organizing communities of interest and practice
  • Community-driven enterprise aimed at converting users into contributors.

InnerSource depends on:

  • Documentation to share knowledge efficiently
  • Community contributions for product development and delivery
  • Continuous testing and integration to support voluntary changes
  • Transparent and measurable objectives

1.2. The five steps of InnerSource Product Delivery

InnerSource product delivery is a simple, five-step process.

InnerSource Working Model's 5 Steps

1. Issues

Issues allow InnerSource teams to propose and track features and defect fixes.

2. Pull Requests (PRs)

Pull requests automatically announce whenever Issue assignees push changes to Git.

3. Merges

Add approved PR changes into the product.

4. Releases

Deliver value-added changes to consumers.

5. Support

Improve the product with defect fixes and refactorings (formal design improvements).

2. InnerSource and current business challenges

2.1. IT rationalization and modernization

IT Rationalization provides a framework for managing and monitoring our investment in existing (and proposed) software applications predictably and efficiently, to ensure that IT assets are effective in their role of realizing business strategy.

2.1.1. Challenges

IT Rationalization and Moderation manages applications from development and acquisition to retirement and removal based on strategic alignment with predictable risk and financial reduction.

IT Rationalization and Modernization efforts define, evaluate, and align technology-assets with business goals.
Security challenges Legal challenges Cost reduction challenges App modernization challenges Distribution and reuse
Security Legal Cost reduction Modernization Reuse
Standardization + Risk Reduction Consolidation Innovation Distribution

2.1.2. InnerSource solutions

InnerSource product delivery is self-directed The InnerSource working model requires openness and transparency

2.1.3. Measuring success

  1. Software product retirement trends

    How:

    Track internal and vendor software product retirments over time, starting with

    • Enterprise Decision Records with the status EDR: Retire
    • Time to deprecate those products.
    • Time to take those products "offline."
  2. TechStack formation and adoption

    How:

    • Full technology stacks—with managed, security-approved dependencies—are readily available to engineers.
    • The number of software products deployed based on approved TechStacks.

2.2. Agile delivery team silos and geographically dispersed teams

Agile software development approaches product development iteratively and incrementally, resulting in products that evolve over time. Agile stresses the importance of co-located, cross-functional teams in order to communicate and collaborate quickly.

2.2.1. Challenges

Agile, when properly executed, can delivery value to consumers quickly and inexpensively.


Agile does not, however, address the problem of business silos.


Siloed product developement


Moreover, optimal agile product delivery requires co-located team members in order to communicate and delivery quickly.


Product delivery teams are rarely co-located, which can result in "geographic silos."


2.2.2. InnerSource solutions

The InnerSource working model applies to all product delivery strategies, including Agile and waterfall. How teams collaborate is up to each team. InnerSource complements Agile teams:

InnerSource complements Agile product delivery

The InnerSource working model is based on the open-source model, in which geographically dispersed teams are the norm, not the exception.

Distributed teams

To communicate effectively and asynchronously, InnerSource delivery teams rely on:

  • Simple documentation like README files to help users install and use their product.
  • CONTRIBUTING documents to help users become contributors to product development and delivery.
  • Test and quality assurance automation.
  • Tools like GitHub and GitLab for version control with enhanced collaboration features.

Combining Agile methodologies with structured, asynchronous workflows leads to higher quality products and more efficient delivery.


2.2.3. Measuring success

  1. Issues worked from submissions outside a product's organization

    How:

    Track issues submitted by contributors outside of the organization that supports a product. Track whether those same issues resulted in changes to the product.

    percentageOutsideEngagement = ( issuesWorked / issuesSubmitted ) * 100
  2. Outside contributions merged and released

    How:

    Track pull requests (PRs) from contributors outside of the organization that supports a product. Track whether those same PRs were merged into the product and released.

    percentageOutsideContributions = ( pullRequestsSubmitted / pullRequestsMerged ) * 100

2.4. Tribal knowledge

2.4.1. Challenges


Siloed teams neither record nor share knowledge beyond their immediate teams.


Restricted access to documentation No documentation exists Documentation isn't available via search engines
Access to documentation is either restricted... ...or simply doesn't exist. This makes searching for knowledge nearly impossible.

2.4.2. InnerSource solutions

The success of InnerSource product delivery depends on sharing information openly and transparently.

2.4.3. Measuring success

  1. Track the number of software repositories with standardized READMEs.

    How:

    percentageOfReposWithReadmes = ( numberOfReposWithReadmes / totalNumberOfRepos ) * 100
  2. Score READMEs for quality.

    How:

3. Our mission

We quickly deliver innovative, reusable software that is secure and mature enough to accept community contributions.

Let's break the mission statement down and explain why it's significant.

3.1. InnerSource builds engineering discipline

InnerSource (and Open Source) products are developed, maintained, and delivered based on voluntary contributions from virtual strangers.

Consequently, InnerSource product delivery teams rely on automated CI services like:

  • Builds
  • Code quality assessments and relentless refactoring
  • Dependency drift management
  • PCI data violations
  • Published (and automated) code style guidelines
  • Unit testing and code coverage on target platforms
  • Vulnerability detection

3.2. InnerSource requires teams to "think like startups"

Moreover, InnerSource teams "sell" their products in order to compel their peers to adopt their software. This requires teams to:

  • Architect and design products that are modular enough for parallal work
  • Comply with open source licenses
  • Distribute (or divest) software
  • Limit product complexity
  • Manage intellectual property issues
  • Manage risk
  • Manage security updates
  • Plan for support

Successful InnerSource and open-source teams are mature business and engineering teams.

4. Strategy and Roadmap

4.1. Continuous Governance

From dashboards to keyboards.

4.1.1. Documentation-as-a-Service

Automated product documentation assessments and tools.

4.1.2. Legal-as-a-Service

Automated license scanning and decision support.

4.1.3. Quality Assurance-as-a-Service

Automated source code quality assessment and repair.

4.1.4. Security-as-a-Service

Automated vulnerability checks before code merges.

4.2. Continuous Rationalization

From statues to TechStacks.

4.3. Evolutionary Architecture

Harnessing the power of our Engineering and Design Community.

5. Deliverables

5.1. Common modules

5.2. Architectural Knowledge Management

5.3. TechRadar

6. Benefits

6.1. For individuals

6.2. For teams

6.3. For organizations

6.4. For shareholders

7. Support