Skip to content
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/open-source-trumps-innersource #46

Merged
merged 20 commits into from
Feb 5, 2021

Conversation

InnerSrcAdmin
Copy link
Contributor

People find the InnerSource project but, after all things are considered, even if the InnerSource component meets their needs, they still go with the open source component.

NEXT STEP: Needs to be revised and reviewed
NOTES: Needs further clarification - 2016-10-27

open-source-trumps-innersource.md Outdated Show resolved Hide resolved

## Forces
* There is a perception that the open source components are higher quality and more reusable. The channels to get any needed changes are more obvious with open source than with internal components. Can easily grab the open source whereas internally developed component has less visibility and ease of availability. (This could be separate Pattern). All things equal, they gravitate towards open source.
* Open source should be voluntary; mandating people to use internally developed software goes against open source principles.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I personally don't think this is a strong force. IMHO, voluntariness pertains more to the development of and making contributions to OSS, not necessarily to using it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could any of you two (@gruetter @NewMexicoKid) suggest any possible commit suggestion to modify this or resolve this discussion?

open-source-trumps-innersource.md Outdated Show resolved Hide resolved
## Statement of Problem
* People find the InnerSource project but, after all things are considered, even if the InnerSource component meets their needs, they still go with the open source component.
* ORIGINAL: Developers tend to select open source components rather than internally developed components, which results in poorer quality components or also makes it difficult to sustain internal component development.
* NEW: Different BLs are selecting different SW components to do the same function, resulting in inconsistencies in the user experience.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might this be a problem for a dedicated pattern/donut? I feel this is not so much related to OSS trumping InnerSource.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You meant that this one could go to it's own pattern instead, right?

Different Business Lines (BLs) are selecting different SW components to do the same function, resulting in inconsistencies in the user experience.

Will leave this thread open but I think it should not prevent us from merging this PR.

open-source-trumps-innersource.md Outdated Show resolved Hide resolved
@nyeates nyeates added 2 - Do 1st Review 3-validated Patterns proven in multiple cases with advanced requirements (Please see our contribution handbook) and removed 5 - Draft labels Mar 11, 2017
Cleaned up the pattern. Ready for review #1. 2017-05-10
open-source-trumps-innersource.md Outdated Show resolved Hide resolved
open-source-trumps-innersource.md Outdated Show resolved Hide resolved

## Context
* People look for software through external search engines.
* Different Business Lines (BLs) are selecting different SW components to do the same function, resulting in inconsistencies in the user experience.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment doesn't have to be addressed right now, but in the log run it would be nice if our patterns had consistent terminology (glossary) for terms like these (Business Lines).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An additional effect possibly worth mentioning is that this will also result in more effort for procurement and supplier management.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've referenced @rrrutledge point into #170.

I've seen @gruetter and @NewMexicoKid agreeing on the possible need to mention the procurement and supplier management point. Can any of you two create a commit suggestion or a commit around this?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keeping this comment open, to make it easier to find this comment after the PR is merged.

Putting each sentence on its own line.  Doesn't change the look of the rendered markdown, but makes the document easier to review and comment.
Copy link
Contributor

@rrrutledge rrrutledge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These thoughts are great, Nick. I like the broad themes and big-picture items that you've outlined here and am excited to discuss more of the details.

## Forces
* There is a perception that the open source components are higher quality and more reusable. The channels to get any needed changes are more obvious with open source than with internal components. Can easily grab the open source whereas internally developed component has less visibility and ease of availability. (This could be separate Pattern). All things equal, they gravitate towards open source.
* Open source should be voluntary; mandating people to use internally developed software goes against open source principles.
* Internally developed components should have advantages over competing open source. If you can clearly demonstrate this, it can be persuasive.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line seems like part-Context (Internally developed components should have advantages over competing open source) and part-Solution (If you can clearly demonstrate this, it can be persuasive.) rather than Forces.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rrrutledge how about: Internally developed components can be made more robust and better suited towards corporate needs. Reasons for preferring inner source over open source alternatives might include issues with the open source license, use of proprietary and/or patented components, and functional/competitive advantages. The more that such internal components are used within a company, the better the ROI for the inner source development efforts. On the other hand, open source advances can sometimes leap frog internal development and without periodic assessment, it can be difficult to know when to stop investment in inner source development and switch to the adoption of open source components.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cannot tell if this thread has been worked into the latest version of the pattern already. Will leave the tread open.

