-
Notifications
You must be signed in to change notification settings - Fork 187
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
[Pattern Draft] Outsourced development ecosystem #662
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
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. | ||||||
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 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 commentThe 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 commentThe 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. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would suggest combining the first two sentences: |
||||||
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 commentThe 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 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 commentThe 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 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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: Some ideas that come to mind:
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. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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? There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 commentThe 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:
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. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
* 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 commentThe 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. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Train sounds good. But how? What do they have to learn? |
||||||
* 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 commentThe 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 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you elaborate on what you mean here? |
||||||
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) |
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.
Changing this to "weigh" and also fixing the grammar.
@NewMexicoKid could you confirm if the grammar would be correct with the fix suggest above?