|
| 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 | + |
0 commit comments