Skip to content

Commit 34eea26

Browse files
MaineClenucksirrrutledge
authored
Add introduction to product focused learning path. (#508)
* Add introduction to product focused learning path. * Add segment about the relationship of agile and InnerSource * Correct formatting to put each sentence on a separate line * Apply suggestions from code review Co-authored-by: rrrutledge <rrrutledge@users.noreply.github.com> * Add more detailed outline for remaining chapters. * Add discussion of moving maintenance to the host team * Update product/02-innersource-and-agile.md Co-authored-by: rrrutledge <rrrutledge@users.noreply.github.com> Co-authored-by: Johannes Tigges <lenucksi@users.noreply.github.com> Co-authored-by: rrrutledge <rrrutledge@users.noreply.github.com>
1 parent 3e10ca8 commit 34eea26

7 files changed

Lines changed: 240 additions & 1 deletion

product/01-introduction.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Welcome to the learning path section for product managers.
2+
After watching this segment, you will have a better understanding of how InnerSource relates to Agile development best practices.
3+
While we all strive for autonomous teams that can move in an independent way, it is clear that in an complex, interconnected world some dependencies cannot be avoided.
4+
InnerSource provides an alternative to "wait it out", "build workarounds" and "escalate": Teams that need modifications in their dependencies can themselves offer a helping hand.
5+
InnerSource facilitates cross team collaboration.
6+
Through it's focus on written communication, InnerSource values are particularly helpful for teams moving to a remote first mode.
7+
8+
In this Learning Path segment, you will learn where Agile development and InnerSource use similar terminology and even technology - but differ substantially in the details.
9+
Instead of running into common misunderstandings you will be better equipped to spot differences in culture but also in purpose of tools used.
10+
11+
In the fourth part of the segment, you will learn more about the impact of InnerSource on capacity planning: Also with InnerSource there is no free lunch - host teams will have to be aware of mentoring efforts to get contributors up to speed and mentoring them through at least the first few of their contributions.
12+
We will also look at the additional negotiation possibilities that InnerSource brings - keeping the balance of Give and Take.
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# InnerSource and Agile
2+
3+
You want to improve your product and deliver those improvements faster to customers.
4+
You want to make stakeholders happy.
5+
InnerSource helps your team deliver value and maintain autonomy especially in a highly interconnected world.
6+
7+
8+
## Autonomous teams in an interconnected world
9+
10+
* organisations try to deliver value to customers quickly
11+
* to do that lengthy roadmap synchronisation settings are to be avoided
12+
* often those discussions stem from team dependencies: Releases waiting for the testers, deployment waiting for time in the ops team.
13+
As a result, cross functional teams where testing happens close to development and those who build software own running the software have proven to be successful.
14+
* but there is another type of inter-team dependency:
15+
* however we live in an interconnected world: Software written today relies on many dependencies
16+
* Each source code dependency, each call to some service, each external dataset used boils down to a dependency between two teams.
17+
* What if you need changes made to such a dependency?
18+
* Traditional options:
19+
* submit a feature request and wait it out
20+
* build a workaround
21+
* if nothing else helps, escalate your issue
22+
* added benefit of InnerSource:
23+
* help with the solution
24+
25+
* But team members working in each others repositories sounds like chaos?
26+
* InnerSource comes with a set of roles and processes, contributions happen in a structured way
27+
* each InnerSource project has a clear set of trusted committers with clear accountabilities that go beyond simply reviewing code.
28+
* support for more autonomy by being able to fix upstream artifacts without sacrifycing quality due to a clear review process
29+
30+
* Todays world moves towards a remote first culture - InnerSource has a focus on written communication and lends itself easily to remote first.
31+
32+
33+
## Does InnerSource replace Agile?
34+
35+
* short answer: No, not at all.
36+
* Instead they complement each other:
37+
38+
39+
- How InnerSource and Agile complement each other
40+
- Well factored and well tested code leads to faster on-ramp for agile teams, but also helps InnerSource allowing for faster on-ramp for contributors
41+
- A focus on working together and not assigning individual tasks allows for easier on-ramp of contributors.
42+
- Existing local pairing can make cross team pairing and sharing of work in progress easier.
43+
- Existing test driven development means that confidence in contributions is higher.
44+
- XP teams have a "leave the code in better shape than you found it" attitude - mitigates the risk of decline in quality or co-hesion of code when faced with multiple contributions from different sources.
45+
46+
## Common misunderstandings when coming from agile teams
47+
48+
* Impact of language: InnerSource and Agile uses some of the same tooling - for different purposes.
49+
- Product Owner needs to support and align on off-team contributions (rather than strictly work with the Host team).
50+
More to come on this in **InnerSource and Negotiation**.
51+
- Issue trackers: In agile teams pure conversation with the customer.
52+
Only for planning purposes, essentially a replacement for sticky notes on a whiteboard.
53+
In InnerSource for a conversation with the customer, but also for communication between members of a team of trusted committers and contributors working on one common InnerSource component.
54+
Issues in InnerSource become much more lengthy and wordy than in your average organisation.
55+
56+
- Code reviews: In traditional organisations those often serve auditing purposes and for quality control.
57+
They are done when development is finished.
58+
In InnerSource code changes are shared very early in the process, sometimes when nothing more than a rough sketch is done.
59+
The goal is to seek early feedback and mentoring.
60+
This is particularly helpful for teams that are on diverse schedules and cannot find any time for pair programming.
61+
Often teams have the aspiration that nobody walks alone - in reality though this often isn't much more than an aspiration never achieved.
62+
In particular where contributions cross team boundaries.
63+
64+
- Focus on written communication: The goal with InnerSource is for the project to be transparent enough so that developers who are not part of the team can understand project decisions and follow alogthe process of software creation.
65+
As a result all communication needs to be in a place that everyone interested in the conversation can follow along: written, public, searchable and linkable.
66+
The goal is not to reduce disturbing others - the goal is to make all project conversations transparent.
67+
As a result direct messages and mails are to be avoided.
68+
In order to make following conversations easier for everyone, messages related to one InnerSource project should be tracked in one separate communication channel: The goal is not to reach every person in the team of the InnerSource project.
69+
The goal is to find a common shared room for everyone involved with the project where they can have discussions focused on that InnerSource project.
70+
71+
72+
* Focus on written communication does not mean verbal communication is disallowed.
73+
There still needs to be time for a shared cup of coffee.
74+
Make sure though that all project relevant decisions are kept in channels that everyone has access to.
75+
That also may mean to post-pone important project decisions until everyone is back from vacation or waiting for another day or two if those working in another country are now on holiday.
76+
77+
78+
* Impact on trust: All discussions in InnerSource projects are visible to everyone in the company.
79+
Blaming people for their errors, ridiculing them for their mistakes, talking behind their backs about what they did wrong is a sure fire way to kill that trust and leads to the failure of that InnerSource project.
80+
81+

product/03-capacity-planning.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# InnerSource and capacity planning
2+
3+
4+
## Setting expectations
5+
6+
* write down when contributors can expect to hear back from you
7+
* hearing back does not equal merge of pr
8+
* write down which path you prefer for getting a ping if contributors don't hear back from you
9+
10+
11+
## Small vs. large changes
12+
13+
* smaller changes easier to handle, but for small changes that belong together there should be a place where that context is communicated
14+
* "patches welcome" is a nice way out of the "feature request" mental model - but it does still have a cost which is called time to mentor contributors
15+
16+
17+
## Increasing the team around your InnerSource project
18+
19+
* contribtors can become team members and thus increase the time and number of people helping you
20+
* needs a long term vision
21+
* host team needs to have that in mind when mentoring contribtors.
22+
23+
24+

product/04-negotiation.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# InnerSource and negotiation skills
2+
3+
## small vs. large changes
4+
5+
* smaller changes tend to be accepted faster
6+
* easier to review
7+
* less impact - both, positive and negative
8+
* faster to integrate
9+
* ad-hoc for those often works
10+
* sweet spot for drive-by contributions without much coordination
11+
* typically don't cause a lot of friction, typically don't cause escalation
12+
13+
* but sometimes large changes are needed
14+
* learned ad hoc working model breaks
15+
* escalation quickly happens
16+
* needs coordination:
17+
* when does the host team have time for mentoring?
18+
* when does the contributor have time for being mentored?
19+
* does the change fit into the host team vision of the project?
20+
* avoid sending large patches - frustration if they are declined is high on both sides
21+
* coordination not at tech and business level separately but preferably with everyone at the same table - think of one async communication platform for the InnerSource project.
22+
23+
## Coordination
24+
25+
* in particular larger changes need coordination
26+
* make sure host team has time for mentoring
27+
* anticipate longer waiting time otherwise
28+
29+
* coordinate common understanding of the roadmap and vision of the InnerSource project
30+
* make sure that design, architecture and performance requirements are clear to everyone
31+
* essentially everything that is clear implicitly when working in a local team
32+
* make time for automated quality checks
33+
34+
* When coordinating think out of the box:
35+
* contributors can make all of the tedious but smaller and easier fixes, while the host team thus has more time for the more complicated changes that the contributors need
36+
37+
* As a host team product owner you need to understand overall business priority in particular at times where more contributions are flowing in than your team can handle
38+
39+
* Needs an understanding where contributions make sense
40+
* time invest for contributors worthy?
41+
* mentoring invest for host team compared to "simply do it yourself quickly"
42+
* is there a chance the contributor stays active long term?
43+

product/05-shared-ownership.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Options for shared ownership
2+
3+
* if everyone owns it, nobody takes care anymore
4+
* if everyone can make changes, surely the result will be a mess
5+
* I don't want to be forced to accept all sorts of changes from contributors.
6+
7+
## Ownership mis-conceptions
8+
* just because you receive a contribution does not mean your team has to accept it
9+
* Support your team in communicating project vision, help them in situations that are tricky - think turning down contributions
10+
* Support your team by helping them come up with a clear vision for the InnerSource project
11+
* Understand that when receiving contributions the review and menoring cycle is important, needs time and capacity but improves quality of the project
12+
* when contributing code understand that the review cycle is not a last stage quality gate but a way to guide the engineers of your team to results faster
13+
* when in a host team and flooded with contributions
14+
* help your team understand that contributions may come with different priorities depending on overal company strategy
15+
* help your team by taking on tasks like initial contribution triage: Time to first response for contributors is crucial.
16+
You can help your team by communicating to contributors if integration of the change takes a bit longer.
17+
* When faced with multiple larger contribution requests help your team by negotiating with other teams when the best time to work on these contributions is.
18+
Often that is still way faster than your team doing all the work on their own.
19+
But in particular first time contributors may need some hand holding - in particular for larger changes.
20+
Coordinating the timing around that mentoring can be a big help for your team.
21+
* "But I could simply fork" ... a misconception where potential guest teams believe that simply copying the code would be faster.
22+
In the short term that is true.
23+
In the long run it means added maintenance.
24+
As a product person you can help your team understand why contributing changes to the project you depend on is in the best interest of the business: Less work overall.
25+
Maintenance for the long term is taken on by the host team.
26+
27+
## InnerSource governance levels
28+
29+
* InnerSource comes with different best practices.
30+
Governance for InnerSource projects - much like in Open Source may vary substantially though.
31+
32+
* Best practice: Make all your assumption explicit:
33+
* Which response time should contributors expect, so they know when to ping you?
34+
* Which communication channels should contributors use to get in touch with the project?
35+
* Which communication channels should contributors follow to learn what's going on in the project?
36+
* But also: Which governance level should contributors expect from your project?
37+
38+
* Governance level? There's at least three, sometimes four:
39+
* Source code is visible to everyone, but we don't have time to mentor contributors.
40+
Send us changes as feature requests or bug reports only.
41+
* Source code is visible to everyone, plus we have set aside some time for mentoring contributors.
42+
Feel free to send us changes as pull requests. We appreciate getting those early, even as drafts so we can help you avoid taking the wrong turn early.
43+
* As above, but we are open to the idea of sharing write access.
44+
This is particularly helpful for cases where there is a long term relationship with contributors.
45+
Collaborating over longer periods of time the host team will develop trust in contributors understanding the goals of the InnerSource project.
46+
Sharing write access can then be a way to remove the review bottleneck.
47+
* As above, but also share control over who gets write access next.
48+
Result from that increased trust will often be more committment from those that received the trust.
49+
50+
* Each governance level needs different approaches to collaboration and coordination that may have an impact on how fast the project moves forward:
51+
* More sharing means an increased need for communication and co-ordination.
52+
* Sharing accountability can slow down decisions.
53+
* Sharing more accountability also has an impact if your performance reviews still happen in a traditional hierarchical way.
54+
Impact on performance reviews: InnerSource moves some of the energy you spend developing outside of your own team.
55+
That means you are losing some level of control.
56+
You are also losing direct oversight. As a result performance feedback for InnerSource contributors needs to take the perspective of the host team into account.
57+
58+
## "You build it, you run it" in settings with high sharing levels
59+
60+
* Collaborate on and share only the parts that are the same accross teams - keep operations local.
61+
Essentially work towards modularization of your code.
62+
* Alternatively work with contract tests to avoid API breakages.
63+
* Work with internal service level agreements, make contributors sign up to warranty periods.
64+
65+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Relation to open source
2+
3+
* So you're now an export on InnerSource - where's the line to when to switch to Open Source?
4+
5+
* The practices are very similar
6+
* Visibility and who can participate is limited in InnerSource
7+
* There are tax implications for InnerSource collaboration that do not exist for Open Source
8+
9+
* The concept of building a common platform together and competing on top of that is core to Open Source as well.
10+
* What's more important though: InnerSource gets you into a habit of thinking about moving changes and thus maintenance one level up into your dependencies.
11+
That same habit can help you move changes upstream into Open Source projects that you depend on.
12+
* Thinking through the governance levels for InnerSource also helps you understand that not all Open Source projects are born the same.
13+
As a result you may want to take governance levels of Open Source projects which offer similar functionality into account when deciding which one to adopt in your tech stack.
14+

product/outline.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Challenges with InnerSource and agile (these challenges form the basis for the r
4343
- Common fears (like losing control) and counter measures
4444
- Same phrase - different meaning: How issue trackers and code reviews are used differently in InnerSource projects than is common in the industry.
4545
- The impact of transparency: How InnerSource depends on trust, what to avoid to keep trust alive.
46-
46+
- written first is not to avoid verbal communication or to move everything into DMs or long winded email threads
4747

4848
InnerSource and capacity planning
4949

0 commit comments

Comments
 (0)