-
Notifications
You must be signed in to change notification settings - Fork 183
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
base: main
Are you sure you want to change the base?
Conversation
This patterns defines an existing problem in large corporations that are highly outsourced.
There was a problem hiding this 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.
|
||
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. |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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:
- https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/source-code-inventory.md
- https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/2-structured/innersource-portal.md (here we should review how this pattern can be adapted, so that it is also usable by contractors)
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. |
There was a problem hiding this 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 |
There was a problem hiding this comment.
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"?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* 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 |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* 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. |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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.
This patterns defines an existing problem in large corporations that are highly outsourced.