Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
5881b73
Created new file
Mar 16, 2017
c2eb48a
Updating not-invented here
NewMexicoKid Mar 16, 2017
0ae0aac
Update not-invented-here.md
ErinMB May 9, 2017
e4881b4
Incorporated content from duplicate
ErinMB Nov 2, 2017
3de57bd
merged in content from donut dup
ErinMB Nov 2, 2017
1a46fb0
team review, revisions & notes
ErinMB Nov 2, 2017
961321f
Merge remote-tracking branch 'origin/master' into pattern/not-invente…
spier Jan 30, 2021
41b0401
moving file to new folder structure
spier Jan 30, 2021
16178a1
Fixes to structure based on Pattern template. Increasing readability,…
spier Jan 30, 2021
d2fb179
Link to pattern from README
spier Jan 30, 2021
b96bb4e
linting: removing trailing spaces etc
spier Jan 30, 2021
619c652
Some more formatting fixes
spier Jan 30, 2021
62afcf8
rename section to References
spier Jan 30, 2021
578cbf7
Merge branch 'master' into pattern/not-invented-here
spier Feb 5, 2021
d60d000
remove instructions from the Pattern Template
spier Feb 5, 2021
90eea4d
Merge branch 'pattern/not-invented-here' of github.com:InnerSourceCom…
spier Feb 6, 2021
6b5f614
Placebo change, to run checks again
spier Dec 10, 2021
c78ab05
Merge branch 'main' into pattern/not-invented-here
spier Dec 10, 2021
0223cb2
Adding an initial patlet.
spier Dec 10, 2021
2c72e84
Link to PR. Remove status info that we don't use any more.
spier Dec 10, 2021
fb3c882
Adding Paltet for NIH pattern to the overview. Moving pattern to more…
spier Dec 10, 2021
efd53bd
Update README.md
spier Dec 10, 2021
cb06ddd
Remove extra spaces
spier Dec 10, 2021
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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ The below lists all known patterns. They are grouped into three [maturity levels
* [Explicit Shared Ownership](patterns/1-initial/explicit-shared-ownership.md) - *A software component that several teams depend on has grown to the point where owners are no longer capable of taking full ownership. There is confusion who to involve for changes. Sharing ownership explicitly and making expected behaviour visible removes ambiguity. Writing a contributions document creates a natural way to evolve ownership.*
* [Standarized Release Process](patterns/1-initial/release-process.md) - *Teams may be reluctant to use InnerSource projects that they are unfamiliar with when there is no clear release process apparent in the repository. Providing clear release notes and a published artifact (binary, docker image, jar, etc) gives people confidence you are publishing a quality product.*
* [Explicit InnerSource Principles](patterns/1-initial/explicit-innersource-principles.md) - *The usual InnerSource explanation of "applying open source best practices inside an organisation" does not work well with people lacking an open source background. As a remedy the most important principles of InnerSource get published widely.*
* [Overcoming the Not-Invented-Here Mindset](/patterns/1-initial/not-invented-here.md) - Perfectly good solutions are being rejected because of "Not Invented Here" (NIH). Engineers and their managers will choose to implement functionality themselves first, even if an alternative exists. A shift towards a culture of "Proudly Found Elsewhere" can help reduce the negative impact of NIH.

<!--
NOTE: The 'Initial' Patterns below don't even have a Patlet yet, which is essential for readers to quickly browse our patterns.
Expand Down
135 changes: 135 additions & 0 deletions patterns/1-initial/not-invented-here.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
## Title

Overcoming the Not-Invented-Here Mindset

## Patlet

Perfectly good solutions are being rejected because of "Not Invented Here" (NIH). Engineers and their managers will choose to implement functionality themselves first, even if an alternative exists. A shift towards a culture of "Proudly Found Elsewhere" can help reduce the negative impact of NIH.

## Problem

"Not Invented Here" mindset exists and has the following impact: Duplicative development, Cost, Redundancy, Missed opportunities for knowledge transfer, Slower time to market/bottlenecks, Quality impact (potential to miss out on leveraging superior technology), excessive ownership culture, lowered morale that can lead to talent retention issue.

Notes:

* Is the cost of adoption / integration of code from outside a reason for "Not Invented Here" rather than a peer issue?
* from Daniel to everyone: adoption/integration/understanding
* from Tom to everyone: Is there the concept of defined anti-patterns within ISC?
* from Tom to everyone: It might be better to define it from the other side
* from Tim Yao to everyone: Very true, Tom. Anti-patterns can be effective. We don't have any in the ISC yet, though.
* from Daniel to everyone:

Following items should move into sub-patterns:
High quality solutions are being rejected due to the "Not Invented Here" mindset. Engineers and their managers are choosing to rewrite the same functionality even though an alternative exists.
Notes: Not invented here can inject itself into many situations. It's a mindset.

Team or community is resistant to accept contributions from external contributors. Note: Split this based on use case: org-wide dysfunction vs team-level

## Story

Team agrees that one or more stories could be helpful here, to illustrate the problem.

Company x has a software system available. A User Group realized that a common problem needed to be solved connected to that system. If there were failures during connecting time, need to retry. A library was created. Maintainers of the system looked at the library and rewrote it instead of leveraging the library that was written by another team. They assessed the library to be sub-par. The user group who wrote the library believes that it was not a quality issue that caused them to rewrite it, but that they rewrote it because they wanted to do it their way.

## Context

* Traditional development teams lack experience and knowledge of community engagement.
* Company has deeply silo-ed engineering teams
* Excess of ownership culture.
* Little to no history using open source.
* Company has mature/entrenched engineering cultures.
* There is focus on intra-team cohesion and collaboration as opposed to cross-team collaboration
* You can't predict where the next contribution is coming from (might be a force?)
* Historical culture of silos, lack of cross-domain collaboration

Acknowledge that no matter what you do, some won't read contrib files
Acknowledge that no matter what you do, conflicting business goals/measures may result in dis-incentive to engage
Individuals fear being made replaceable
Your contribution extends the usability of my widget, but I'm not allocated to support it/I fear change - fear of increased support load
Fear of increased support load in general
Companies with software developers :) We suppose that this may also be a more common problem among deeply silo-ed engineering teams and/or in companies with more mature/entrenched engineering cultures.

