Skip to content

Pattern: InnerSource License - #147

Merged
lenucksi merged 11 commits into
InnerSourceCommons:masterfrom
spier:pattern/innersource-license
May 5, 2020
Merged

Pattern: InnerSource License#147
lenucksi merged 11 commits into
InnerSourceCommons:masterfrom
spier:pattern/innersource-license

Conversation

@spier

@spier spier commented Apr 12, 2020

Copy link
Copy Markdown
Member

InnerSource License pattern. Implements #138.

This has already gone through 3 iterations between Cornelius and myself (Sebastian).
We tried to use the Pattern template to the best of our knowledge.

We would like to get this merged into master as quickly as possible, so that Cornelius can get feedback from a broader audience, and hopefully also hear from companies that have used similar approaches.

If it speeds up the merge to master, we can also post this Pattern as "Pattern Drafts (proven, not yet fully reviewed)".

@spier

spier commented Apr 12, 2020

Copy link
Copy Markdown
Member Author

@cornelius this is the result of our work in the gDoc, converted to markdown. Pending review from others in the InnerSourceCommons Patterns community.

@lenucksi lenucksi added the 📖 Type - Content Work Working on contents is the main focus of this issue / PR label Apr 13, 2020
@spier

spier commented Apr 15, 2020

Copy link
Copy Markdown
Member Author

@lenucksi how would I best go about finding a reviewer for this PR?

@maxcapraro maxcapraro left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Wow. I am really excited about this pattern. Great great great work, @spier!

I added some thoughts and comments. At times, I get a bit pedantic about writing texts (habbit from my day job) - so please stop me where I went overboard.

One additional thing that would be great: Do you think you could win Schlomo or Cornelius to also perform a review? :)

Comment thread innersource-license.md Outdated
Comment thread innersource-license.md Outdated
Comment thread innersource-license.md
Comment thread innersource-license.md
Comment thread innersource-license.md Outdated
Comment thread innersource-license.md Outdated
Comment thread innersource-license.md Outdated
Comment thread innersource-license.md Outdated
Comment thread innersource-license.md
Comment thread innersource-license.md Outdated
@spier

spier commented Apr 18, 2020

Copy link
Copy Markdown
Member Author

Thanks. I will take a look at your feedback.

Cornelius has written this thing with me ;) So I don’t think he needs to review it again.

@maxcapraro

maxcapraro commented Apr 18, 2020

Copy link
Copy Markdown
Member

Cornelius has written this thing with me ;) So I don’t think he needs to review it again.

True that :) Congrats on this very good initial version to you as well, Cornelius!

@spier

spier commented Apr 19, 2020

Copy link
Copy Markdown
Member Author

@maxcapraro thanks for the detailed review.

Unfortunately there were only a few "easy merges" in your suggestions so I often had to ask clarifying questions.

To get this PR merged to master I would suggest these next steps:

  • please check my feedback above and resolve the threads where you are happy to leave things as they are (to bring down the number of open threads to a reasonable level)
  • we mention Cornelius explicitly on open threads where we want his input on. After a deadline (say 2 weeks) we take what we have at that point and merge the "best possible iteration" of this into master
  • if you want to harden this pattern through a review by companies that have applied similar patterns, I would suggest opening a new issue for that. That would become easier as well once this PR is in master
  • if you want to pull out the InnerSource Context (AbstractSuperContext) from the patterns, I would suggest opening a separate issue for that too

What do you think?

spier and others added 3 commits April 19, 2020 10:36
Comment thread README.md Outdated

@lenucksi lenucksi left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think this is good stuff on an important topic. I've added of bunch of comments (unfortunately outside of the review function) and inside the review process.
Quite a few can likely be resolved by means of commit suggestions from existing discussions or just agreements, others possibly by Ctrl-F + Replace.

Happy to merge once all discussions are resolved.

Comment thread innersource-license.md Outdated
Comment thread innersource-license.md Outdated
Co-authored-by: Maximilian Capraro <maxcapraro@users.noreply.github.com>
@spier

spier commented May 1, 2020

Copy link
Copy Markdown
Member Author

Just to confirm the latest status down here as well:

I worked in all feedback, and resolved the open conversations.

Waiting for confirmation on the remaining open conversation above. Once that clears, this PR should be ready to merge.

@cornelius

Copy link
Copy Markdown

Thanks, @spier. The PR looks good to me now. Also thanks to everybody else who chimed in with feedback. I like the result. This is a great first iteration of the pattern.

