You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: contributor/01-introduction-article.asciidoc
+6-6
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
-
= Introduction
1
+
==Introduction
2
2
3
-
== The Contributor in InnerSource
3
+
===The Contributor in InnerSource
4
4
5
5
Have you ever been blocked in your next coding task because another team didn't have time to add a feature in their system that you depend on?
6
6
Perhaps after a while you even had to do some extra work in your project to work around the missing feature.
@@ -14,15 +14,15 @@ This person may or may not be part or see themselves as part of the community.
14
14
However, for quite a few people there is a sort of journey that contributors can make from just knowing about the community to using the community's product to interacting with members of the community and finally starting to contribute.
15
15
Finally, some of them may become https://github.com/InnerSourceCommons/InnerSourceLearningPath/blob/master/trusted-committer/01-introduction.md[Trusted Committers].
16
16
17
-
== Relationship to other roles
17
+
=== Relationship to other roles
18
18
19
19
As a Contributor in an InnerSource community you will interact with people playing other roles of InnerSource, such as https://github.com/InnerSourceCommons/InnerSourceLearningPath/blob/master/trusted-committer/01-introduction.md[_Trusted Committer_] or https://github.com/InnerSourceCommons/InnerSourceLearningPath/blob/master/product-owner/01-opening-article.md[_Product Owner_] and possibly with other contributors.
20
20
At times, these roles can be played by the same person, such as Trusted Committer and Product Owner in small grassroots style projects.
21
21
22
22
This section gives you a very short overview of the other two roles, but we'd like to encourage you to read the https://github.com/InnerSourceCommons/InnerSourceLearningPath/blob/master/trusted-committer/01-introduction.md[introductory article of the Trusted Committer role], and we recommended you read the https://github.com/InnerSourceCommons/InnerSourceLearningPath/blob/master/trusted-committer/05-lowering-the-barriers-to-entry.md[Lowering the barriers to entry] article, too, before you delve deeper into the details of the Contributor role in this section.
23
23
You can also watch the videos (https://learning.oreilly.com/videos/the-trusted-committer/9781492047599/9781492047599-video323925[introduction], https://learning.oreilly.com/videos/the-trusted-committer/9781492047599/9781492047599-video323929[lowering the barriers to entry]) instead of reading the articles.
24
24
25
-
=== Trusted Committer
25
+
==== Trusted Committer
26
26
27
27
A Trusted Committer will be your host for your stay in the hosting community.
28
28
They are the gatekeepers to the project's code repository, and will move your contribution closer to production once they accepted it.
@@ -31,7 +31,7 @@ It is their role to mentor you on your way to contributing to their community. T
31
31
They also need to care about product quality, sustainability and project evolution from technical as well as general perspective, about reducing the barrier to making contributions for everyone, as well as about caring for their community in general.
32
32
Caring for the community involves keeping it healthy, upleveling it and its participants, and advocating its needs in their organization.
33
33
34
-
=== Product Owner
34
+
==== Product Owner
35
35
36
36
The role of the https://github.com/InnerSourceCommons/InnerSourceLearningPath/blob/master/product-owner/01-opening-article.md[_Product Owner_] has some similarity with the product owner role of your average project.
37
37
However, there are differences - depending on the size of the project, this role is often filled by the same person that acts as trusted committer.
@@ -44,7 +44,7 @@ Last but not least, someone acting as product owner might have been involved in
44
44
45
45
If you want to learn in more detail what these other roles are about, and we encourage you to do so, we've prepared separate sections about the https://github.com/InnerSourceCommons/InnerSourceLearningPath/blob/master/trusted-committer/01-introduction.md[_Trusted Committer_] and the https://github.com/InnerSourceCommons/InnerSourceLearningPath/blob/master/product-owner/01-opening-article.md[_Product Owner_].
46
46
47
-
== Section overview
47
+
=== Section overview
48
48
49
49
In the following 5 segments you will learn more in detail about the various aspects introduced here.
Copy file name to clipboardexpand all lines: contributor/01-introduction-script.asciidoc
+10-10
Original file line number
Diff line number
Diff line change
@@ -1,28 +1,28 @@
1
1
#Script: The Contributor in InnerSource - Introduction
2
2
3
-
== Duration: 1-3 Mintes
3
+
===Duration: 1-3 Mintes
4
4
5
-
== Actors: Isabel and Johannes
5
+
=== Actors: Isabel and Johannes
6
6
7
-
== Playbook Summary
7
+
=== Playbook Summary
8
8
9
9
How do I best contribute to an InnerSource project? This segement shares a summary of what it means to be an InnerSource Contributor. We'll also give an overview of the upcoming training segements on being a great InnerSource Contributor.
10
10
11
-
== General notes
11
+
=== General notes
12
12
13
13
J: I took quite a bit of text from the article, since I think there are nice consise parts there.
14
14
However I do think that there's lots of opportunity to narrow it down, comparing it to the 1 minute text size that the intro of the intro video had.
15
15
Thus, this is a work draft to have something to start with and discuss.
16
16
17
-
== Script
17
+
=== Script
18
18
19
-
=== Intro
19
+
==== Intro
20
20
21
21
I:
22
22
23
23
J: My name is Johannes Tigges. I am a Principal Engineer at 7Learnings, worked on introducing InnerSource to HERE Technologies and have acted as Contributor and Trusted Commiter in a number of projects within companies and the OpenSource domain.
24
24
25
-
=== Overview
25
+
==== Overview
26
26
27
27
[EDITOR NOTE J: I think the article text is nice here - shortening some of it though given the 1-3 minutes timeframe.]
28
28
@@ -34,7 +34,7 @@ I: With projects that incorporate InnerSource principles, you'll never be blocke
34
34
J: The Contributor role describes a person that makes contributions to the repos of an InnerSource community project.
35
35
This person may or may not be part or see themselves as part of the community although this often changes with continuing involvement with the community.
36
36
37
-
=== Relationship to other roles
37
+
==== Relationship to other roles
38
38
39
39
\-> Possibly slide with the other two role names?
40
40
@@ -56,7 +56,7 @@ J: We would like to encourage you to watch the video introducing the Trusted Com
56
56
57
57
\-> Possibly hinting to some links popping up with the video links ~ YouTube style or just a short link overlay?
58
58
59
-
=== Section overview
59
+
==== Section overview
60
60
61
61
\-> Possbly slide with the segment names, popping up one after another?
62
62
@@ -77,6 +77,6 @@ J: After we've dealt with the personal, the interaction-focused, and the technic
77
77
78
78
I: The last segment will recap what we've learned about being an InnerSource contributor. We'll share how you can continue your learning on InnerSource both with other online videos and involvement with the online InnerSource community.
79
79
80
-
=== Wish people an enjoyable time
80
+
==== Wish people an enjoyable time
81
81
82
82
J: We wish you an enjoyable time watching the following videos and hope you can take away new insights that are valuable to you.
Copy file name to clipboardexpand all lines: contributor/02-becoming-a-contributor-article.asciidoc
+5-5
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
-
= Becoming an InnerSource Contributor
1
+
==Becoming an InnerSource Contributor
2
2
3
3
InnerSource contributors operate outside of regular team boundaries, they are the links crossing organisational silos. As such, they need to be aware of a few common practices that make this work more effective.
4
4
5
-
== Sharing Mindset
5
+
===Sharing Mindset
6
6
7
7
So - you're implementing a new feature for your team's product. You need some functionality to get this feature working. Instead of jumping right into the implementation, slow down for a bit: does this functionality reflect a general issue? Is it something that other teams in your organisation face as well due to the shared business domain? Is this functionality orthogonal to the domain of your project? If any of that applies, then start looking beyond your own team: is there a shared solution that you can use or improve to fit your needs? Should there be one?
8
8
9
-
== Benefits to sharing solutions
9
+
=== Benefits to sharing solutions
10
10
11
11
There is an African proverb stating that "`If you want to go fast, go alone. If you want to go far, go together.`" The same is true for software development teams:
12
12
@@ -26,13 +26,13 @@ This way of working requires a change in mindset for many: instead of waiting fo
26
26
27
27
A good Contributor can comfortably make a call for when it makes both technical and business sense to introduce a dependency and reuse a component instead of duplicating work. They can talk to management to explain the benefits of InnerSource contributions.
28
28
29
-
== Scope of InnerSource contributions
29
+
=== Scope of InnerSource contributions
30
30
31
31
So is Inner__Source__ only about __Source__Code? Of course not. If your team's business depends on an outside component, you want to make sure it's well maintained and well run. As an InnerSource Contributor, you can help the host team in multiple ways. Reporting issues you see when using the component is a valuable contribution. Creating or fixing test cases that show that the code isn't working as expected is valuable. So is improving documentation, so others spend less time using it and contributing to it. Supporting other users, helping with bug triage can be valuable contributions. Improving builds is another example of a valuable contribution.
32
32
33
33
To summarize no contribution is too small to contribute. Here is one that I made
34
34
to https://github.com/tensorflow/models/pull/4784[tensorflow/models]. A simple label change in a graph.
35
35
36
-
== Summary of this article
36
+
=== Summary of this article
37
37
38
38
In this article you learned about what it takes to become a Contributor. We looked at the sharing mindset. We took a deep dive into the benefits of sharing solutions. Finally we had a look at what the scope for InnerSource contributions typically looks like.
Copy file name to clipboardexpand all lines: contributor/02-becoming-a-contributor-script.asciidoc
+4-4
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
#Script: The Contributor in InnerSource - Becoming an InnerSource Contributor
2
2
3
-
== Duration: 3-5 Mintes
3
+
===Duration: 3-5 Mintes
4
4
5
-
== Actors: Isabel and Johannes
5
+
=== Actors: Isabel and Johannes
6
6
7
-
== Playbook Summary
7
+
=== Playbook Summary
8
8
9
9
How do some people seem to find opportunity to contribute to projects everywhere? This segment describes the mindset and habits that create opportunities to become an InnerSource Contributor.
10
10
11
-
== Script
11
+
=== Script
12
12
13
13
I: Welcome back to our video series on the contributor role in InnerSource. In
14
14
this episode you are going to learn more on what it takes to become a successful
Copy file name to clipboardexpand all lines: contributor/03-contributor-ethos-script.asciidoc
+4-4
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,14 @@
1
1
#Script: The Contributor in InnerSource - Contributor Ethos
2
2
3
-
== Duration: 5-6 Mintes
3
+
===Duration: 5-6 Mintes
4
4
5
-
== Actors: Isabel and Johannes
5
+
=== Actors: Isabel and Johannes
6
6
7
-
== Playbook Summary
7
+
=== Playbook Summary
8
8
9
9
A Contributor to an InnerSource project is like a guest in a home. How should a Contributor behave in order to have a pleasant visit and also to receive a return invitation? This segment describes how to be a good Contributor in terms of this guest-in-home analogy.
10
10
11
-
== Script
11
+
=== Script
12
12
13
13
I: In the previous video section we took a closer look at when to become an
14
14
InnerSource contributor. We also investigated which types of contributions
Copy file name to clipboardexpand all lines: contributor/04-mechanics-of-contributing-article.asciidoc
+14-14
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
= Mechanics of contributing
1
+
==Mechanics of contributing
2
2
3
3
Are you ready to start contributing to other teams projects/repos?
4
4
Do you look forward to reducing your blockers not by management escalation but by collaboration?
@@ -13,9 +13,9 @@ This article is separated into the three steps you will likely experience
13
13
If your contribution is larger, you'll possibly go through (some) of these steps repeatedly as you iterate towards your common goal.
14
14
It is very likely that, as you do this, everything will feel more and more natural - maybe you'll even wonder why you were doing anything else before.
15
15
16
-
== Preparing to work
16
+
===Preparing to work
17
17
18
-
=== Lead times
18
+
==== Lead times
19
19
20
20
One key difference is the turnaround time.
21
21
With every first time contribution you are coming to a new (host) team.
@@ -31,7 +31,7 @@ It's better to add more slack time initially - you'll get a feeling about the tu
31
31
Often, you will notice a reduction in turnaround time per host team after making a few successful contributions to that host team.
32
32
This effect can be observed with Open Source as well, you can read more about it <<buildup-of-trust-through-collaboration,here>>.
33
33
34
-
=== Expectation management
34
+
==== Expectation management
35
35
36
36
In your classic teams everyone had an idea of the expected lead times.
37
37
Within an InnerSource context this might not be the case, either due to large time-zone differences (e.g. Seattle, USA with PDT vs Berlin, Germany with CEST) or you not being available full-time as with your original team, even if they are in the same physical location as you are.
@@ -41,7 +41,7 @@ Ideally, you can provide them with a rough estimate when you will likely have ti
41
41
Doing so builds trust by reliability even over non-physical contact, longer distance or otherwise asynchronous media.
42
42
Established trust will allow you to overcome uncertainty bumps in the collaborative road ahead of you.
43
43
44
-
=== Building trust
44
+
==== Building trust
45
45
46
46
InnerSource puts huge weight on written communication - in particular when it comes to project decisions.
47
47
Does that imply that in-person communication is forbidden?
@@ -50,7 +50,7 @@ Clearly not: while written communication shines when it comes to archiving and s
50
50
Try to make time to meet with people behind the names. If possible, try to meet them over your favorite beverage or some food.
51
51
When you're able to hear people speak, when you know their idiosyncrasies, remote collaboration will become easier.
52
52
53
-
=== Avoiding rejection
53
+
==== Avoiding rejection
54
54
55
55
Do you have a large feature that you want to contribute?
56
56
Excellent!
@@ -67,9 +67,9 @@ Ideally, choose the way where artifacts are public, searchable and perma-linkabl
67
67
68
68
This type of high-level, early upfront agreement will save time in rework or rejection of your pull request down the road.
69
69
70
-
== Creating the pull request
70
+
=== Creating the pull request
71
71
72
-
=== Communication and unblocking yourself
72
+
==== Communication and unblocking yourself
73
73
74
74
Great, you've made yourself familiar with the host team's approach and they are looking forward to receive your pull request.
75
75
Which gotchas are there waiting for you now?
@@ -99,21 +99,21 @@ As you work, if you find missing (or out-of-date) documentation, do a favor to t
99
99
Project teams are often happy to receive additions, updates or corrections for their existing documentation - you've just found another opportunity to contribute!
100
100
(Or just politely provide them with a feedback on your experience, and what would have helped you.)
101
101
102
-
=== Crafting the code
102
+
==== Crafting the code
103
103
104
104
We all have our preferences and opinions on code style, indentation, etc.
105
105
The host team's project has them as well.
106
106
Try to adapt and match those preferences even if it's not what you would normally do, and even if it is not specified in the projects' https://github.com/InnerSourceCommons/InnerSourceLearningPath/blob/master/trusted-committer/05-lowering-the-barriers-to-entry.md[_`CONTRIBUTING.md`_].
107
107
If you are unsure, you can always ask politely. Nevertheless, a guest contribution for a feature or a bug fix is not the time to introduce a new way of structuring or formatting project code.
108
108
109
-
== Submitting the pull request
109
+
=== Submitting the pull request
110
110
111
111
You've completed all the essential work, figured out all the quirks of the problem and the project you are contributing to, the time you've planned for the new feature to be used comes nearer, and you want to make sure your contribution gets merged in as fast and smooth as possible.
112
112
113
113
Here's what you can do to make reviewing and merging as easy as possible for the the https://github.com/InnerSourceCommons/InnerSourceLearningPath/blob/master/trusted-committer/01-introduction.md[_Trusted Committer_] and the host team.
114
114
This might actually be pretty similar to what you may already be doing on your own project to get your changes accepted. If that's the case - great, this is going to come natural to you!
115
115
116
-
=== Testing and automation
116
+
==== Testing and automation
117
117
118
118
The basic point here is to enable the https://github.com/InnerSourceCommons/InnerSourceLearningPath/blob/master/trusted-committer/01-introduction.md[_Trusted Committer_] to validate the contribution without your presence and to ensure easy maintainability.
119
119
Imagine you've built a feature or handling of an unsolvable quirk, or an important performance tweak, and your code is not entirely obvious (or might even look hacky / wrong at the first glance).
@@ -129,7 +129,7 @@ To achieve this do the following:
129
129
** If your pull request keeps breaking tests, and you can't find out why after giving it your best shot: try to highlight those tests in the pull request comment, illustrate your current understanding of the problem and ask for help on it.
130
130
* Don't forget your own project that triggered your contribution in the first place. Create a modified build of the shared project with your changes and try it out in your own project that consumes it.
131
131
132
-
=== Documentation and reviewability
132
+
==== Documentation and reviewability
133
133
134
134
You'll want to ensure that your pull request includes any documentation updates that are relevant to your changes.
135
135
Should the documentation live in a different place, make sure you add them there and link to them in your pull request.
@@ -150,9 +150,9 @@ You can still bind them together with an issue that you are referring to.
150
150
*** The host team's responsibility is to create an atmosphere where sharing and discussing not-totally-polished work is possible and welcome. If you can't fail safe, you can't innovate, and collaboration becomes very hard.
151
151
*** Try to balance between asking for a review early and providing meaningful changes to review.
152
152
153
-
== Additional articles
153
+
=== Additional articles
154
154
155
155
Some of these resources might be hidden behind paywalls.
156
156
Sometimes your employer has a subscription enabling access, otherwise public university libraries often allow access for guests, too.
157
157
158
-
=== https://doi.org/10.1109/MS.2013.95[Buildup of trust through collaboration]
158
+
==== https://doi.org/10.1109/MS.2013.95[Buildup of trust through collaboration]
0 commit comments