strategies for managing dependencies
DESCRIPTION
With scaling Lean and Agile practices comes new challenges for dealing with handoffs and dependencies. Dependencies are inevitable. Trying to avoid them is one strategy with lots of effort commonly put into this strategy in the form of upfront planning. But, managing dependencies is not just about avoiding them. It’s also about working to minimise the impact (to flow) of dependencies. In this workshop we will work through several strategies (and hopefully uncover more along the way) with participants leaving the session armed with an array of strategies to improve systemic flow.TRANSCRIPT
![Page 1: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/1.jpg)
Dependency Management12 Strategies for improving systemic flow
Introduction to KanbanLean Estimation, Tracking & PlanningMaking Software Delivery more Predictable12 Strategies for Managing DependenciesAdvanced Kanban – classes of service and backlog mgmt
![Page 2: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/2.jpg)
Cycle Time Variation
![Page 3: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/3.jpg)
80% OF YOUR CAPACITY IS ABSORBED
IN WASTEFUL ACTIVITY
![Page 4: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/4.jpg)
Develop self-serve capability
1. Develop self-serve capability
2. Systemic Swarming
3. Consumer Driven Contracts
4. Fake Objects, Mocks, or Stubs
5. Queue and wait
6. Planning & Scheduling
7. Visualise Blockers
8. Use Explicit Policies to Expedite
9. Avoid self-competing
10. Re-Architect
11. Invest in Env’s
Develop self-serve capability within the team to remove the dependency (self-serve).
![Page 5: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/5.jpg)
Systemic Swarming
In a multi-kanban environment (multiple delivery streams / teams) move people with the right skills between delivery streams to deliver the dependent requirements (so as to respect the release cadence) before returning to their own delivery stream.
1. Develop self-serve capability
2. Systemic Swarming
3. Consumer Driven Contracts
4. Fake Objects, Mocks, or Stubs
5. Queue and wait
6. Planning & Scheduling
7. Visualise Blockers
8. Use Explicit Policies to Expedite
9. Avoid self-competing
10. Re-Architect
11. Invest in Env’s
![Page 6: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/6.jpg)
Consumer Driven Contracts
Check out the article on Martin Fowlers blog where Ian Robinson discusses a Service Evolution Pattern called Consumer Driven Contracts.
1. Develop self-serve capability
2. Systemic Swarming
3. Consumer Driven Contracts
4. Fake Objects, Mocks, or Stubs
5. Queue and wait
6. Planning & Scheduling
7. Visualise Blockers
8. Use Explicit Policies to Expedite
9. Avoid self-competing
10. Re-Architect
11. Invest in Env’s
![Page 7: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/7.jpg)
Fake Objects, Mocks, or Stubs
Think carefully about the consequences of using these approaches from a testing perspective.
1. Develop self-serve capability
2. Systemic Swarming
3. Consumer Driven Contracts
4. Fake Objects, Mocks, or Stubs
5. Queue and wait
6. Planning & Scheduling
7. Visualise Blockers
8. Use Explicit Policies to Expedite
9. Avoid self-competing
10. Re-Architect
11. Invest in Env’s
![Page 8: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/8.jpg)
Queue and Wait
Move the Story out of flow whilst you wait for the dependent requirement to be fulfilled. Once fulfilled return the Story to flow. This is shown in the “3rd party blocked” section in the Dev column above.
1. Develop self-serve capability
2. Systemic Swarming
3. Consumer Driven Contracts
4. Fake Objects, Mocks, or Stubs
5. Queue and wait
6. Planning & Scheduling
7. Visualise Blockers
8. Use Explicit Policies to Expedite
9. Avoid self-competing
10. Re-Architect
11. Invest in Env’s
![Page 9: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/9.jpg)
Planning & Scheduling
Schedule the various requirements to be complete in line with a plan (in my experience the odds of success of this technique are similar to a seven horse accumulator!). BUT, you do get value from flagging up known dependencies earlier in the backlog to help with your selection policy.
1. Develop self-serve capability
2. Systemic Swarming
3. Consumer Driven Contracts
4. Fake Objects, Mocks, or Stubs
5. Queue and wait
6. Planning & Scheduling
7. Visualise Blockers
8. Use Explicit Policies to Expedite
9. Avoid self-competing
10. Re-Architect
11. Invest in Env’s
![Page 10: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/10.jpg)
Visualise Blockers
If you uncover or stumble across a dependency during dev use blocker stickers to raise the awareness then focus on unblocking.
1. Develop self-serve capability
2. Systemic Swarming
3. Consumer Driven Contracts
4. Fake Objects, Mocks, or Stubs
5. Queue and wait
6. Planning & Scheduling
7. Visualise Blockers
8. Use Explicit Policies to Expedite
9. Avoid self-competing
10. Re-Architect
11. Invest in Env’s
![Page 11: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/11.jpg)
Use Explicit Policies to Expedite
Below you’ll see an External row in the backlog. Agree an org-wide policy that anything arriving into this row is expedited or prioritised as part of the selection policy. Don’t use this for shared service teams.
Incidents
Unplanned
Planned
Tech Debt
External
Breakdown
Establish a class of service policy across all work streams
1. Develop self-serve capability
2. Systemic Swarming
3. Consumer Driven Contracts
4. Fake Objects, Mocks, or Stubs
5. Queue and wait
6. Planning & Scheduling
7. Visualise Blockers
8. Use Explicit Policies to Expedite
9. Avoid self-competing
10. Re-Architect
11. Invest in Env’s
![Page 12: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/12.jpg)
Avoid Self-Competing
If you are dependent on a shared service team, make sure your tribal leader attends their prioritisation / selection meeting because you may end up competing against yourself or other squads within your tribe for what should be a tribe level prioritisation call.
SelectBacklog WIP DONE
Squad A
Squad B
Squad C
Squad D
Trib
e 1
Trib
e 2
1. Develop self-serve capability
2. Systemic Swarming
3. Consumer Driven Contracts
4. Fake Objects, Mocks, or Stubs
5. Queue and wait
6. Planning & Scheduling
7. Visualise Blockers
8. Use Explicit Policies to Expedite
9. Avoid self-competing
10. Re-Architect
11. Invest in Env’s
![Page 13: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/13.jpg)
Re-Architect
…to remove / reduce dependencies (stovepipe solution?).
1. Develop self-serve capability
2. Systemic Swarming
3. Consumer Driven Contracts
4. Fake Objects, Mocks, or Stubs
5. Queue and wait
6. Planning & Scheduling
7. Visualise Blockers
8. Use Explicit Policies to Expedite
9. Avoid self-competing
10. Re-Architect
11. Invest in Env’s
![Page 14: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/14.jpg)
Remove Environment
Contention…invest in more / better environments.
1. Develop self-serve capability
2. Systemic Swarming
3. Consumer Driven Contracts
4. Fake Objects, Mocks, or Stubs
5. Queue and wait
6. Planning & Scheduling
7. Visualise Blockers
8. Use Explicit Policies to Expedite
9. Avoid self-competing
10. Re-Architect
11. Invest in Env’s
![Page 15: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/15.jpg)
Merge hell – Feature Toggles
…to remove / reduce dependencies (stovepipe solution?).
1. Develop self-serve capability
2. Systemic Swarming
3. Consumer Driven Contracts
4. Fake Objects, Mocks, or Stubs
5. Queue and wait
6. Planning & Scheduling
7. Visualise Blockers
8. Use Explicit Policies to Expedite
9. Avoid self-competing
10. Re-Architect
11. Invest in Env’s
12. Feature Toggles
![Page 16: Strategies for Managing Dependencies](https://reader036.vdocuments.us/reader036/viewer/2022062406/559514241a28abf5748b45d6/html5/thumbnails/16.jpg)
Further Information