@gruetter gruetter left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nice pattern, well done guys! I wonder why this wasn't created earlier ;).

Comment thread innersource-license.md
- A large organization (consisting of many legal entities) has many **internal regulations**. Any new agreements that are made have to comply with these regulations, e.g. security, privacy, procurement processes, etc. The volume of regulations can make it difficult to assess whether sharing software between two legal entities is compliant with these regulations, especially when there is no standard procedure.
- If any of the legal entities in the organization has a **business model** that depends on proprietary code and accounting of licensing fees within the organization
- **Company culture** that isn’t used to InnerSource collaboration and sharing code. This results in uncertainty about the rights and obligations when using shared code.
- Freedom over using the software leads to competition, and spread of ownership

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This one' a bit fuzzy to me.

Suggested change
- Freedom over using the software leads to competition, and spread of ownership
- Unregulated use of the software can lead to unclear ownership structures, duplication of improvement effort or unwanted competition

Comment thread innersource-license.md
- **Company culture** that isn’t used to InnerSource collaboration and sharing code. This results in uncertainty about the rights and obligations when using shared code.
- Freedom over using the software leads to competition, and spread of ownership
- There are legal contracts in place which cover the sharing of source code. These contracts are not standardized, so they create additional effort in negotiating and understanding for every project. The existing contracts may also not allow sharing source code in an open enough sense to support a true InnerSource approach.
- Alternatively, there are no legal contracts in place but source code is shared informally. That might create uncertainty in cases where clarity about ownership and rights and obligations is needed.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This one is at least partially a duplication of the force above, regarding the consequences of Freedom over using the software"

Comment thread innersource-license.md
It is important to write the InnerSource License such that it truly allows for OpenSource-like collaborations across the boundaries of the involved legal entities. Therefore the 4 freedoms of free software should be integrated into the license.

The License is written as a formal legal document, and can be used as part of contracts between the legal entities to govern the code sharing agreements.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We should mention that an InnerSource license needs to be ratified by the responsible bodies in the respective organisation. If there is no such ratification, the license might not be widely accepted by management ... or developers with a high need for job security.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It might also make sense to mention to not be too strict about what can be done with the SW. We (at Bosch) made that mistake and precluded the use of InnerSource software in Open Source projects later on. This turned out to be a killer criterium for some of our projects and eventually triggered the development of a new version of the license, which took a lot of effort.

Comment thread innersource-license.md
- building communities for collaboration on projects, just like in Open Source

It is worth mentioning that so far the software shared under this InnerSource license is mostly tooling, infrastructure, and tools lower in the stack.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Add Bosch as an known instance, too. Here's my proposal for content:

"The InnerSource initiative at Robert Bosch GmbH was also governed with a license from the beginning in 2009. With over 500 legal entities, sharing software internally was very difficult and time consuming to implement in a compliant way. InnerSource and specifically the InnerSource license changed that completely. Today, collaboration in software projects governed by their InnerSource license is the de facto standard and widely practiced. Bosch has evolved their license over the years, e. g. to also allow the eventual publication of InnerSource software as Open Source software, which wasn't possible with early versions of their license."

@spier

spier commented May 5, 2020

Copy link
Copy Markdown
Member Author

@gruetter thanks for your feedback. The additional info on the "known instances" of this pattern in Bosch will certainly be interesting for the readers.

As this PR has already taken 23 days up to this point, I would like to get the current version merged, and move further modification proposals to separate PRs. e.g. As soon as this PR here is merged, you can open a new PR that adds the "known instance" portion for Bosch.

Hope this approach is ok?

@maxcapraro we got sign-off from Cornelius on the latest version of this pattern (see above). If you could review and resolve the last open conversation thread at the very top, then @lenucksi can merge this PR :)

Thanks.

@maxcapraro maxcapraro left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks @spier and @cornelius :) All my comments were adressed. Thus, I am changing my review status on this PR to approved.

(PS: Some comments by other reviewers are still open and worth adressing)

@lenucksi

lenucksi commented May 5, 2020

Copy link
Copy Markdown
Member

Hi @gruetter and @maxcapraro , thanks your reviews!
I see that there are great proposals (and more) for additional content @gruetter - could you please turn them into a separate pull request to extend this pattern? And link to the new one from here?

@lenucksi
lenucksi merged commit fafc6c6 into InnerSourceCommons:master May 5, 2020
@spier
spier deleted the pattern/innersource-license branch May 5, 2020 08:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📖 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.

5 participants