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

Conversation

dicortazar
Copy link
Member

This patterns defines an existing problem in large corporations that are highly outsourced.

This patterns defines an existing problem in large corporations
that are highly outsourced.
Copy link
Collaborator

@NewMexicoKid NewMexicoKid left a comment

Choose a reason for hiding this comment

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

Looks like an interesting pattern--thanks for submitting this.

One concern: it appears to focus more on the "how to do it" rather than the "how to win over internal critics and establish management buy-in" even though some of the forces are clearly in the second camp and probably need to be addressed.

patterns/1-initial/outsourced-development-ecosystem.md Outdated Show resolved Hide resolved

The burdens of existing contracts in an outsourced environment constraints 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?

## Problem

Current outsourced environments in large corporations prevent those suppliers to work in an
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.


Current outsourced environments in large corporations prevent those suppliers to work in an
InnerSource way. This includes a transparent, collaborative, and community-oriented way.
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

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.

* Legal teams and outsourced companies trying to avoid risk exposure and responsibilities.
* Legal implications and responsibilities when something goes wrong.
* 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?

* 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?

* 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.
* 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?

* 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:

patterns/1-initial/outsourced-development-ecosystem.md Outdated Show resolved Hide resolved
@spier
Copy link
Member

spier commented Mar 8, 2024

I fixed the markdownlint complaints on you PR.

Sorry about all the notification emails that you received. That's just one way for us to try to keep the markdown in our patterns to some standard. Potentially a bit too strict (and with that annoying) at early stages of the content creation process.

Copy link
Member

@spier spier left a comment

Choose a reason for hiding this comment

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

Great start on this new pattern @dicortazar!

The outsourcing topic has been addressed fairly little so far in our patterns, so it is great to get more of this content integrated.

General question:
Is this pattern exclusively about code-level collaboration between two different outsourcing companies? Or is it also between a single outsourcing company and the mother company?

I further recommend to pick fixed terms for the "mother company" and "outsourced company" early on in the pattern, and then stick to it throughout the rest of the pattern.

Again, great work! Hope you find the inline suggestions helpful.


## 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?

Current outsourced environments in large corporations prevent those suppliers to work in an
InnerSource way. This includes a transparent, collaborative, and community-oriented way.
Beyond the implications of the cultural change, and process focus, most of the limitations are
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.

## Context

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.

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.

## Forces

* Legal teams and outsourced companies trying to avoid risk exposure and responsibilities.
* Legal implications and responsibilities when something goes wrong.
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?

* Good documentation practices.
* Code should be hosted in a collaborative platform every company and contractor is able to reach
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)

* Code should be hosted in a collaborative platform every company and contractor is able to reach
out to it
* State pull request / change request as the by-default way of working and communication.
* 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?

* State pull request / change request as the by-default way of working and communication.
* Avoid private developments and releases of tons of lines of code, keep a transparent way of
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?

* Avoid private developments and releases of tons of lines of code, keep a transparent way of
across companies or contractors.
* Train the mother company POs to work with several suppliers within the same project.
* 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"?

* Train the mother company POs to work with several suppliers within the same project.
* Define clear and fair guidelines across internal outsourced companies to avoid internal friction.
* 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.

@spier spier added 1-initial Donuts, Early pattern ideas, ... (Please see our contribution handbook for details) 📖 Type - Content Work Working on contents is the main focus of this issue / PR labels Mar 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1-initial Donuts, Early pattern ideas, ... (Please see our contribution handbook for details) 📖 Type - Content Work Working on contents is the main focus of this issue / PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants