Skip to content

Commit 14dc7b4

Browse files
jeffabaileyspierMaineC
authored
feat: Improve content of discover-your-innersource (#780)
Various improvements to the discover-your-innersource pattern. Not yet ready to level it up to Structured, so keeping it as Initial for now. --------- Co-authored-by: Sebastian Spier <github@spier.hu> Co-authored-by: Isabel Drost-Fromm <isabel.drostfromm@gmail.com>
1 parent 0917427 commit 14dc7b4

File tree

2 files changed

+43
-34
lines changed

2 files changed

+43
-34
lines changed

patterns/1-initial/discover-your-innersource.md

Lines changed: 42 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -4,62 +4,53 @@ Discover Your InnerSource
44

55
## Patlet
66

7-
TBD
7+
When developers don't look for or can't find internally developed solutions, they may waste time and resources creating redundant software. To solve this, implement a robust internal search engine and processes that encourage the discovery and reuse of internal code.
88

9-
## Also Known As
9+
## Problem
1010

11-
* Not looking for stuff internally
12-
* Don't bother looking
13-
* Find it Inside
11+
People don't bother looking for internally developed solutions - they might not find the repo at all or be aware of its existence.
1412

1513
## Context
1614

1715
* Software component(s) are available internally but users can't easily find these.
1816
* This problem is more likely to occur in large, federated companies where different organizational units operate as silos.
1917
* Historically, the company does not have a culture of sharing code across silos.
2018

21-
## Discussion on
22-
23-
* Comments may appear in the timeline but not with the file once it is edited (github)?
24-
* https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/60
25-
* If only X knew what X knew; the internal search engine is bad. No one can find anything because it is difficult to add things to the search index.
26-
* We have similar challenges getting data sources pulled into the search engine. PayPal is building a project called Agora to do this and they are planning to open source it.
27-
* Github Enterprise and npmjs have built-in searches on meta-data. Enterprise that opts into these tooling will get some of that functi
28-
* Software component(s) are available internally but users can't easily find these.
29-
* This problem is more likely to occur where there are silos in the company (e.g., larger companies; smaller companies may have fewer opportunities for reuse of internally developed software).
30-
* The company traditionally has been bad at sharing across silos (people don't have the culture of sharing).
31-
32-
## Problem
33-
34-
People don't bother looking for internally developed solutions - they might not find the repo at all or be aware of its existence.
35-
3619
## Forces
3720

3821
* No good internal search engine (or not connected to git repositories; and difficult to make this change happen)
3922
* Users may not know there are common places to find internally developed solutions.
4023
* People don't expect to find solutions internally.
4124
* Many silos in the company; difficult to reach the developer base across those silos (a communications problem).
42-
* People might not want to use internal SW because they don't believe it will be helpful
25+
* People might not want to use internal software because they don't believe it will be helpful
4326
- might not be maintained
4427
- might have poor reusability
45-
- if someone put out a SW internally, the expectation is that they wouldn't have time to support it (vs. open source options)
28+
- if someone put out a software internally, the expectation is that they wouldn't have time to support it (vs. open source options)
29+
* Difficulty in adding content to the search index makes it hard for people to find anything
4630

4731
## Solution
4832

4933
Make it easy to find the reusable code.
5034

51-
* Pull in Repo names, descriptions and README.md files into the search engine assuming that a search engine exists. Note: a one-stop-shop kind of search engine for all relevant communication and documentation is difficult to attain. Even when using Github's enterprise offering, people often deploy additional systems like wikis to host content orthogonal to what is in the code repositories, slack channels (or IRC), mailing lists (or even nntp servers), some place to store stuff written down in office formats, search over personal e-mail etc. Several of these systems come with search built-in, but integrating this content in one search box or even just deploying a federated search engine across all sources often doesn't come off-the-shelf.
52-
* Implement process change to first check for internal solutions for this problem.
53-
* Tool with a central view (but people are more inclined to google externally than look internally)
35+
### Behavior and Process Changes
36+
37+
* Implement process change to motivate developers to first check for internal solutions for problems that they need to solve.
5438
* Concierge service (guide) to help product people find stuff. Might not scale but could be helpful in the beginning.
55-
* Need some very visible lighthouse projects that start using inner source components and make positive statements about the inner source program.
56-
* Establish a common, asynchronous communication channel (e.g., like slack or metamorph or yammer) across team boundaries. This might not scale beyond a certain organization size. It is possible people will start splitting this one channel into multiple channels by topic once traffic gets too high. Note: having one channel for many users of one tool might be considered an anti-pattern because they can't find it unless they already know about it.
39+
* Need some very visible lighthouse projects that start using InnerSource components and make positive statements about the InnerSource program (to increase the trust of your developers in your InnerSource components.
5740
* Encourage (and reward) owners of reusable code to use the same search engine to continually search for products that are candidates for use and adoption of the reusable code but not currently doing so.
58-
* Consider creating a marketplace for marketing InnerSource programs (management can use this mechanism to know which InnerSource projects to fund, but seeing how the marketplace reacts).
5941

60-
## Known Instances
42+
### Tooling Changes
6143

62-
TBD
44+
* Pull in repo names, descriptions and `README.md` files into the search engine assuming that a search engine exists. Note: a one-stop-shop kind of search engine for all relevant communication and documentation is difficult to attain. Even when using GitHub's enterprise offering, people often deploy additional systems like wikis to host content orthogonal to what is in the code repositories, slack channels (or IRC), mailing lists (or even NNTP servers), some place to store stuff written down in office formats, search over personal e-mail etc. Several of these systems come with search built-in, but integrating this content in one search box or even just deploying a federated search engine across all sources often doesn't come off-the-shelf.
45+
* Consider using existing tools:
46+
* GitHub Enterprise and npmjs have built-in searches on meta-data
47+
* PayPal's [SeazMe](https://github.com/paypal/seazme) project (previously called Agora) addresses similar challenges with data source integration
48+
* Tool with a central view (but people are more inclined to google externally than look internally)
49+
* Establish a common, asynchronous communication platform (e.g., chat based) across team boundaries.
50+
* This might not scale beyond a certain organization size.
51+
* Start with a single chat channel for the InnerSource project, splitting into multiple only when traffic is high. This keeps the channel active and minimizes channels for the host team. Mention this channel clearly in key docs like README.md, CONTRIBUTING.md, and onboarding materials to help users find and join the conversation.
52+
* Note: having one channel for many users of one tool might be considered an anti-pattern because they can't find it unless they already know about it.
53+
* Create a marketplace for marketing InnerSource programs (management can use this mechanism to know which InnerSource projects to fund, by seeing how the marketplace reacts). - see [Gig Marketplace](../2-structured/gig-marketplace.md)
6354

6455
## Resulting Context
6556

@@ -68,11 +59,21 @@ TBD
6859
* Developers are now looking internally for software components
6960
* Search results are combined (internal and external)
7061
* Process changes, establishing a common communications channel, and encouraging and rewarding owners of reusable code to use the same search engine can contribute to changing the corporate culture. Transformation begins from the grassroots but requires strategic involvement of thought leaders.
71-
* See [Improved Findability](improve-findability.md) (aka Poor Naming Conventions or Badly Named Piles) as a related pattern.
62+
63+
<!--
64+
// we don't want to link from Structured patterns to Initial patterns. hence removing this link.
65+
// we can add this back in if the "Improved Findability" pattern is leveled up to maturity Structured
66+
* See [Improved Findability](../1-initial/improve-findability.md) (aka Poor Naming Conventions or Badly Named Piles) as a related pattern.
67+
-->
68+
69+
## Known Instances
70+
71+
* Nike Inc.
72+
* WellSky
7273

7374
## Status
7475

75-
* Initial (brainstormed solution)
76+
* Initial
7677

7778
## Authors
7879

@@ -83,4 +84,12 @@ TBD
8384

8485
## Acknowledgements
8586

86-
* Contributions from Russ Rutledge, Ofer Hermoni and Robert Hanmer
87+
* Russ Rutledge
88+
* Ofer Hermoni
89+
* Robert Hanmer
90+
91+
## Alias
92+
93+
* Not looking for stuff internally
94+
* Don't bother looking
95+
* Find it Inside

patterns/1-initial/include-product-owners.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Key Performance Indicators (KPIs) for Product Owners are primarily product focus
5757

5858
## Known Instances
5959

60-
* PayPal is looking into finding a search solution for their project Agora. They are collaborating with other teams pursuing a similar mission, eliminating redundancy and inefficiency regarding effort and tools.
60+
* PayPal is looking into finding a search solution for their project [SeazMe](https://github.com/paypal/seazme) (previously called Agora). They are collaborating with other teams pursuing a similar mission, eliminating redundancy and inefficiency regarding effort and tools.
6161

6262
## Status
6363

0 commit comments

Comments
 (0)