open-source-trumps-innersource.md Outdated Show resolved Hide resolved
open-source-trumps-innersource.md Outdated Show resolved Hide resolved
* Internally developed components should have advantages over competing open source. If you can clearly demonstrate this, it can be persuasive.
* Part of the reason this is a problem: if different teams are picking different open source components, the situation makes interoperability and integration more difficult; and this could potentially impact the user experience (inconsistency in behaviors).
* Depending on the regulations within a company, it might be easier to use a corporate licensed, InnerSource component than an open source component which is licensed in a way that requires the company to disclose IP.
* There may be many silos in the company; it would then be difficult to reach the developer base across those silos.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's unclear to me what these two last bullet points are trying to get at or how they are uniquely appropriate to describing this pattern?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have the same problem.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the point of this force is that it can be difficult to fight perception among dispersed and silo'd engineering staff and to communicate (1) that the inner source project exits, (2) that it has advantages over competing open source, (3) that there are legitimate reasons for preferring the inner source over competing open source software.

* It can be hard to find stuff in github (especially if names are cryptic and keywords aren't used). See [Poor Naming Conventions](https://github.com/paypal/InnerSourcePatterns/pull/59).

## Sketch
See figure 1 in https://drive.google.com/open?id=0B7_9iQb93uBQNlJ0YU5wWmpWYUU
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I understand the diagram (and this article) right, then it looks like the diagram suggests that it is preferable to use an inner source project over an open source project in areas of software that are differentiating to the company's core business?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you think about the following:

  • Add this .jpg to the repo maybe in /assets/ or something similar such that it can be rendered with the pattern? Also, who created the image and are there possibly any copyrights attached to it that we need to take into account?
  • Should there be some phrasing adding the insight from the image into the text?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "owner" of the picture in gDrive is @NewMexicoKid and it was created 11.10.2016, 18:33.
Not sure if that helps us to figure out where it originally came frame?

I also did a google image search for the picture and parts of the text, but could find anything.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

open-source-trumps-innersource.md Outdated Show resolved Hide resolved
open-source-trumps-innersource.md Outdated Show resolved Hide resolved
## Sketch
See figure 1 in https://drive.google.com/open?id=0B7_9iQb93uBQNlJ0YU5wWmpWYUU

## Resolution
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A lot of these suggested resolutions are (gut-feel) very large undertakings and outside the realm of reasonableness to just go and do. I agree that they would help the situation your describing, but feel that they are large to the point of their not having practical utility in including them here as independent items. Perhaps some of them need to be their own pattern and linked to from here? Or perhaps the need to include such large items as a solution indicates that the problem space that this pattern is trying to address is too broad?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rrrutledge : Are you ok with merging with the current state of the resolution section (there has been a slight rework), or do you think further rework is needed before merging?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While I agree that the Solutions section is asking for a lot right now, I suggest that we just leave this as is and get the pattern published as Initial. That will make it easier for others to find, read, and improve this pattern in the future if anybody has actually found a working solution for this problem. (right now we don't have a Known Instance yet, so this isn't a proven solution yet)

@maxcapraro maxcapraro added the Stale We mark issues as stale after 90 days of inactivity. This does not make any judgement about value. label Apr 21, 2020
@spier
Copy link
Member

spier commented Aug 11, 2020

Hi @NewMexicoKid @gruetter @rrrutledge (mentioning you as you spent quite some time on this PR already).

We have reworked the maturity levels of the InnerSource patterns. The new levels make it more explicit what quality standards are expected for each level. With that we will also try to get PRs merged into master faster.

Status of this pattern:

We have currently categorized the Pattern in this PR as maturity level Level 2 - Structured.

For that level we have two requirements:

  • is validated by at least one known instance
    • we suspect that this is already true, as this pattern was previously listed in the group Pattern Drafts (proven, not yet fully reviewed)
  • complies with the patterns format
    • not sure about this, especially as the pattern format may have evolved since this PR was opened

How to get this PR merged?

  • Could you confirm if the status assessment above sounds correct to you?
  • If this pattern does not match the patterns format yet, could you adapt it accordingly?
  • With that we should be able to merge this PR to master. That will also allow other contributors to level up this pattern further in subsequent PRs/contributions in the future.

I have no time to work on this, what to do?

As this PR is open for a while, it would be completely understandable if your priorities have shifted and you don't time to work on this anymore.

In that case please just let us know in a comment below. Then we can decide what to do with this PR on our own.

Thank you for your help! 👍

@lenucksi
Copy link
Member

Thanks @spier for adding this update.
Since this pull request has seen a lot of interesting discussions and still has them open and unresolved I would be happy if the persons involved in these discussions could take a look to see if they are resolvable, e.g. by commit suggestions or resolve them if they deem them resolved such that we'd not loose insights by merging with open discussions.
I think @NewMexicoKid @gruetter and @rrrutledge might be interested here.

@rrrutledge
Copy link
Contributor

Thanks for this message, @lenucksi. I'm un-opinionated about what happens to my comments :)

Copy link
Contributor

@gruetter gruetter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pattern looks good now and ready to merge, IMHO. I have not yet heard of a company which successfully adopted the core of the solution (mandate considering IS SW before OSS). The pattern conforms to the common structure, though. Therefore, I think the proper maturity level is 2-structured, @spier , @lenucksi . I'll update the PR tag accordingly.

open-source-trumps-innersource.md Outdated Show resolved Hide resolved

## Context
* People look for software through external search engines.
* Different Business Lines (BLs) are selecting different SW components to do the same function, resulting in inconsistencies in the user experience.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An additional effect possibly worth mentioning is that this will also result in more effort for procurement and supplier management.

open-source-trumps-innersource.md Outdated Show resolved Hide resolved
open-source-trumps-innersource.md Outdated Show resolved Hide resolved
* Internally developed components should have advantages over competing open source. If you can clearly demonstrate this, it can be persuasive.
* Part of the reason this is a problem: if different teams are picking different open source components, the situation makes interoperability and integration more difficult; and this could potentially impact the user experience (inconsistency in behaviors).
* Depending on the regulations within a company, it might be easier to use a corporate licensed, InnerSource component than an open source component which is licensed in a way that requires the company to disclose IP.
* There may be many silos in the company; it would then be difficult to reach the developer base across those silos.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have the same problem.

open-source-trumps-innersource.md Outdated Show resolved Hide resolved
open-source-trumps-innersource.md Outdated Show resolved Hide resolved
open-source-trumps-innersource.md Outdated Show resolved Hide resolved
open-source-trumps-innersource.md Outdated Show resolved Hide resolved
## Sketch
See figure 1 in https://drive.google.com/open?id=0B7_9iQb93uBQNlJ0YU5wWmpWYUU

## Resolution
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rrrutledge : Are you ok with merging with the current state of the resolution section (there has been a slight rework), or do you think further rework is needed before merging?

@gruetter gruetter added 2-structured Patterns with existing instances (Please see our contribution handbook for details) and removed 3-validated Patterns proven in multiple cases with advanced requirements (Please see our contribution handbook) Stale We mark issues as stale after 90 days of inactivity. This does not make any judgement about value. labels Sep 21, 2020
Copy link
Member

@lenucksi lenucksi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for the review and work towards resolving open discussions @gruetter, @NewMexicoKid and @rrrutledge!

Pattern looks good now and ready to merge, IMHO. I have not yet heard of a company which successfully adopted the core of the solution (mandate considering IS SW before OSS). The pattern conforms to the common structure, though. Therefore, I think the proper maturity level is 2-structured, @spier , @lenucksi . I'll update the PR tag accordingly.

The contribution handbook has this as a verification requirement for 2-structured:

Is validated by at least one known instance

  • Alternatively: key elements of the pattern have been validated in separate contexts and, in consequence, it is justified to believe the full solution will function

What are the key elements that have been validated in separate contexts here if there is no successful instance of deployment?

I've also added a few review comments and commit suggestion after reading the current result. This is a very interesting pattern. 😄

And as a last element: Independent of this being merged as 2-structured or 1-initial we need a follow-up pull request changing moving the file to the according directory structure.


## Forces
* There is a perception that the open source components are higher quality and more reusable. The channels to get any needed changes are more obvious with open source than with internal components. Can easily grab the open source whereas internally developed component has less visibility and ease of availability. (This could be separate Pattern). All things equal, they gravitate towards open source.
* Open source should be voluntary; mandating people to use internally developed software goes against open source principles.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could any of you two (@gruetter @NewMexicoKid) suggest any possible commit suggestion to modify this or resolve this discussion?

* It can be hard to find stuff in github (especially if names are cryptic and keywords aren't used). See [Poor Naming Conventions](https://github.com/paypal/InnerSourcePatterns/pull/59).

## Sketch
See figure 1 in https://drive.google.com/open?id=0B7_9iQb93uBQNlJ0YU5wWmpWYUU
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you think about the following:

  • Add this .jpg to the repo maybe in /assets/ or something similar such that it can be rendered with the pattern? Also, who created the image and are there possibly any copyrights attached to it that we need to take into account?
  • Should there be some phrasing adding the insight from the image into the text?

open-source-trumps-innersource.md Outdated Show resolved Hide resolved

## Context
* People look for software through external search engines.
* Different Business Lines (BLs) are selecting different SW components to do the same function, resulting in inconsistencies in the user experience.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've referenced @rrrutledge point into #170.

I've seen @gruetter and @NewMexicoKid agreeing on the possible need to mention the procurement and supplier management point. Can any of you two create a commit suggestion or a commit around this?

open-source-trumps-innersource.md Outdated Show resolved Hide resolved
open-source-trumps-innersource.md Outdated Show resolved Hide resolved
open-source-trumps-innersource.md Outdated Show resolved Hide resolved
@lenucksi lenucksi added the 📖 Type - Content Work Working on contents is the main focus of this issue / PR label Sep 28, 2020
@spier
Copy link
Member

spier commented Jan 31, 2021

I have reviewed this PR in detail, following this approach:

  • Compared all comment threads with the current content of the pattern, and resolved the ones that had already been incorporated.
  • For the remaining threads I worked in the feedback to the best of my ability and resolved those threads as well.
  • If I didn't feel comfortable making a judgement call I left the treads open.

I opted to move this pattern to 1-initial because it doesn't have a Known Instance as @lenucksi pointed out. Also content-wise it is more an initial idea than a fully thought out pattern.

I think this pattern has higher chances of improving by getting more readership, which is easier to achieve once merged.

Therefore my suggestion for getting this PR merged are this:

  • give this a couple of days for other commenters on this thread to review the latest version
  • integrate the sketch image into the pattern according to this comment
  • leave the remaining threads open, even when merging this PR, in case anybody wants to look something up.

Follow a done is better than perfect approach, I will wait until Friday 2021-02-05. Then I will work in any new feedback and get this merged as outlined above.

Any feedback from others is welcome, as always! :)

@spier
Copy link
Member

spier commented Feb 5, 2021

Timer is up :)

Found the original image for the one used in the sketch, and copied it to /assets.

Also added a link to this PR to the pattern, so that anybody working on this in the future can easily find the open conversations in here.

@spier spier merged commit 73c7d11 into master Feb 5, 2021
@spier spier deleted the patch/open-source-trumps-innersource branch February 5, 2021 18:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2-structured Patterns with existing instances (Please see our contribution handbook for details) 📖 Type - Content Work Working on contents is the main focus of this issue / PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants