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

Add outsourced development ecosystem pattern #662

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
74 changes: 74 additions & 0 deletions patterns/1-initial/outsourced-development-ecosystem.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
## Title

Outsourced Development Ecosystem

## Patlet

The burdens of existing contracts in an outsourced environment constrains the success of the
InnerSource initiative. Outsourced companies may see this as a risky situation as they have to
way to share knowledge, resources, and expertise with competitors within the mother company.
Copy link
Collaborator

Choose a reason for hiding this comment

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

way --> weigh?

... they have to weigh the sharing of knowledge, resources, and expertise with competitors within the mother company.

Copy link
Member

Choose a reason for hiding this comment

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

Who is the "mother company" in this context?

Copy link
Member Author

Choose a reason for hiding this comment

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

@spier , the mother company would be the company outsourcing services. I am not sure if this is the right word to use, though.

Copy link
Member Author

Choose a reason for hiding this comment

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

Hi @NewMexicoKid !! Good to see you around :). I wanted to say 'weight' or 'balance' as the company hiring others will need to take care of their outsourced companies so there are not unbalanced situations or frictions.

Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
way to share knowledge, resources, and expertise with competitors within the mother company.
weigh sharing knowledge, resources, and expertise with competitors within the mother company.

Changing this to "weigh" and also fixing the grammar.
@NewMexicoKid could you confirm if the grammar would be correct with the fix suggest above?

The legal contracts typically forces to develop software in a very specific and silo-ed way.
Redefining these rules and allowing outsourced companies would bring a more InnerSource-friendly
way of working.

## Problem

Current outsourced environments in large corporations prevent those suppliers to work in an
Copy link
Member

Choose a reason for hiding this comment

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

What do you mean by "environments"?

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 can call it context, situation, even ecosystems if you prefer :). The idea behind environment is that this includes many areas of the company, from legal to human resources or engineering teams. And the way outsourced companies are 'forced' to work is sometimes a blocker by itself.

Copy link
Member

Choose a reason for hiding this comment

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

If we would change this to "outsourced projects" then this would change the meaning of what you are trying to say, right @dicortazar?

InnerSource way. This includes a transparent, collaborative, and community-oriented way.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I would suggest combining the first two sentences:
Current outsourced environments in large corporations prevent those suppliers to work in an InnerSource way, with a greater transparency, collaboration, and sense of community.

Beyond the implications of the cultural change, and process focus, most of the limitations are
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggest deleting comma after cultural change

given by the existing legal framework that forces the outsourced development to charge a fee
Copy link
Member

Choose a reason for hiding this comment

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

Is "legal framework" the same as "contract" here?

Copy link
Member Author

Choose a reason for hiding this comment

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

Partially. a contract is one very specific document with a very specific outsourced company. The legal framework is the whole process and tools used in the company to start with any new outsourced company onboarding process.

per hour and within a very specific project. There are not specific agreements to allow
a collaborative way of working across the organization and across outsourced companies or contractors.

## Context
Copy link
Member

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 Context as bullet points as well, so that the readers can check one-by-one if this context also applies at their organization.


Large corporation with a big variety of outsourced companies and contractors that produce part
of the code base of this company. Each company or contractor has its own legal contract in place
Copy link
Member

Choose a reason for hiding this comment

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

If there is no difference between "legal contract" and "contract", I would just use the latter.

that states the goals, the pricing schema, and the expected outcome and output for the organization.

No collaboration happens at the outsourced company or contractor level and each of them are working
in a silo-based mode with no interactions with others, but the mother company.
Copy link
Collaborator

Choose a reason for hiding this comment

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

but the mother company --> but only with the mother company.


## Forces

* Legal teams and outsourced companies trying to avoid risk exposure and responsibilities.
Copy link
Member

Choose a reason for hiding this comment

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

Is this the legal team at the mother company (the company that is hiring the oursourced company?

Also one general question:
In the English/American context, what is the most common term for "outsourced company"?

Some ideas that come to mind:

  • contractors
  • agency
  • outsourcing partner
  • ...

We might also check some of the existing patterns for the terms that we typically use for this.

* Legal implications and responsibilities when something goes wrong.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think you need to sharpen this force. What is the behavior change that this force produces?

Copy link
Member

Choose a reason for hiding this comment

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

Also what does "something goes wrong" mean?

* SLAs in place forcing behaviors.
* Managers losing control of the situation by having more collaboration across companies borders
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is this Managers fearing the loss of control? Or actual loss of control?


## Solutions

* Governance model:
* Better definition of who owns the code and the data produced and if possible owned by the
mother company.
* Definition of checks and balances of who is responsible for what action (RACI) and SLAs against PRs.
* Definition of tools and processes so suppliers do not bring extra complexity to other suppliers.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is it possible to give an example or mention of how this can be done?

* Flexibility in the legal contracts to allow them to contribute with other companies,
even when they are competitors.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is there, in this solution space, an aspect of a business case that might help drive the adoption of this approach? To fight against the Manager fear of loss of control and the thought that each silo might worry about working with their (internal) competitors?

* Declaration of the supplier with other suppliers.
* Onboarding new suppliers.
* Relationship across developers.
* Budget management.
* Good practices should be enforced in the contracts with those companies or contractors.
As an example:
* Good documentation practices.
* Code should be hosted in a collaborative platform every company and contractor is able to reach
Copy link
Collaborator

Choose a reason for hiding this comment

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

Perhaps a semicolon is needed after platform

Copy link
Member

Choose a reason for hiding this comment

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

I think this was meant as a single sentence, i.e. no semicolon needed :)

Trying to rewrite this:

Code should be hosted in a collaborative platform (Version Control System) that every company and contractor is able to access and contribute to

We could possibly link to other patterns such as:

out to it
* State pull request / change request as the by-default way of working and communication.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
* State pull request / change request as the by-default way of working and communication.
* State pull request / change request as the default way of working and communicating (and through that improve async collaboration)

* Avoid private developments and releases of tons of lines of code, keep a transparent way of
Copy link
Member

Choose a reason for hiding this comment

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

Can you elaborate on this point?

Are you saying that the contractors should contribute their changes in smaller increments, rather than a big bang?

across companies or contractors.
* Train the mother company POs to work with several suppliers within the same project.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
* Train the mother company POs to work with several suppliers within the same project.
* Train the Product Owners at the mother company to work with several suppliers within the same project.

Train sounds good. But how? What do they have to learn?

* Define clear and fair guidelines across internal outsourced companies to avoid internal friction.
Copy link
Member

Choose a reason for hiding this comment

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

What do you mean by "internal outsourced companies"?

* Skill up your suppliers on InnerSource practices
* Resources discussions may be part of the conversation at some point, be sure to define the limitations
Copy link
Member

Choose a reason for hiding this comment

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

Can you elaborate on what you mean here?
Might become easier to understand if you break this up into two sentences.

of their interactions within other existing projects.

## Resulting Context

Outsourced companies and contractors are safe to collaborate with other competitors as collaboration
rules are clear, common processes and tools are in place, and the legal framework of each participant
allows to move into this direction.

## Author(s) (optional)

## Acknowledgments (optional)