Skip to content

Commit 16580a2

Browse files
MaineClenucksirrrutledgefioddorjonico
authored
Draft of the fulltext for the segment for product people (#520)
* 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 * First draft of fulltext version of the training. * Add full text for relation to open source. * Apply suggestions from code review Co-authored-by: rrrutledge <rrrutledge@users.noreply.github.com> * Update product/01-introduction.md Co-authored-by: rrrutledge <rrrutledge@users.noreply.github.com> * Update product/01-introduction.md Co-authored-by: rrrutledge <rrrutledge@users.noreply.github.com> * Update product/01-introduction.md Co-authored-by: rrrutledge <rrrutledge@users.noreply.github.com> * Update product/02-innersource-and-agile.md Co-authored-by: rrrutledge <rrrutledge@users.noreply.github.com> * Update product/02-innersource-and-agile.md Co-authored-by: rrrutledge <rrrutledge@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: rrrutledge <rrrutledge@users.noreply.github.com> * Update product/04-negotiation.md Co-authored-by: Igor Zubiaurre <fioddor@gmail.com> * Update product/04-negotiation.md Co-authored-by: Igor Zubiaurre <fioddor@gmail.com> * Update product/05-shared-ownership.md Co-authored-by: Igor Zubiaurre <fioddor@gmail.com> * Apply suggestions from code review Co-authored-by: Johannes Nicolai <johannes.nicolai@postman.com> Co-authored-by: Daniel Truemper <63618+truemped@users.noreply.github.com> * Shorten introduction I split a few longer sentences, simplified language and shortened the text a bit. * Add two specific examples to introduction * Shorten second part. * Update product/06-relation-to-open-source.md Co-authored-by: Johannes Nicolai <johannes.nicolai@postman.com> --------- Co-authored-by: Johannes Tigges <lenucksi@users.noreply.github.com> Co-authored-by: rrrutledge <rrrutledge@users.noreply.github.com> Co-authored-by: Igor Zubiaurre <fioddor@gmail.com> Co-authored-by: Johannes Nicolai <johannes.nicolai@postman.com> Co-authored-by: Daniel Truemper <63618+truemped@users.noreply.github.com>
1 parent 6fcda4f commit 16580a2

6 files changed

Lines changed: 386 additions & 157 deletions

product/01-introduction.md

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,34 @@
11
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.
2+
3+
After watching this segment, you will have a better understanding of how InnerSource speeds up product development.
4+
We will also cover how it relates to Agile development best practices.
5+
6+
To achive agility organizations strive for autonomous teams.
7+
However in a complex, interconnected world some dependencies cannot be avoided.
8+
InnerSource [provides an alternative](https://innersourcecommons.org/learn/learning-path/introduction/02/) to "wait it out", "build workarounds" and "escalate": Teams that need modifications in their dependencies can offer a helping hand.
59
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.
10+
Through its focus on written communication, it is well suited even for remote-first mode.
711

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.
12+
In this section, you will learn where Agile development and InnerSource use similar terminology and even technology - but differ substantially in the details.
13+
Instead of running into common misunderstandings, you will benefit from knowing the differences in culture but also in purpose of tools used.
1014

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.
15+
You will understand the impact of InnerSource on capacity planning. Also with InnerSource there is no free lunch - host teams need time for mentoring contributors.
1216
We will also look at the additional negotiation possibilities that InnerSource brings - keeping the balance of Give and Take.
17+
18+
But let us start with a brief example.
19+
Imagine you are building a lovely new music app.
20+
In order to understand how your users are interacting with the app you start collecting some interaction logs.
21+
Over time you dig deeper when analysing those, feeding your learnings back into development.
22+
Now imagine another team bringing content into your application also has a few needs - they may want to reward content creators based on how many users they reached.
23+
So them, too they start using your collected logs.
24+
But they need some additional analysis steps that you hadn't thought of at first.
25+
They are now faced with a challenge: Build a workaround, or go through your backlog to get their request prioritized.
26+
With InnerSource they will have a third option: Make the changes themselves - with your help.
27+
Sure, that may be slower than if you had made the changes.
28+
But it will still be faster than waiting for you to get around to making the modifications.
29+
30+
In an ideal InnerSource organisation you can scale that up even further:
31+
Remember the last time you had to make cross cutting concern modifications across your entire platform?
32+
When going the "put it into the backlog of each team" this often feels like it's dragging on forever.
33+
On the other hand having the option to provide teams that need the modification with a patch that suggests the modification can speed things up substantially.
34+
Typical complexity of modifications in that approach depends on the maturity of the organisation and the maintainability/ modularity of the code produced.
Lines changed: 101 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,136 @@
11
# InnerSource and Agile
22

3-
You want to improve your product and deliver those improvements faster to customers.
3+
You want to improve your product and deliver faster to customers.
44
You want to make stakeholders happy.
5-
InnerSource helps your team deliver value and maintain autonomy especially in a highly interconnected world.
5+
InnerSource helps your team deliver value and maintain autonomy in a highly interconnected world.
66

77

88
## Autonomous teams in an interconnected world
99

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.
10+
Organisations try to deliver value to customers quickly.
11+
One common cause for delays are dependencies in the delivery process.
12+
As a result organisations prefer cross functional teams covering customer communication, design, implementation, testing and operations thus eliminating costly handovers.
13+
To achieve high performance, teams eliminate waste and re-use existing components.
14+
From a team perspective each reused component adds another dependency outside of the control of that team.
15+
The negative side of this optimisation is clear: The team depends on another team if they need changes in the component used.
16+
To be able to implement those often lengthy roadmap discussions are scheduled, sometimes leading to the need to optimize detailed priorities globally.
17+
In complex situations as much as in large organisations this leads to an increase in time needed to adjust to changing business needs.
18+
For very popular central components often there are so many requests coming in that one central component team runs out of capacity to implement all of the requested changes.
19+
20+
In traditional organizations there are only two ways of making changes to dependencies:
21+
* Submit a feature request/ bug report and wait for the other team to prioritize that change and implement it.
22+
* Build a workaround to avoid the bug or locally provide the functionality needed.
23+
24+
If none of those options is successful typically the issue is being escalated and decided at a higher hierarchy level.
25+
26+
Neither solution is particularly satisfying.
27+
Looking at Open Source though there is an obvious solution: A team depending on a component becomes a contributing team and provides a helping hand to the host team.
28+
29+
Now you may ask yourself: "Doesn't that lead to complete chaos where people randomly write into code repositories of teams they are not a member of?"
30+
InnerSource comes with a set of roles and processes that bring clarity to what otherwise would indeed lead to chaos:
31+
* Each InnerSource project has a set of Trusted Committers with clear accountabilities that go beyond simply reviewing code.
32+
Trusted Committers set the rules for contributions.
33+
* Contributions happen in a structured way:
34+
* Contribution intend is shared early to make sure the contribution fits within the Host projects' vision and scope.
35+
* Progess is shared early so the host team has a chance to mentor the contributor and guide them on the path to a desired design and architecture.
36+
That way frustration due to having to decline a contribution late in the process is avoided.
37+
* Decisions and vital communication happens asynchronously to be able to work around differing meeting schedules of people in different teams.
38+
As a result contributing teams gain autonomy to fix upstream artifacts without sacrifycing the quality of the component that is being contributed to.
39+
40+
As a side effect InnerSource provides teams with best practices that make working in a remote first culture easy.
41+
42+
## Advantages of an InnerSource approach
43+
44+
Instead of working in silos InnerSource fosters collaboration between teams.
45+
Much as in Open Source that means standing on the shoulders of giants: Instead of building every component locally InnerSource fosters reuse.
46+
It reduces the cost of reuse by providing a clear path to supporting the upstream team with the work of fixing bugs and implementing features.
47+
48+
Much like in Open Source InnerSource fosters a thinking of combined forces: Components that all business units and product teams need as a foundation can be built together.
49+
As a result all the boats are rising together: Innovation created in one part of the organization can create benefits all over the entire corporation.
50+
With teams that are familiar with InnerSource the load to move this type of innovation forward can be shared by all teams that benefit from and depend on the resulting components and services.
51+
52+
InnerSource gives your team the initiative and tooling to fix issues that block shipping features to customers.
53+
When done right maintenance of core components and services can be shared in a well structured way by a "virtual InnerSource team" that is larger than any specific product team.
54+
55+
In advanced settings those involved understand the value of contributors working on simpler features that may not directly benefit their customers - under the condition that that frees the host team to work on more complex changes that contributors hava a business need for.
3156

3257

3358
## Does InnerSource replace Agile?
3459

35-
* short answer: No, not at all.
36-
* Instead they complement each other:
60+
Short answer: No, not at all.
61+
Instead the two complement each other:
62+
63+
Well factored and well tested code is one goal of any agile team.
64+
In an InnerSource setting on-ramp times for team members but also for team-external contributors get shorter.
3765

66+
Teams familiar with collaboration who avoid assigning tasks are in a good position to also deal with external contributions in a flexible manner.
67+
They also bring a mindset and communication style that works well for motivating contributors over whose priority they have no direct influence.
68+
Working with intrinsic motivation instead of directing work means that host teams have the tools to successfully collaborate with contributors.
69+
70+
Teams pairing to work on problems are already comfortable with sharing progress early.
71+
There are two challenges moving to InnerSource from a pairing only culture:
72+
The host team needs to make time for supporting contributors and schedule that into their planned work.
73+
In addition when crossing team boundaries it is often hard to find time slots for pairing - in those cases it should be complemented with asynchronous collaboration.
74+
To avoid frequent disruption, host team members often need to intentially plan their day more rigorously in InnerSource settings.
75+
Often it is simplest to set aside certain hours in the day or a day a week for mentoring contributions.
76+
Making that explicit at the team level takes a lot of pressure off the engineers trying to fulfil their own team goals but also helping out contributors.
77+
Another challenge with pairing is that it allows pairs to move very quickly together - often at the expense of writing important information down for the rest of the team.
78+
In an InnerSource setting it does take training to remember to bring all relevant decisions back to shared communication channels for both, host team and contributors.
79+
From a product perspective that does bring a lot more transparency to the development process.
80+
It also means that decisions that otherwise may have been taken at the engineering level only are now visible for everyone involved.
81+
82+
Remember last time you insisted that your product be well tested, preferably with automated tests so deployments can happen frequently and without human intervention?
83+
This goal now helps with InnerSource as well: Contributions are much easier if contributors can check locally if their changes are safe.
84+
Tests also ensure that the host team remembers to keep the contributed functionality if they are reminded of the reason for it by a failing test.
85+
86+
Remember last time you insisted on your team spending time to follow the goal of "leave code in a better shape than you found it"?
87+
That mindset helps in the InnerSource model: It makes sure that quality and co-hesion of code remains high even when there are multiple contributions from different sources.
3888

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

4690
## Common misunderstandings when coming from agile teams
4791

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.
92+
InnerSource and Agile uses some of the same tooling - for different purposes.
93+
94+
### Impact of overlapping language
95+
96+
Issue trackers: In agile teams user stories are a conversation with the customer.
97+
Often the are put as sticky notes on a whiteboard.
98+
But also often they are stored in an issue tracker.
99+
As a result issue trackers are mainly perceived as planning tools, essentially a replacement for sticky notes on a whiteboard.
100+
In InnerSource, issue trackers serve 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.
54101
Issues in InnerSource become much more lengthy and wordy than in your average organisation.
102+
They also track the implementation history and detailed design decisions for a change.
103+
104+
Code Reviews: In traditional organisations code reviews often serve auditing purposes.
55105

56-
- Code reviews: In traditional organisations those often serve auditing purposes and for quality control.
57106
They are done when development is finished.
58107
In InnerSource code changes are shared very early in the process, sometimes when nothing more than a rough sketch is done.
59108
The goal is to seek early feedback and mentoring.
60109
This is particularly helpful for teams that are on diverse schedules and cannot find any time for pair programming.
61110
Often teams have the aspiration that nobody walks alone - in reality though this often isn't much more than an aspiration never achieved.
62111
In particular where contributions cross team boundaries.
63112

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.
113+
Tools used in InnerSource can formalize this ask for more than one human to be involved with any change.
114+
115+
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.
65116
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.
117+
The goal is not to reduce distractions to others - the goal is to make all project conversations transparent.
118+
67119
As a result direct messages and mails are to be avoided.
68120
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.
69121
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.
70122

71-
72-
* Focus on written communication does not mean verbal communication is disallowed.
123+
Focus on written communication does not mean verbal communication is disallowed.
73124
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.
125+
Also solving problems together, pairing with others or in person hackathons are valuable to find solutions quickly.
126+
The team needs to make sure though that all project relevant decisions are kept in channels that everyone has access to.
127+
That also may mean to postpone 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.
128+
This is not only relevant for coding decisions, but also relates to general project mission, roadmap and direction.
129+
Without that information contributors will have a hard time understanding which contributions will have a good chance of getting accepted.
76130

131+
### Impact of trust
77132

78-
* Impact on trust: All discussions in InnerSource projects are visible to everyone in the company.
133+
All discussions in InnerSource projects are visible to everyone in the company.
79134
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-
135+
This is in particular important for anyone in a leadership or role model position.
81136

0 commit comments

Comments
 (0)