strategies for managing dependencies

Post on 02-Jul-2015

300 Views

Category:

Leadership & Management

0 Downloads

Preview:

Click to see full reader

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

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

top related