diff --git a/patterns/1-initial/operational-model.md b/patterns/1-initial/operational-model.md new file mode 100644 index 000000000..17540c73d --- /dev/null +++ b/patterns/1-initial/operational-model.md @@ -0,0 +1,70 @@ +## Title + +An InnerSource Lifecycle Model + +## 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. + +## 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. + +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) + +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. + +These three main areas should at the same time comply with the InnerSource principles (transparency, collaboration, community, etc.). + +## 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. + +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)