## Forces

* Lack of trust. Limited opportunities to build relationships and trust with Developers outside of their particular area.
* Strong egos (team or individual).
* Unwillingness or reluctance to work with others.
* Concern that contributions from non-team members might be of inferior quality.
* Concerns related to time constraints. Project Managers need to to deliver the project in alignment with schedule commitments.
* Belief that learning and implementing something new will take away from the prime directive.
* No incentive to contribute or even consume because it is counter to their KPIs.
* Software may not be modular/designed for reuse. Team writing the code is not positioned to accept InnerSource contributions.
* Fear of losing control.
* Security can be a problem.

* Teams tightly control their processes/engagement models
* Contributing teams do not read contrib.md or prepare ("fling it over the wall")
* Conflicting business goals/individual performance measures may result in groups or individuals being dis-incented to engage
* Fear of diluting your perceived value
* Teams are more comfortable being held accountable for their own work - hesitant to take on unknown risk- ex: will i break my own product if I accept this? will I break stuff on a wider scale?
* Teams are hesitant to reuse/consume others' code
* Perceived value of accepting contributions that have narrow impact

- Team egos
- Individual egos
- The obvious benefit of what the solution could bring
- Optics challenges - teams being judged for bringing in software from outside the walls
- What metrics are being measured
- Reward system

## Solutions

* [Going deep into the not-invented-here syndrome](http://blog.hypeinnovation.com/the-not-invented-here-syndrome) touches on this topic, describing a prescription for overcoming the "Not Invented Here" mindset:
* Acknowledge that the "Not Invented Here" mindset (NIH) exists
* Assess the impact of NIH on your innovation efforts. For example, have you missed opportunities?
* Build in explicit incentives to overcome NIH
* Engage people outside of the organization in strategy/evaluation phases for fresh perspectives
* DSM video [Open Innovation: Proudly Found Elsewhere](https://www.youtube.com/watch?v=jNNz9poyKJs): Discusses the shift from strict NIH to empowering the "Proudly Found Elsewhere" approach.
* "It pays to look outside ones area (open innovation). The open Innovation funnel has permeable walls-->greater chance of success, greater speed."

* Provide template to use for code submission requirements. (Must include testing. Many companies have built-in, automated testing. Documented communication) For both host and contributors. Requires/assumes compliance.
* Mentorship (requirements can be informed via tracking above results)
* Talking is good /relationship building
* Finding incentives to drive InnerSource behavior (incentives and measures can vary at a team level)
* Shift to a "profoundly found elsewhere" culture
* Demonstrate organizational interest in outside opinions
* Identify influencers who agree to be early adopters - set the stage for others
* Contributability is a mark of quality

## Resulting Context

* Developers search for and leverage existing options as opposed to rewriting. This results in:
* increased efficiency
* increased reuse
* higher levels of developer satisfaction
* increased speed to market
* Developers interact with code and products produced by others with the same trust and engagement as those that they themselves have produced.

## Known Instances

TBD

## Status

* Initial (PR from [16 Mar 2017](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/64))

## Author(s)

* Erin Bank, CA Technologies
* Tim Yao, Nokia
* Padma Sudarsan, Nokia
* Georg Gruetter, Bosch
* Ofer Hermoni
* Rob Mulcahy
* Max Capraro
* Jory Burson
* John McDonough
* Shola
* Becky - name only
* Russ - name only
* Nick

## References

* Oana-Maria Pop, Hype Innovation Blog: [Does Your Organization Have the Not Invented Here Syndrome?](http://blog.hypeinnovation.com/the-not-invented-here-syndrome)
* DSM, Open Innovation: [Proudly Found Elsewhere](https://www.youtube.com/watch?v=jNNz9poyKJs)