From 163c8ce3e9468e857eccde69bed67790a2612ab6 Mon Sep 17 00:00:00 2001 From: Jeff Bailey <776901+jeffabailey@users.noreply.github.com> Date: Fri, 28 Feb 2025 07:33:56 -0800 Subject: [PATCH 01/18] feat: promote discover-your-innersource --- patterns/1-initial/discover-your-innersource.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/patterns/1-initial/discover-your-innersource.md b/patterns/1-initial/discover-your-innersource.md index f64a75c1a..0054ca3aa 100644 --- a/patterns/1-initial/discover-your-innersource.md +++ b/patterns/1-initial/discover-your-innersource.md @@ -59,7 +59,8 @@ Make it easy to find the reusable code. ## Known Instances -TBD +* Nike Inc. +* WellSky ## Resulting Context @@ -72,7 +73,7 @@ TBD ## Status -* Initial (brainstormed solution) +* Structured ## Authors From 55182efbbcc6633574c324436b21b4e59b246e54 Mon Sep 17 00:00:00 2001 From: Jeff Bailey <776901+jeffabailey@users.noreply.github.com> Date: Fri, 28 Feb 2025 07:41:51 -0800 Subject: [PATCH 02/18] chore: move file to initial dir --- patterns/{1-initial => 2-structured}/discover-your-innersource.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename patterns/{1-initial => 2-structured}/discover-your-innersource.md (100%) diff --git a/patterns/1-initial/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md similarity index 100% rename from patterns/1-initial/discover-your-innersource.md rename to patterns/2-structured/discover-your-innersource.md From 4be02b6159f2683400b913c4ac3c25760c2bb34d Mon Sep 17 00:00:00 2001 From: Jeff Bailey <776901+jeffabailey@users.noreply.github.com> Date: Mon, 3 Mar 2025 19:56:09 -0800 Subject: [PATCH 03/18] feat: add patlet fix: correct improve-findability.md link --- patterns/2-structured/discover-your-innersource.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index 0054ca3aa..292e1929e 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -4,7 +4,7 @@ Discover Your InnerSource ## Patlet -TBD +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. ## Also Known As @@ -69,7 +69,7 @@ Make it easy to find the reusable code. * Developers are now looking internally for software components * Search results are combined (internal and external) * 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. -* See [Improved Findability](improve-findability.md) (aka Poor Naming Conventions or Badly Named Piles) as a related pattern. +* See [Improved Findability](../1-initial/improve-findability.md) (aka Poor Naming Conventions or Badly Named Piles) as a related pattern. ## Status From c77a4203271339d30376e5fac4c81852edf952b5 Mon Sep 17 00:00:00 2001 From: Sebastian Spier Date: Tue, 4 Mar 2025 22:53:23 +0100 Subject: [PATCH 04/18] Rename 'Also Known As' section to 'Alias' and move it to the end of the file, as per the pattern template --- patterns/2-structured/discover-your-innersource.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index 292e1929e..df83321d1 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -6,12 +6,6 @@ Discover Your InnerSource 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. -## Also Known As - -* Not looking for stuff internally -* Don't bother looking -* Find it Inside - ## Context * Software component(s) are available internally but users can't easily find these. @@ -85,3 +79,9 @@ Make it easy to find the reusable code. ## Acknowledgements * Contributions from Russ Rutledge, Ofer Hermoni and Robert Hanmer + +## Alias + +* Not looking for stuff internally +* Don't bother looking +* Find it Inside From 336025015ee0b5920fd5835ca9724beff0c9a8dd Mon Sep 17 00:00:00 2001 From: Sebastian Spier Date: Tue, 4 Mar 2025 22:57:11 +0100 Subject: [PATCH 05/18] Reorder section, based on order in the template. --- .../2-structured/discover-your-innersource.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index df83321d1..0aabe05fe 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -6,27 +6,16 @@ Discover Your InnerSource 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. +## Problem + +People don't bother looking for internally developed solutions - they might not find the repo at all or be aware of its existence. + ## Context * Software component(s) are available internally but users can't easily find these. * This problem is more likely to occur in large, federated companies where different organizational units operate as silos. * Historically, the company does not have a culture of sharing code across silos. -## Discussion on - -* Comments may appear in the timeline but not with the file once it is edited (github)? -* https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/60 -* 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. -* 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. -* Github Enterprise and npmjs have built-in searches on meta-data. Enterprise that opts into these tooling will get some of that functi -* Software component(s) are available internally but users can't easily find these. -* 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). -* The company traditionally has been bad at sharing across silos (people don't have the culture of sharing). - -## Problem - -People don't bother looking for internally developed solutions - they might not find the repo at all or be aware of its existence. - ## Forces * No good internal search engine (or not connected to git repositories; and difficult to make this change happen) @@ -51,11 +40,6 @@ Make it easy to find the reusable code. * 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. * 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). -## Known Instances - -* Nike Inc. -* WellSky - ## Resulting Context * Internal components are easily visible @@ -65,6 +49,11 @@ Make it easy to find the reusable code. * 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. * See [Improved Findability](../1-initial/improve-findability.md) (aka Poor Naming Conventions or Badly Named Piles) as a related pattern. +## Known Instances + +* Nike Inc. +* WellSky + ## Status * Structured @@ -85,3 +74,14 @@ Make it easy to find the reusable code. * Not looking for stuff internally * Don't bother looking * Find it Inside + +## Discussion on + +* Comments may appear in the timeline but not with the file once it is edited (github)? +* https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/60 +* 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. +* 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. +* Github Enterprise and npmjs have built-in searches on meta-data. Enterprise that opts into these tooling will get some of that functi +* Software component(s) are available internally but users can't easily find these. +* 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). +* The company traditionally has been bad at sharing across silos (people don't have the culture of sharing). From 52333fcb9472219dd66d32becf435d918e3109d0 Mon Sep 17 00:00:00 2001 From: Sebastian Spier Date: Tue, 4 Mar 2025 22:59:34 +0100 Subject: [PATCH 06/18] Fix spelling of InnerSource --- patterns/2-structured/discover-your-innersource.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index 0aabe05fe..f07bf74fe 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -35,7 +35,7 @@ Make it easy to find the reusable code. * Implement process change to first check for internal solutions for this problem. * Tool with a central view (but people are more inclined to google externally than look internally) * Concierge service (guide) to help product people find stuff. Might not scale but could be helpful in the beginning. -* Need some very visible lighthouse projects that start using inner source components and make positive statements about the inner source program. +* Need some very visible lighthouse projects that start using InnerSource components and make positive statements about the InnerSource program. * 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. * 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. * 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). From bae152f0883a639ada7168b5977ee443ae4237a4 Mon Sep 17 00:00:00 2001 From: Sebastian Spier Date: Tue, 4 Mar 2025 23:01:09 +0100 Subject: [PATCH 07/18] Formatting fixes --- patterns/2-structured/discover-your-innersource.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index f07bf74fe..44ac468fe 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -67,7 +67,9 @@ Make it easy to find the reusable code. ## Acknowledgements -* Contributions from Russ Rutledge, Ofer Hermoni and Robert Hanmer +* Russ Rutledge +* Ofer Hermoni +* Robert Hanmer ## Alias @@ -79,7 +81,7 @@ Make it easy to find the reusable code. * Comments may appear in the timeline but not with the file once it is edited (github)? * https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/60 -* 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. +* 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. * 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. * Github Enterprise and npmjs have built-in searches on meta-data. Enterprise that opts into these tooling will get some of that functi * Software component(s) are available internally but users can't easily find these. From dd3513ccdeeb04612453d5dc5aa050f343ee1ba8 Mon Sep 17 00:00:00 2001 From: Sebastian Spier Date: Wed, 2 Apr 2025 20:11:01 +0200 Subject: [PATCH 08/18] Formatting of Solution section --- patterns/2-structured/discover-your-innersource.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index 44ac468fe..65f5e25e3 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -31,12 +31,18 @@ People don't bother looking for internally developed solutions - they might not Make it easy to find the reusable code. -* 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. +* Pull in repo names, descriptions and `README.md` files into the search engine assuming that a search engine exists. + * 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. * Implement process change to first check for internal solutions for this problem. * Tool with a central view (but people are more inclined to google externally than look internally) * Concierge service (guide) to help product people find stuff. Might not scale but could be helpful in the beginning. * Need some very visible lighthouse projects that start using InnerSource components and make positive statements about the InnerSource program. -* 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. +* 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. * 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. * 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). From 70a01e37dd148c457e4bd26ab4e77a1de4d362c5 Mon Sep 17 00:00:00 2001 From: Sebastian Spier Date: Wed, 2 Apr 2025 20:16:08 +0200 Subject: [PATCH 09/18] Add link to Gig Marketplace pattern --- patterns/2-structured/discover-your-innersource.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index 65f5e25e3..a54a9e3fa 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -44,7 +44,7 @@ Make it easy to find the reusable code. * 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. * 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. -* 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). +* 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). - see [Gig Marketplace](../2-structured/gig-marketplace.md) ## Resulting Context From 99ebe10b1b1a2b0b218075696339dbbbb0cf7790 Mon Sep 17 00:00:00 2001 From: Jeff Bailey <776901+jeffabailey@users.noreply.github.com> Date: Fri, 11 Apr 2025 08:02:44 -0700 Subject: [PATCH 10/18] Update patterns/2-structured/discover-your-innersource.md Co-authored-by: Isabel Drost-Fromm --- patterns/2-structured/discover-your-innersource.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index a54a9e3fa..a9f4e3b3b 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -39,7 +39,7 @@ Make it easy to find the reusable code. * Tool with a central view (but people are more inclined to google externally than look internally) * Concierge service (guide) to help product people find stuff. Might not scale but could be helpful in the beginning. * Need some very visible lighthouse projects that start using InnerSource components and make positive statements about the InnerSource program. -* Establish a common, asynchronous communication channel (e.g., like slack or metamorph or yammer) across team boundaries. +* Establish a common, asynchronous communication platform (e.g., chat based) 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. From 35f20928b5a2b384878f4b077a3b1fe20b7df3b7 Mon Sep 17 00:00:00 2001 From: Jeff Bailey <776901+jeffabailey@users.noreply.github.com> Date: Fri, 11 Apr 2025 17:32:37 -0700 Subject: [PATCH 11/18] chore: refactor potentially relevant discussions --- .../2-structured/discover-your-innersource.md | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index 44ac468fe..3c21c3569 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -26,12 +26,16 @@ People don't bother looking for internally developed solutions - they might not - might not be maintained - might have poor reusability - if someone put out a SW internally, the expectation is that they wouldn't have time to support it (vs. open source options) +* Difficulty in adding content to the search index makes it hard for people to find anything ## Solution Make it easy to find the reusable code. * 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. +* Consider using existing tools: + * GitHub Enterprise and npmjs have built-in searches on meta-data + * PayPal's Agora project (planned to be open sourced) addresses similar challenges with data source integration * Implement process change to first check for internal solutions for this problem. * Tool with a central view (but people are more inclined to google externally than look internally) * Concierge service (guide) to help product people find stuff. Might not scale but could be helpful in the beginning. @@ -76,14 +80,3 @@ Make it easy to find the reusable code. * Not looking for stuff internally * Don't bother looking * Find it Inside - -## Discussion on - -* Comments may appear in the timeline but not with the file once it is edited (github)? -* https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/60 -* 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. -* 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. -* Github Enterprise and npmjs have built-in searches on meta-data. Enterprise that opts into these tooling will get some of that functi -* Software component(s) are available internally but users can't easily find these. -* 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). -* The company traditionally has been bad at sharing across silos (people don't have the culture of sharing). From b3fe9d176bb75693921c6b003843ce1aa5110dac Mon Sep 17 00:00:00 2001 From: Sebastian Spier Date: Sun, 13 Apr 2025 20:19:00 +0200 Subject: [PATCH 12/18] Move images to subfolder. Lowercase file extension. --- .../source-code-inventory-mockup-dashboard.png} | Bin .../source-code-inventory-mockup-questionnaire.png} | Bin patterns/1-initial/source-code-inventory.md | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) rename assets/img/{source-code-inventory-mockup-dashboard.PNG => source-code-inventory/source-code-inventory-mockup-dashboard.png} (100%) rename assets/img/{source-code-inventory-mockup-questionnaire.PNG => source-code-inventory/source-code-inventory-mockup-questionnaire.png} (100%) diff --git a/assets/img/source-code-inventory-mockup-dashboard.PNG b/assets/img/source-code-inventory/source-code-inventory-mockup-dashboard.png similarity index 100% rename from assets/img/source-code-inventory-mockup-dashboard.PNG rename to assets/img/source-code-inventory/source-code-inventory-mockup-dashboard.png diff --git a/assets/img/source-code-inventory-mockup-questionnaire.PNG b/assets/img/source-code-inventory/source-code-inventory-mockup-questionnaire.png similarity index 100% rename from assets/img/source-code-inventory-mockup-questionnaire.PNG rename to assets/img/source-code-inventory/source-code-inventory-mockup-questionnaire.png diff --git a/patterns/1-initial/source-code-inventory.md b/patterns/1-initial/source-code-inventory.md index 71bca0563..ad3b2b684 100644 --- a/patterns/1-initial/source-code-inventory.md +++ b/patterns/1-initial/source-code-inventory.md @@ -55,7 +55,7 @@ Can you get consistent answers within the Organization to questions like: Mockup dashboard | Mockup questionnaire :-------------------------:|:-------------------------: -![Mockup dashboard](../../assets/img/source-code-inventory-mockup-dashboard.PNG) | ![Mockup questionnaire](../../assets/img/source-code-inventory-mockup-questionnaire.PNG) +![Mockup dashboard](../../assets/img/source-code-inventory/source-code-inventory-mockup-dashboard.png) | ![Mockup questionnaire](../../assets/img/source-code-inventory/source-code-inventory-mockup-questionnaire.png) ### Define a Source Code Strategy Assessment Framework From 211971edf2151f90e245e9a01d1510163deeb814 Mon Sep 17 00:00:00 2001 From: Sebastian Spier Date: Sun, 13 Apr 2025 20:24:24 +0200 Subject: [PATCH 13/18] Use lower case spelling for 'organization' and 'legal entity' --- patterns/1-initial/source-code-inventory.md | 38 ++++++++++----------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/patterns/1-initial/source-code-inventory.md b/patterns/1-initial/source-code-inventory.md index ad3b2b684..72fb8430d 100644 --- a/patterns/1-initial/source-code-inventory.md +++ b/patterns/1-initial/source-code-inventory.md @@ -9,9 +9,9 @@ A unified source code inventory at organization-level addresses these issues, wh ## Problem -Given situations when InnerSource stakeholders do not value source code at the same level as other Organization's assets; when source code strategies are ad-hoc and different among legal entities with little consolidation at Organization-level; then it becomes harder both to select and support the right InnerSource project candidates as well as maximize business value of such a key asset. +Given situations when InnerSource stakeholders do not value source code at the same level as other organization's assets; when source code strategies are ad-hoc and different among legal entities with little consolidation at organization-level; then it becomes harder both to select and support the right InnerSource project candidates as well as maximize business value of such a key asset. -Can you get consistent answers within the Organization to questions like: +Can you get consistent answers within the organization to questions like: * How would you find all source code touched by anyone in your legal entity? * How would you find out who else can also access each of the above? @@ -21,10 +21,10 @@ Can you get consistent answers within the Organization to questions like: ## Context -* You work on Legal Entity within a complex Organization under continuous change (e.g. new acquisitions or changing business priorities). -* You cannot find all source code touched, shared and consumed within the Organization. +* You work on legal entity within a complex organization under continuous change (e.g. new acquisitions or changing business priorities). +* You cannot find all source code touched, shared and consumed within the organization. * You do not have a clear policy on default sharing level when creating a new project (e.g. Open Source, InnerSource or Closed Source). -* You cannot scan significant parts of the Organization's source code looking for duplication, similarity or code smells. +* You cannot scan significant parts of the organization's source code looking for duplication, similarity or code smells. * You do not know the existing ratios of Open Source, innerSource and Closed Source and their trend. * You cannot measure the diversity of contributions and resulting value for a given project. * You cannot identify and optimize tech stack diversity. @@ -32,14 +32,14 @@ Can you get consistent answers within the Organization to questions like: ## Forces -* Fragmentation of source code hosting systems in the Organization. -* Ad-hoc source code strategies scattered across the different Legal Entities in the Organization. +* Fragmentation of source code hosting systems in the organization. +* Ad-hoc source code strategies scattered across the different legal entities in the organization. * Continuously changing map of the relationships between: projects, repositories, products, tech stacks, domains, solutions, platforms, services, components, sub-systems, people, authors, teams, external repositories. -* Diverse software culture of teams across the Organization (e.g. more open to collaboration or more siloed). +* Diverse software culture of teams across the organization (e.g. more open to collaboration or more siloed). ## Solutions -### Set up an Organization-level source code inventory live dashboard +### Set up an organization-level source code inventory live dashboard * Combination of manual and automated input data sources to a single source of truth * API available to add new data sources and extend coverage of the source code repository @@ -59,7 +59,7 @@ Mockup dashboard | Mockup questionnaire ### Define a Source Code Strategy Assessment Framework -* Help to define a source code strategy including an explicit definition of policies at Organization and Legal Entity levels for: +* Help to define a source code strategy including an explicit definition of policies at organization and legal entity levels for: * Inventory * Sharing * Consumption @@ -69,25 +69,25 @@ Mockup dashboard | Mockup questionnaire ## Resulting Context -### For the Organization, Legal Entity and Project maintainers +### For the Organization, Legal Entity and Project Maintainers -* We have explicit policies at Organization and Legal Entity level on source code strategy (e.g. where to create new repository or how to select the right sharing level). -* We can find all source code touched, shared and consumed within the Organization or Legal Entity and take actions as needed. +* We have explicit policies at organization and legal entity level on source code strategy (e.g. where to create new repository or how to select the right sharing level). +* We can find all source code touched, shared and consumed within the organization or legal entity and take actions as needed. * We can measure the diversity of contributions and resulting business value for our project. * We can identify technical debt and determine the priorities for retirement (e.g. dead APIs/source). ### For InnerSource governance -* We can scan significant parts of our Organization's source code looking for opportunities of reuse, duplication, similarity or code smells. -* We know the ratios of Open Source, InnerSource and Closed Source within the Organization so we can steer as needed. +* We can scan significant parts of our organization's source code looking for opportunities of reuse, duplication, similarity or code smells. +* We know the ratios of Open Source, InnerSource and Closed Source within the organization so we can steer as needed. * We can identify and optimize tech stack diversity. -* We can create awareness and culture shift on certain Legal Entities as needed (e.g. ratio of Open Source and InnerSource below average). +* We can create awareness and culture shift on certain legal entities as needed (e.g. ratio of Open Source and InnerSource below average). ## Rationale -It creates a dynamic and extendable single source of truth for repositories to capture, visualize and act on source code repositories across the Organization. That helps to create awareness and focus efforts on the right direction. +It creates a dynamic and extendable single source of truth for repositories to capture, visualize and act on source code repositories across the organization. That helps to create awareness and focus efforts on the right direction. -The Source Code Strategy Assessment Framework helps teams to understand the value of intentional explicit policies on how to manage source code. It helps to create both continuous improvement cycles and references within the Organization of what others are doing. +The Source Code Strategy Assessment Framework helps teams to understand the value of intentional explicit policies on how to manage source code. It helps to create both continuous improvement cycles and references within the organization of what others are doing. ## Known Instances @@ -95,7 +95,7 @@ The Source Code Strategy Assessment Framework helps teams to understand the valu ## References -* Organization and Legal Entity terms as defined in the [InnerSource License Pattern - Glossary](../2-structured/innersource-license.md#glossary). +* "Organization" and "Legal Entity" terms as defined in the [InnerSource License Pattern - Glossary](../2-structured/innersource-license.md#glossary). * Explore using this pattern in combination with the [InnerSource Portal](../2-structured/innersource-portal.md) pattern. ## Status From ba32a05dccc79907bc5621bbeaf339c96bd63917 Mon Sep 17 00:00:00 2001 From: Sebastian Spier Date: Sun, 13 Apr 2025 20:30:20 +0200 Subject: [PATCH 14/18] Reverting my last changes. Was on the wrong branch --- ...ource-code-inventory-mockup-dashboard.PNG} | Bin ...e-code-inventory-mockup-questionnaire.PNG} | Bin patterns/1-initial/source-code-inventory.md | 40 +++++++++--------- 3 files changed, 20 insertions(+), 20 deletions(-) rename assets/img/{source-code-inventory/source-code-inventory-mockup-dashboard.png => source-code-inventory-mockup-dashboard.PNG} (100%) rename assets/img/{source-code-inventory/source-code-inventory-mockup-questionnaire.png => source-code-inventory-mockup-questionnaire.PNG} (100%) diff --git a/assets/img/source-code-inventory/source-code-inventory-mockup-dashboard.png b/assets/img/source-code-inventory-mockup-dashboard.PNG similarity index 100% rename from assets/img/source-code-inventory/source-code-inventory-mockup-dashboard.png rename to assets/img/source-code-inventory-mockup-dashboard.PNG diff --git a/assets/img/source-code-inventory/source-code-inventory-mockup-questionnaire.png b/assets/img/source-code-inventory-mockup-questionnaire.PNG similarity index 100% rename from assets/img/source-code-inventory/source-code-inventory-mockup-questionnaire.png rename to assets/img/source-code-inventory-mockup-questionnaire.PNG diff --git a/patterns/1-initial/source-code-inventory.md b/patterns/1-initial/source-code-inventory.md index 72fb8430d..71bca0563 100644 --- a/patterns/1-initial/source-code-inventory.md +++ b/patterns/1-initial/source-code-inventory.md @@ -9,9 +9,9 @@ A unified source code inventory at organization-level addresses these issues, wh ## Problem -Given situations when InnerSource stakeholders do not value source code at the same level as other organization's assets; when source code strategies are ad-hoc and different among legal entities with little consolidation at organization-level; then it becomes harder both to select and support the right InnerSource project candidates as well as maximize business value of such a key asset. +Given situations when InnerSource stakeholders do not value source code at the same level as other Organization's assets; when source code strategies are ad-hoc and different among legal entities with little consolidation at Organization-level; then it becomes harder both to select and support the right InnerSource project candidates as well as maximize business value of such a key asset. -Can you get consistent answers within the organization to questions like: +Can you get consistent answers within the Organization to questions like: * How would you find all source code touched by anyone in your legal entity? * How would you find out who else can also access each of the above? @@ -21,10 +21,10 @@ Can you get consistent answers within the organization to questions like: ## Context -* You work on legal entity within a complex organization under continuous change (e.g. new acquisitions or changing business priorities). -* You cannot find all source code touched, shared and consumed within the organization. +* You work on Legal Entity within a complex Organization under continuous change (e.g. new acquisitions or changing business priorities). +* You cannot find all source code touched, shared and consumed within the Organization. * You do not have a clear policy on default sharing level when creating a new project (e.g. Open Source, InnerSource or Closed Source). -* You cannot scan significant parts of the organization's source code looking for duplication, similarity or code smells. +* You cannot scan significant parts of the Organization's source code looking for duplication, similarity or code smells. * You do not know the existing ratios of Open Source, innerSource and Closed Source and their trend. * You cannot measure the diversity of contributions and resulting value for a given project. * You cannot identify and optimize tech stack diversity. @@ -32,14 +32,14 @@ Can you get consistent answers within the organization to questions like: ## Forces -* Fragmentation of source code hosting systems in the organization. -* Ad-hoc source code strategies scattered across the different legal entities in the organization. +* Fragmentation of source code hosting systems in the Organization. +* Ad-hoc source code strategies scattered across the different Legal Entities in the Organization. * Continuously changing map of the relationships between: projects, repositories, products, tech stacks, domains, solutions, platforms, services, components, sub-systems, people, authors, teams, external repositories. -* Diverse software culture of teams across the organization (e.g. more open to collaboration or more siloed). +* Diverse software culture of teams across the Organization (e.g. more open to collaboration or more siloed). ## Solutions -### Set up an organization-level source code inventory live dashboard +### Set up an Organization-level source code inventory live dashboard * Combination of manual and automated input data sources to a single source of truth * API available to add new data sources and extend coverage of the source code repository @@ -55,11 +55,11 @@ Can you get consistent answers within the organization to questions like: Mockup dashboard | Mockup questionnaire :-------------------------:|:-------------------------: -![Mockup dashboard](../../assets/img/source-code-inventory/source-code-inventory-mockup-dashboard.png) | ![Mockup questionnaire](../../assets/img/source-code-inventory/source-code-inventory-mockup-questionnaire.png) +![Mockup dashboard](../../assets/img/source-code-inventory-mockup-dashboard.PNG) | ![Mockup questionnaire](../../assets/img/source-code-inventory-mockup-questionnaire.PNG) ### Define a Source Code Strategy Assessment Framework -* Help to define a source code strategy including an explicit definition of policies at organization and legal entity levels for: +* Help to define a source code strategy including an explicit definition of policies at Organization and Legal Entity levels for: * Inventory * Sharing * Consumption @@ -69,25 +69,25 @@ Mockup dashboard | Mockup questionnaire ## Resulting Context -### For the Organization, Legal Entity and Project Maintainers +### For the Organization, Legal Entity and Project maintainers -* We have explicit policies at organization and legal entity level on source code strategy (e.g. where to create new repository or how to select the right sharing level). -* We can find all source code touched, shared and consumed within the organization or legal entity and take actions as needed. +* We have explicit policies at Organization and Legal Entity level on source code strategy (e.g. where to create new repository or how to select the right sharing level). +* We can find all source code touched, shared and consumed within the Organization or Legal Entity and take actions as needed. * We can measure the diversity of contributions and resulting business value for our project. * We can identify technical debt and determine the priorities for retirement (e.g. dead APIs/source). ### For InnerSource governance -* We can scan significant parts of our organization's source code looking for opportunities of reuse, duplication, similarity or code smells. -* We know the ratios of Open Source, InnerSource and Closed Source within the organization so we can steer as needed. +* We can scan significant parts of our Organization's source code looking for opportunities of reuse, duplication, similarity or code smells. +* We know the ratios of Open Source, InnerSource and Closed Source within the Organization so we can steer as needed. * We can identify and optimize tech stack diversity. -* We can create awareness and culture shift on certain legal entities as needed (e.g. ratio of Open Source and InnerSource below average). +* We can create awareness and culture shift on certain Legal Entities as needed (e.g. ratio of Open Source and InnerSource below average). ## Rationale -It creates a dynamic and extendable single source of truth for repositories to capture, visualize and act on source code repositories across the organization. That helps to create awareness and focus efforts on the right direction. +It creates a dynamic and extendable single source of truth for repositories to capture, visualize and act on source code repositories across the Organization. That helps to create awareness and focus efforts on the right direction. -The Source Code Strategy Assessment Framework helps teams to understand the value of intentional explicit policies on how to manage source code. It helps to create both continuous improvement cycles and references within the organization of what others are doing. +The Source Code Strategy Assessment Framework helps teams to understand the value of intentional explicit policies on how to manage source code. It helps to create both continuous improvement cycles and references within the Organization of what others are doing. ## Known Instances @@ -95,7 +95,7 @@ The Source Code Strategy Assessment Framework helps teams to understand the valu ## References -* "Organization" and "Legal Entity" terms as defined in the [InnerSource License Pattern - Glossary](../2-structured/innersource-license.md#glossary). +* Organization and Legal Entity terms as defined in the [InnerSource License Pattern - Glossary](../2-structured/innersource-license.md#glossary). * Explore using this pattern in combination with the [InnerSource Portal](../2-structured/innersource-portal.md) pattern. ## Status From 17d676254bdb5953a7f290e28a37b1dbdd33c01a Mon Sep 17 00:00:00 2001 From: Jeff Bailey <776901+jeffabailey@users.noreply.github.com> Date: Fri, 23 May 2025 06:05:08 -0700 Subject: [PATCH 15/18] Update patterns/2-structured/discover-your-innersource.md Co-authored-by: Isabel Drost-Fromm --- patterns/2-structured/discover-your-innersource.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index 71ec72ba8..5d1eff9cb 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -42,7 +42,7 @@ Make it easy to find the reusable code. * Need some very visible lighthouse projects that start using InnerSource components and make positive statements about the InnerSource program. * Establish a common, asynchronous communication platform (e.g., chat based) 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. + * When using common chat systems, start with one single chat channel for the InnerSource project, only split into multiple channels by topic once traffic gets too high. This way the channel feels alive. In addition the number of input channels to watch is kept at a minimum for the host team. * 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. * 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. * 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). - see [Gig Marketplace](../2-structured/gig-marketplace.md) From 45ba35d83b189e6e2d16ef707862271bae5cdda3 Mon Sep 17 00:00:00 2001 From: Sebastian Spier Date: Fri, 23 May 2025 19:03:07 +0200 Subject: [PATCH 16/18] Remove acroyum 'SW' --- patterns/2-structured/discover-your-innersource.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index 5d1eff9cb..cee084363 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -22,10 +22,10 @@ People don't bother looking for internally developed solutions - they might not * Users may not know there are common places to find internally developed solutions. * People don't expect to find solutions internally. * Many silos in the company; difficult to reach the developer base across those silos (a communications problem). -* People might not want to use internal SW because they don't believe it will be helpful +* People might not want to use internal software because they don't believe it will be helpful - might not be maintained - might have poor reusability - - if someone put out a SW internally, the expectation is that they wouldn't have time to support it (vs. open source options) + - if someone put out a software internally, the expectation is that they wouldn't have time to support it (vs. open source options) * Difficulty in adding content to the search index makes it hard for people to find anything ## Solution From fad79b6ca68a2fcf015ef489e1fd6ae0281cd28f Mon Sep 17 00:00:00 2001 From: Sebastian Spier Date: Sat, 24 May 2025 21:44:28 +0200 Subject: [PATCH 17/18] Agora was renamed to SeazMe - adding a link --- patterns/2-structured/discover-your-innersource.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index cee084363..983fc9b22 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -35,7 +35,7 @@ Make it easy to find the reusable code. * 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. * Consider using existing tools: * GitHub Enterprise and npmjs have built-in searches on meta-data - * PayPal's Agora project (planned to be open sourced) addresses similar challenges with data source integration + * PayPal's [SeazMe](https://github.com/paypal/seazme) project addresses similar challenges with data source integration * Implement process change to first check for internal solutions for this problem. * Tool with a central view (but people are more inclined to google externally than look internally) * Concierge service (guide) to help product people find stuff. Might not scale but could be helpful in the beginning. From da655c29b6cd0b05fa0e212b8c08fe3c87100ff6 Mon Sep 17 00:00:00 2001 From: Sebastian Spier Date: Sat, 24 May 2025 22:01:22 +0200 Subject: [PATCH 18/18] Adding SeazMe link to another pattern as well --- patterns/1-initial/include-product-owners.md | 2 +- patterns/2-structured/discover-your-innersource.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/patterns/1-initial/include-product-owners.md b/patterns/1-initial/include-product-owners.md index 1f0e64360..27d2ff6ec 100644 --- a/patterns/1-initial/include-product-owners.md +++ b/patterns/1-initial/include-product-owners.md @@ -57,7 +57,7 @@ Key Performance Indicators (KPIs) for Product Owners are primarily product focus ## Known Instances -* 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. +* 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. ## Status diff --git a/patterns/2-structured/discover-your-innersource.md b/patterns/2-structured/discover-your-innersource.md index 983fc9b22..954759008 100644 --- a/patterns/2-structured/discover-your-innersource.md +++ b/patterns/2-structured/discover-your-innersource.md @@ -35,7 +35,7 @@ Make it easy to find the reusable code. * 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. * Consider using existing tools: * GitHub Enterprise and npmjs have built-in searches on meta-data - * PayPal's [SeazMe](https://github.com/paypal/seazme) project addresses similar challenges with data source integration + * PayPal's [SeazMe](https://github.com/paypal/seazme) project (previously called Agora) addresses similar challenges with data source integration * Implement process change to first check for internal solutions for this problem. * Tool with a central view (but people are more inclined to google externally than look internally) * Concierge service (guide) to help product people find stuff. Might not scale but could be helpful in the beginning.