-
Notifications
You must be signed in to change notification settings - Fork 47
WIP intro principles #44
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,67 @@ | ||||||||||
| This file holds the text to accompany the [InnerSource Principles](https://www.safaribooksonline.com/videos/introduction-to-innersource/9781492041504/9781492041504-video321610) video. | ||||||||||
| This accompanying text will appear as a part of the learning path (like [this example](https://www.safaribooksonline.com/learning-paths/learning-path-lean/9781491999738/9781491946527-/part01ch01.html)). | ||||||||||
|
|
||||||||||
| # Inner Source Principles | ||||||||||
|
|
||||||||||
| Every company, team, project, and individual is different. | ||||||||||
| Because of that fact, the exact way that the concept of inner source works will vary from one situation to another. | ||||||||||
| At its core, however, are four principles that form the bedrock of any successful instance of inner source. | ||||||||||
| These principles have inspiration in successful open source projects and must be respected and present in order for inner source to achieve the benefits described earlier. | ||||||||||
|
|
||||||||||
| The principles are: | ||||||||||
| * **Openness** | ||||||||||
| * **Transparency** | ||||||||||
| * **Prioritized Mentorship** | ||||||||||
| * **Voluntary Code Contribution** | ||||||||||
|
|
||||||||||
| Let's take a look at each of these principles in more detail. | ||||||||||
|
|
||||||||||
| ## Openness | ||||||||||
|
|
||||||||||
| In being open, a project is set up in such a way that contributing is as frictionless as possible. | ||||||||||
| Projects should be discoverable and well documented. | ||||||||||
| Anyone within an organization should be able to find them and ramp up without an inordinate amount of direct guidance from host team members. | ||||||||||
| Host team contact information should be prevalent with as many channels as makes sense for the project. | ||||||||||
| Host team intentions to inner source their project should be broadcast through relevant organization channels. | ||||||||||
|
|
||||||||||
| By no means is the above an exhaustive list. Project openness will typically be directly related to how successful a project is | ||||||||||
| in terms of inner sourcing: The more open it is, the less barriers are put in place for prospective contributors. The less open | ||||||||||
| it is, the more difficult it becomes for anyone to contribute. | ||||||||||
|
|
||||||||||
| ## Transparency | ||||||||||
|
|
||||||||||
| In order for guest teams to be able to contribute meaningfully to a project, the host team must be _transparent_. | ||||||||||
| This means that guest teams should be able to have an understanding of: | ||||||||||
|
|
||||||||||
| * The product and its direction | ||||||||||
| * Outstanding feature requirements | ||||||||||
| * Progress on feature requirements | ||||||||||
| * Decision making of the host team | ||||||||||
|
|
||||||||||
| When possible, the above should be communicated in such a way that does lend itself to tribal knowledge. | ||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't entirely catch what this sentence is supposed to purvey. Can this be formulated differently?
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @rrrutledge What I did not get here (and probably turned into a sentence that sounded much more harsh than what was intended) was the reference to 'tribal knowledge'. I was wondering if that could be phrased differently.
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @lenucksi "Tribal knowledge" typically leans towards the core team overall knowledge of the project code and direction that may not be "common knowledge" for those outside of the core team. I totally get it but it probably should be written in a way that anyone reading the principles should understand without question.
Suggested change
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sounds more understandable to me. I turned the suggestion in your comment into a commit suggestion. |
||||||||||
|
|
||||||||||
| ## Prioritized Mentorship | ||||||||||
|
|
||||||||||
| _Mentorship_ from host team to guest team via trusted committers is a key aspect of inner source. | ||||||||||
| Contributors on guest teams are upleveled so that they understand enough about the host team system to change it successfully. | ||||||||||
| In the process of doing so, they come to better understand the host team system as a general consumer. | ||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What does system refer to here? The technical artifacts of the project, the team's processes or the entire socio-technical construct that the inner source project in question is?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How about adding software system to make this clearer then?
Suggested change
Suggested change
|
||||||||||
| They can use it more effectively and help other consumers to do so as well. | ||||||||||
|
|
||||||||||
| It's critical that this mentorship for contributors is _Prioritized_ by the host team. | ||||||||||
| The host team should strive to make time to mentor guest team contributors _at the time that the contributor needs it_ as opposed to when it's convenient to the host team. | ||||||||||
lenucksi marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||
| At times at may be a culture change for engineers on the host team to spend time helping others to code rather than just coding themselves. | ||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Looks like a typo to me.
Suggested change
|
||||||||||
| This mentorship is valuable to both the individual contributor and the host, and it is worth doing well. | ||||||||||
| It proves to be mutually beneficial in the long run, by improving the code, the contributor model and forging or | ||||||||||
| improving relationships within an organization that may not have existed otherwise. | ||||||||||
| Open source readily recognizes this point and considers it as an honor to achieve trusted committership on a project. | ||||||||||
|
|
||||||||||
| ## Voluntary Code Contribution | ||||||||||
|
|
||||||||||
| The first word _Voluntary_ means that engagement in inner source from both the guest and host teams occurs of their own free will. | ||||||||||
| The guest team voluntarily donates code to the host team and the host team voluntarily accepts it. | ||||||||||
| This opt-in nature means that each team needs to be certain that their involvement adds value to the others' objectives. | ||||||||||
| Never is a host team required to accept a contribution that isn't in ultimate alignment with their overall mission. | ||||||||||
| Never is a guest team required to submit a contribution that doesn't ultimately further their own mission and priorities. | ||||||||||
|
|
||||||||||
| The word _Code_ emphasizes that the collaboration between guest and host goes all the way to the code. | ||||||||||
| Guest involvement in opening issues, updating requirements, fixing docs, etc. is good, but collaboration needs to reach as far as submitting code to achieve all of the benefits that we've discussed. | ||||||||||
Uh oh!
There was an error while loading. Please reload this page.