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

Create transitioning-contractor-code-to-innersource-model #377

Merged
merged 28 commits into from
Oct 10, 2022
Merged
Changes from 10 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
0c65e69
Create transitioning-contractor-code-to-InnerSource-model
claredillon Dec 18, 2021
c165cbf
Renaming file to .md
spier Dec 18, 2021
8ea750e
Changing caps in filename + Fixing some spacing
spier Dec 18, 2021
17791fa
Removing some trailing spaces
spier Dec 18, 2021
c7d924b
Fix spelling of Contractor
spier Dec 20, 2021
2949d13
Adding details about Known Instance
spier Dec 20, 2021
c908382
Removing "optional"
spier Dec 20, 2021
be3807c
Removing "optional"
spier Dec 20, 2021
dd34d96
Removing "optional"
spier Dec 20, 2021
1e744bf
Adding Zack as author
spier Dec 20, 2021
0d93fbd
Adding list formatting for Authors section
spier Dec 20, 2021
d88b732
Fixing linter issue
spier Dec 20, 2021
c9976bc
Adding further Forces
spier Jan 7, 2022
cc8cc61
Grammar fix
spier Feb 3, 2022
066c82c
Formatting Known Instances as a list
spier Feb 3, 2022
81716e1
Update patterns/1-initial/transitioning-contractor-code-to-innersourc…
claredillon Oct 10, 2022
b355f23
Update patterns/1-initial/transitioning-contractor-code-to-innersourc…
claredillon Oct 10, 2022
5338257
Update patterns/1-initial/transitioning-contractor-code-to-innersourc…
claredillon Oct 10, 2022
be14878
Update patterns/1-initial/transitioning-contractor-code-to-innersourc…
claredillon Oct 10, 2022
da77109
Update patterns/1-initial/transitioning-contractor-code-to-innersourc…
claredillon Oct 10, 2022
a77d489
Fix linter issue
spier Oct 10, 2022
c7a61fb
Fix linter issue
spier Oct 10, 2022
24bc694
Update patterns/1-initial/transitioning-contractor-code-to-innersourc…
claredillon Oct 10, 2022
ab05786
Update patterns/1-initial/transitioning-contractor-code-to-innersourc…
claredillon Oct 10, 2022
45cedad
Update transitioning-contractor-code-to-innersource-model.md
claredillon Oct 10, 2022
2494f3a
Fix linter issue
spier Oct 10, 2022
6562551
Fix linter issue
spier Oct 10, 2022
712c53c
Wording fix.
spier Oct 10, 2022
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
@@ -0,0 +1,76 @@
## Title

Transitioning Contractor Code to InnerSource Model

## Patlet

Contract developers are often not motivated to engage in InnerSource activities, which may be beyond the scope of their contract. This patlet describes how you can focus on transitioning the contractor project after the fact to an InnerSource project.
claredillon marked this conversation as resolved.
Show resolved Hide resolved

## Problem

Contractor developers are often not motivated (through forces described below) to not engage in InnerSource activities. Once delivered, and even if the code is made visible, their projects are often less likely to be part of successful InnerSourced engagements.
claredillon marked this conversation as resolved.
Show resolved Hide resolved

## Context

This problem exists where an organization either:

- out-sources the development of a well defined project or
- engagages external firms for staff augmentation and has mixed teams of permanent employees with a large percentage of contract staff. This issue may occur less often in a mixed team where InnerSource principles and ways of working are already established within the organization, but the forces described below are still often at play.
spier marked this conversation as resolved.
Show resolved Hide resolved

## Forces

Contractor Motivation and Constraints:

- Often contracts with third-party developers are very focused on delivering an end result in the fastest possible fashion. As a result, all InnerSource activities (e.g. responding to third-party PRs) are considered to be distractions or something that will “slow down” ultimate delivery.
claredillon marked this conversation as resolved.
Show resolved Hide resolved
- There is also often a concern that accepting code from other parts of the business might introduce security risks, scope creep or other issues that would subsequently have to be resolved by the contract team.
claredillon marked this conversation as resolved.
Show resolved Hide resolved
- Above and beyond the idea that InnerSource may slow down the project, there is often an additional concern that accepting PRs from other parts of the company may “muddy the waters” when it comes to assessing what parts of the project were completed/delivered by the contracted developers.
spier marked this conversation as resolved.
Show resolved Hide resolved
claredillon marked this conversation as resolved.
Show resolved Hide resolved

All of the above can mean that even if an individual contract developer wants to engage in InnerSource, there are system-level constraints pushing them not to.

It should be noted that the above scenario is indirectly impacted by:

- The norms around defining Statements of Work for third party contractors
- Pressures to reduce contractor costs during procurement
- Ability to tie contributions to payment at a granular level.

It could also be noted that the contractor motivations in this instance is almost like a more extreme instance of the oft-reported organizational/budgetary constraints that might exist for some internal business units. (Not sure if this is relevant, but it does seem to be an extreme case of what is reported as common objections even in internal teams).
claredillon marked this conversation as resolved.
Show resolved Hide resolved

## Solutions

At the outset of the project, clearly define:

- That the code will be made visible by default.
claredillon marked this conversation as resolved.
Show resolved Hide resolved
- How the project will be transitioned to an InnerSource project. (Zack can add more explicit details here)
claredillon marked this conversation as resolved.
Show resolved Hide resolved

spier marked this conversation as resolved.
Show resolved Hide resolved
It is noted that this practice can work very well where there is a high trust relationship between the contracting team and the contractors. Perhaps they have worked closely together before, or have a pre-existing relationship. Further patterns that explore how to build trust between teams might enhance this pattern.

## Resulting Context

This particular pattern does not attempt to change the initial behavior of the contract development team (in terms of their potential lack of engagement with the InnerSource process). However, the end result is that the project does become part of the InnerSourced projects for the company after the fact.

## Known Instances

GitHub has seen this approach work with their US government agency customers.
spier marked this conversation as resolved.
Show resolved Hide resolved

## Status (optional until merging)

TBD
claredillon marked this conversation as resolved.
Show resolved Hide resolved

## Author(s)

Clare Dillon (v.0 assuming others will add themselves in this section as we flesh it out).
spier marked this conversation as resolved.
Show resolved Hide resolved
Zack Koppert
spier marked this conversation as resolved.
Show resolved Hide resolved

## Acknowledgements

Particular thanks to Zack Koppert for sharing his experiences in this area and to Gil Yehuda for raising the issue in the InnerSource Slack channel.

This pattern was extracted from a conversation on the topic held with the following folks:

- Brittany Istenes
- Clare Dillon
- Cristina Coffey
- Derek Murawsky
- Gil Yehuda
- Zack Koppert

spier marked this conversation as resolved.
Show resolved Hide resolved