View
300
Download
0
Category
Preview:
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.
Citation preview
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
Cycle Time Variation
80% OF YOUR CAPACITY IS ABSORBED
IN WASTEFUL ACTIVITY
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).
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
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
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
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
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
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
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
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
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
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
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
Further Information
Recommended