Skip to content
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

Adding first draft of InnerSource Operational Model #417

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Changes from 4 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
71 changes: 71 additions & 0 deletions patterns/1-initial/operational-model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
## Title

An InnerSource Lifecycle Model
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we rename the title, we should consider changing the filename as well.


## Patlet

InnerSource is key across all of the software production chain. This includes from idea to delivery to customer. This pattern defines the software development life cycle from an InnerSource perspective.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Patlet does not describe the problem yet that this pattern looks to solve.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We typically suggest to format the Patlet like this:

  • 1st sentence to describe the problem
  • 2nd sentence to describe the solution


## Problem

InnerSource is typically focused on letting developers work together. There are several patterns focused on specific roles as the Trusted Committer or from a more organization level as the Review Committee. However, it is still not clear how all of this works together.

This pattern aims at providing an overview to management and Chief level of how the software life cycle may be managed in a more InnerSource way with the goal of having a place where InnerSource principles may apply to the several people involved: from Product Owners to Contributors.

This may help provide a helpful framework for connecting patterns to help practitioners make better sense of InnerSource from a development lifecycle perspective.

## Story (optional)

## Context

Visitors to InnerSource patterns may often wonder about the applicability of a given pattern to their own situation.

The problem initially exists at the management level where the several business units are defining their needs, tuning the product, and suggesting next steps. A general overview of this process and key moments in the chain where they can influence (e.g., POs discussions) are part of this.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This context feels a bit vague. Is the problem that the management of several business units are investigating the adoption of InnerSource as a means of optimizing their SW development and they don't know where to start or how to organize/apply the many patterns that exist in the InnerSource Patterns repository? Then this probably should be stated here in the context.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not exactly this. I've added a small paragraph after this in the new commit. The idea with this pattern is that InnerSource works at several levels in the organization. As an example, product owners are sometimes left out of the InnerSource discussions once InnerSource is working, but POs are the ones deciding on next features and next steps. This model takes into account that they exist and how to grow them into this scenario.

As InnerSource brings a more transparent and collaborative way of working, all existing processes at any level should move into that direction. How to create paths for collaboration across silos and how this software lifecycle looks like.

## Forces

As the software production chain involves roles with different goals, the InnerSource way of working has to be taken up by everyone involved in the software production chain. For example, business related people as Product Owners may be reluctant to move into a more collaborative and transparent way of producing software. And this reluctance may occur with other roles as well.


## Sketch (optional)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Sketch (optional)
## Sketch


The following is an example of a tentative pattern solution related to this. Existing patterns are now part of this discussion for the software development life cycle.

![OperationalModelForInnerSource](https://user-images.githubusercontent.com/469119/142229499-e05c60e8-0e8f-4f24-9578-ca05ba4cdab0.png)

## Solutions

The proposed solution is a simplified version of a Software Development Lifecycle. This pattern works on three main areas for the software development life cycle that are:

1. Inception where the idea is discussed and specified (e.g., as user story),
2. Build where the developer collaboration takes place with other developers, where the user story is translated into code, and
3. Usage as the moment in time the software is producing value at the final end users even in other business units or departments.
Comment on lines +41 to +43
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Inception where the idea is discussed and specified (e.g., as user story),
2. Build where the developer collaboration takes place with other developers, where the user story is translated into code, and
3. Usage as the moment in time the software is producing value at the final end users even in other business units or departments.
1. [Inception](https://patterns.innersourcecommons.org/p/document-your-guiding-principles) - where the idea is discussed and specified (e.g., as user story)
2. **Build** - where the developer collaboration takes place with other developers, where the user story is translated into code
3. **Usage** - as the moment in time the software is producing value at the final end users even in other business units or departments

Formatting suggestion.


These three main areas should at the same time comply with the InnerSource principles (transparency, collaboration, community, etc.).
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have these principles in writing somewhere?

We have this pattern but I don't think that this is what you are referring to here:
https://patterns.innersourcecommons.org/p/document-your-guiding-principles


## Resulting Context

The resulting context is that the corporation has defined and is using an operational model to work in a more transparent and collaborative way. This model can be later extended to other projects within the corporation.

This model is useful as well to compare to other existing models in the company, and check how InnerSource this is. For further reference please check the Maturity Model Pattern.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"how InnerSource this is" is hard to read.

Can you elaborate on what you mean here?

Do you mean something like this:

This model is useful as well to compare to other existing models in the company, and check to what extent those support InnerSource (or at least don't prevent it from happening).


If applied, this model brings more transparency to any of the decision making process at the company, and it is clear to others the end-to-end process to build software.

## Rationale (optional)

## Known Instances (optional)

## Status

* Initial status

## Author(s)

* Igor Zubiaurre
* Daniel Izquierdo Cortázar

## Acknowledgements (optional)

## Alias (optional)