1 of 80

Becoming a “Startup at Scale”

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

2 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

3 of 80

agilepatterns.org

Antipatterns

Agile Template Cherry Picking Cloned Avatar Death March Disguised Project Distributed Team Management by Reporting Micromanagement Sprint Zero

Time Theft Too Busy

Unbounded Team Unbounded Timebox

Patterns of Representation

Avatar Backlog Epic Forecast Increment

Information Radiator Metrics

Minimum Viable Product

Proxy Product Ownership Relative Sizing Value Stream

Patterns of Method

Controlled Failure Done

Inspect and Adapt Iterate

Kanban Sandwich Limited WIP

Pivot

Red Green Refactor Scrumban

Single Piece Flow Timebox

Trade

Patterns of Responsibility

Management by Exception

Peer Product Ownership

Quality of Service Servant Leadership Swarm Teamwork Release Orchestration

4 of 80

Limited WIP

DevelopmentTeam

accept(BacklogItem) test()

BacklogItem

isEnqueued : boolean isInProgress : boolean isComplete : boolean

Backlog

WorkInProgress

WIPLimit : integer

WIPCount : integer {WIPCount <= WIPLimit}

{ ordered }

5 of 80

Transformation Backlog

Transformation Backlog

Transformation Backlog Item

Selected patterns

name, which must be unique

a supporting diagram, using a commonly understood class modeling notation

a description of:

the intent behind the abstraction of the pattern

any proverbs that help illustrate its everyday relevance

any terms by which it might also be known - this entry is optional the motivation for using it

the structure of the pattern, with particular relevance to the supporting diagram

the situations in which the pattern is most applicable the consequences of using the pattern

common implementations of the pattern references to related patterns or items of interest

Change Target(s)

Delivery Team A

Pseudo Product Owners X, Y and Z

Acceptance Criteria

Single Product Owner is identified

name, which must be unique

a supporting diagram, using a commonly understood class modeling notation

a description of:

the intent behind the abstraction of the pattern

any proverbs that help illustrate its everyday relevance

any terms by which it might also be known - this entry is optional the motivation for using it

the structure of the pattern, with particular relevance to the supporting diagram

the situations in which the pattern is most applicable the consequences of using the pattern

common implementations of the pattern references to related patterns or items of interest

6 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

7 of 80

Sponsored Vision

Sponsored Vision

Transformation Backlog

Transformation

Heartbeat

Rollout Team

Senior management must

clear strategic vision

articulate and sponsor a

for

agile transformation across the enterprise.

This vision must acknowledge and authorize

the Rollout Team as organizational change agents. It must be absolutely clear that the

need for deep and persistent change is recognized and sponsored at the highest level.

This strategic vision for change can help inform the Rollout Team about

the priorities and organization of the

Transformation Backlog.

8 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

9 of 80

Change Actioning

Transformation

Heartbeat

Team

Cadence

Daily Cadence

Rollout Team

Transformation

Backlog

The current highest priority item is taken from the backlog by the Rollout Team and applied to the identified organizational target(s)

Suitable targets include Delivery Teams and their stakeholders

Delivery Teams

10 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

11 of 80

Rollout Team

Transformation

Backlog

Transformation

Heartbeat

Daily Cadence

Rollout Team

The Rollout Team helps the

organization to change by adopting agile practices across

the enterprise. It includes a clear Agile Sponsor and at least one Agile Coach.

Targets for change include Delivery Teams and their stakeholders

Agile Agile Coaches Sponsor

Team

Cadence

The Rollout Team decide which agile patterns are most applicable at any given time and to whom

Delivery Teams

12 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

13 of 80

Transformation Heartbeat

Transformation

Heartbeat

Daily Cadence

Rollout Team

The Rollout Team manages

organizational change through a regular heartbeat of inspection and

adaptation. This heartbeat must accommodate and inform the cadence of organizational delivery cycles as well as operational day-to-day work.

The cadence of a Delivery Team could be aligned to a Scrum Sprint or Kanban inspection cycle.

Agile Agile Coaches Sponsor

Team

Cadence

Changes are actioned as soon as the Rollout Team's WIP limit and the targeted Delivery Team's cadence allows

Delivery Teams

Transformation

Backlog

14 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

15 of 80

Team Cadence

Transformation

Heartbeat

Daily Cadence

Rollout Team

A Transformation Heartbeat must be

no longer than one month. This alignment allows the Rollout Team to

assess the progress of organizational change at a juncture that is sympathetic to all teams and their delivery responsibilities.

Delivery Teams are free to choose shorter periods,

such as two or even one week cadences, as long as they all align with the Transformation Heartbeat. An example of a Team Cadence might be a Scrum Sprint.

Agile Agile Coaches Sponsor

Team

Cadence

Changes are actioned as soon as the Rollout Team's WIP limit and the targeted Delivery Team's cadence allows

Delivery Teams

Transformation

Backlog

16 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

17 of 80

Daily Cadence

Transformation

Heartbeat

Daily Cadence

Rollout Team

Agile Sponsor

Agile Coaches

Team

Cadence

Changes are actioned as soon as the Rollout Team's WIP limit and the targeted Delivery Team's cadence allows

Each Delivery Team must review its efforts on a daily basis, and refocus them if necessary.

Examples of daily cadence include timeboxed Scrum

meetings and Kanban standups.

Delivery Teams

Transformation

Backlog

18 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

19 of 80

Delivery Teams

Transformation

Heartbeat

Daily Cadence

Rollout Team

Agile Sponsor

Agile Coaches

Team

Cadence

Changes are actioned as soon as the Rollout Team's WIP limit and the targeted Delivery Team's cadence allows

In enterprise agile adoption, everyone involved in delivering products or services is a potential “change target”. The Delivery Team is the basic unit of agile transformation and change. Examples include potential Scrum Teams or Kanban Teams.

Delivery Teams

Transformation

Backlog

20 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

21 of 80

Verification

Sponsored Vision

Transformation

Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Rollout Team

Each item on the Transformation Backlog has Acceptance Criteria. These are evaluated by the Rollout Team at least once every Transformation Heartbeat. Once the criteria are met the item is retired, and further changes

brought into progress from the backlog.

Transformation Backlog

22 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

23 of 80

Actionable Metrics

The success of agile transformation should be measured in objective terms. Adjustments can then be made where needed, the Transformation Backlog can be revised, and the effectiveness of the transition thus optimized. A Rollout

Sponsored Vision

Transformation

Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Rollout Team

Team should carefully select metrics that are appropriate for this purpose.

Transformation Backlog

24 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

25 of 80

Validated Learning

Rollout Team

Sponsored Vision

Transformation Heartbeat

Actionable Metrics

Validated Rollout Strategy

The implementation of agile change should result in tangible improvement. The Rollout Strategy, which informs the Transformation Backlog, should be updated accordingly. If the expected improvements do not transpire, then the change can be reinstated on the backlog with an improved pattern selection and/or acceptance criteria.

Transformation

Backlog

26 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

27 of 80

Validated Rollout Strategy

Rollout Team

Sponsored Vision

Transformation Heartbeat

Actionable Metrics

Validated Rollout Strategy

The lessons learned from coaching change must be used to improve and further refine the organization's agile transformation strategy. By using actionable metrics to gauge success, refinements to the approach can be validated. The composition and ordering of a good Transformation Backlog is informed by such considerations.

Transformation

Backlog

28 of 80

agilepatterns.org

Antipatterns

Agile Template Cherry Picking Cloned Avatar Death March Disguised Project Distributed Team Management by Reporting Micromanagement Sprint Zero

Time Theft Too Busy

Unbounded Team Unbounded Timebox

Patterns of Representation

Avatar Backlog Epic Forecast Increment

Information Radiator Metrics

Minimum Viable Product

Proxy Product Ownership Relative Sizing Value Stream

Patterns of Method

Controlled Failure Done

Inspect and Adapt Iterate

Kanban Sandwich Limited WIP

Pivot

Red Green Refactor Scrumban

Single Piece Flow Timebox

Trade

Patterns of Responsibility

Management by Exception

Peer Product Ownership

Quality of Service Servant Leadership Swarm Teamwork Release Orchestration

29 of 80

The Agile Transformation Pattern

Sponsored Vision

Transformation

Backlog

Transformation Heartbeat

Team Cadence

Daily Cadence

Actionable Metrics

Transformation (Rollout) Team

Delivery Teams

Validated Rollout Strategy

30 of 80

Controlled Failure

ProductOwner

terminate() continue() pivot()

DevelopmentTeam

iterate() : increment

InspectableAdaptable

inspect(...)

adapt(...)

Project

close()

InspectorAdaptor

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

31 of 80

Done

DevelopmentTeam

accept(BacklogItem) action()

test()

BacklogItem

isComplete : boolean

Backlog

DefinitionOfDone

terms : Enumeration

checkConformity(DefinitionOfDone)

{ ordered }

32 of 80

Inspect and Adapt

Team

publish(Metrics)

Project

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

33 of 80

Iterate

Team

iterate() : increment

InspectorAdaptor

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

Sprint

InspectableAdaptable

inspect(...)

adapt(...)

Project

SprintBacklog

ProductBacklog

Backlog

34 of 80

Kanban Sandwich

Project

InspectableAdaptable

inspect(...)

adapt(...)

Portfolio

Support

Scrum

Kanban

Enterprise

35 of 80

Limited WIP

DevelopmentTeam

accept(BacklogItem) test()

BacklogItem

isEnqueued : boolean isInProgress : boolean isComplete : boolean

Backlog

WorkInProgress

WIPLimit : integer

WIPCount : integer {WIPCount <= WIPLimit}

{ ordered }

36 of 80

Pivot

Team

iterate() : increment

Product

hypothesis minimumViableProduct

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

ValidatedLearning

test(increment, hypothesis)

pivot()

37 of 80

Red Green Refactor

Test

Change

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

TeamMember

Codebase

Team

red green

refactor(change) run(test)

run() : boolean

38 of 80

Scrumban

ScrumbanTeam

iterate() : metric action(item)

Timebox

trade(item, item)

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

Project

QualityOfService

Backlog

Item

WorkInProgress

WIPLimit : integer

WIPCount : integer {WIPCount <= WIPLimit}

0..*

{ ordered }

39 of 80

Single Piece Flow

DevelopmentTeam

accept(BacklogItem) action(BacklogItem)

BacklogItem

isEnqueued : boolean isInProgress : boolean isComplete : boolean

Backlog

WorkInProgress

WIPLimit : integer = 1

WIPCount : integer {WIPCount <= WIPLimit}

{ ordered }

40 of 80

Timebox

Team

iterate() : metric action(BacklogItem)

Timebox

length

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

Event

Backlog

BacklogItem

abandon()

{ ordered }

41 of 80

Trade

Team

iterate() : metric action(BacklogItem)

Project

BacklogItem

size

Timebox

Trade(BacklogItem : old, Collection<BacklogItem> : new)

{old.size <= new.sum(size)}

{ or

dered }

Backlog

42 of 80

Management by Exception

Manager

manageWorkstream()

raiseException() { variable > tolerance }

InspectableAdaptable

inspect(...)

adapt(...)

Environment

variable

WorkStream

inException : boolean tolerance : Numeric

Scrum Master

Product Owner

Team Member

InspectorAdaptor

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

43 of 80

Peer

UnitTest

InspectorAdaptor

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

Unit

InspectableAdaptable

inspect(...)

adapt(...)

TeamMember

Codebase

Team

refactor(Unit)

Peer

approve()

44 of 80

Product Ownership

Product Owner

Sprint Backlog

Product Backlog

BacklogItem

size

capacity

{ ordered }

{ ordered }

Team

iterate() : increment

Customer

Sprint Goal

45 of 80

Quality of Service

KanbanTeam

iterate() : metric

action(BacklogItem, QualityOfService)

QualityOfService

Backlog

BacklogItem

WorkInProgress

WIPLimit : integer

WIPCount : integer {WIPCount <= WIPLimit}

{ ordered }

46 of 80

Servant Leadership

DevelopmentTeam

iterate() : increment

InspectorAdaptor

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

Project

InspectableAdaptable

inspect(...)

adapt(...)

Servant Leader

External Stakeholder

Dependency

47 of 80

Swarm

DevelopmentTeam

accept(BacklogItem) test()

BacklogItem

isEnqueued : boolean isInProgress : boolean isComplete : boolean

Backlog

WorkInProgress

WIPLimit : integer

WIPCount : integer {WIPCount <= WIPLimit}

QualityOfService

Fast Track

Standard

{WIPLimit = 1}

{ ordered }

48 of 80

Teamwork

Workstream

inException : boolean tolerance : Numeric

InspectableAdaptable

inspect(...)

adapt(...)

Environment

variable

Manager

monitorWorkstream()

raiseException() { variable > tolerance }

Team

Member

Peer

monitor() action()

Team

iterate() : increment

49 of 80

Release Orchestration

Transformation Heartbeats

Scrum of Scrums

Release A

Release C

Start

(no release)

1

3

2

Team 1 work queue

Release B

Pull

Pull

Pull

Team 2 work queue

50 of 80

Avatar

BacklogItem

isEnqueued : boolean isInProgress : boolean isComplete : boolean

Backlog

WorkInProgress

WIPLimit : integer {WIPLimit <= team.size} WIPCount : integer {WIPCount <= WIPLimit}

Avatar

1..1

1..*

1

{ ordered }

51 of 80

Backlog

Backlog

+ groom()

  • add()
  • remove()
  • reorder()

{ ordered }

BacklogItem

size: Enumeration

modify()

52 of 80

Epic

BacklogItem

isComplete : boolean purpose

size

Backlog

checkConformity(Done)

{ ordered }

Epic

Project

goal

0..*

1

DefinitionOfDone

terms : Enumeration

53 of 80

Forecast

Team

iterate() : metric accept(BacklogItem)

Forecast

deliverBy: Time

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

Backlog

BacklogItem

WorkInProgress

WIPLimit : integer

WIPCount : integer {WIPCount <= WIPLimit}

{ ordered }

54 of 80

Increment

DevelopmentTeam

iterate() : increment

InspectorAdaptor

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

InspectableAdaptable

inspect(...)

adapt(...)

ProductOwner

release(increment)

Sprint

goal

Project

SprintBacklog

ProductBacklog

Backlog

55 of 80

Information Radiator

Team

update(BacklogItem, State) accept(BacklogItem)

InformationRadiator

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

Backlog

BacklogItem

{ ordered }

State

External Stakeholder

56 of 80

Metrics

Team

publish(Metrics)

External Stakeholder

velocity cycleTime burn

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

Metrics

Process

57 of 80

Minimum Viable Product

MVP

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

Backlog

BacklogItem

{ ordered }

<<enumeration>> Category

must should could

{ category = must }

Customer

58 of 80

Proxy Product Ownership

Proxy Product Owner

Sprint Backlog

Product Backlog

BacklogItem

size

capacity

{ ordered }

{ ordered }

DevelopmentTeam

iterate() : increment

Product Owner

1

1..*

1

1..*

59 of 80

Relative Sizing

Backlog

{ ordered }

BacklogItem

<<enumeration>>

Size

Extra Small = 1

Small = 2

Medium = 3

Large = 5

Extra Large = 8

Extra Extra Large = 13

60 of 80

Value Stream

BacklogItem

Station

{ ordered }

Value

Intime OutTime WorkTime costIncurred

Backlog

61 of 80

Agile Template

AgileTrait

1

To a naïve observer an institution may appear to be agile if it renames its existing characteristics by mapping them to supposedly comparable agile traits.

*

Characteristic

0..*

Role

Event

Artifact

Practice

Observer

Name

Institution

map(resource, trait)

62 of 80

Cherry Picking

BacklogItem

Backlog

{ ordered }

Avatar

reachedTopOfQueue

Team member

{reachedTopOfQueue = false}

Developer places avatar on an item that was not next for actioning

63 of 80

Cloned Avatar

DevelopmentTeam

accept(BacklogItem) test()

isEnqueued : boolean isInProgress : boolean isComplete : boolean

Backlog

WorkInProgress

WIPLimit : integer {WIPLimit <= team.size} WIPCount : integer {WIPCount <= WIPLimit}

TeamMember

Avatar

1..*

1..1

1..*

{ ordered } BacklogItem

1

Multiple avatars per developer

64 of 80

Death March

ProductOwner

terminate() continue()

DevelopmentTeam

iterate() : increment

InspectableAdaptable

inspect(...)

adapt(...)

Project

close()

InspectorAdaptor

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

PO does not review and terminate

65 of 80

Disguised Project

KanbanTeam

iterate() : metric action(BacklogItem)

Timebox

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

QualityOfService

BAUBacklog

BacklogItem

WorkInProgress

WIPLimit : integer

WIPCount : integer {WIPCount <= WIPLimit}

{ ordered }

Some items are large or mutually

dependent, and imply significant scope risk

66 of 80

Distributed Team

Team Member

Peer

collaborate()

Team

iterate() : increment

Location

2..*

Project

Team members are at multiple locations

Peering depends on team members being in a single location

1..1

67 of 80

Management by Reporting

Project

Environment

variable

Scrum Master

Product Owner

Team Member

Subordinate

monitorProject() : status makeReport() : report

Manager

Key roles subordinated to a manager who receives reports; authority to change and adapt is not fully vested in the team

Report

ReportingConventions

time format

Reporting standards are clearly defined in terms of both format and timing

Manager

68 of 80

Micromanagement

Project

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

Team Member

Manager

Contributions of team members to the project are controlled by a manager

69 of 80

Micromanagement

Project

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

Team Member

Manager

Contributions of team members to the project are controlled by a manager

70 of 80

Sprint Zero

Environment

Team

iterate() : increment

Sprint

Sprint Zero

SprintBacklog

ProductBacklog

Timebox

Sprint Zero is not necessarily time-boxed. It may address pre- conditions for sprinting, e.g. the establishment of a Product Backlog

0..1

1

No potentially releasable increment is produced due to the lack of a sprintable backlog

71 of 80

Time Theft

InspectorAdaptor

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

InspectableAdaptable

inspect(...)

adapt(...)

Team Member

Time Thief

Timebox

work()

Contributions of team members to the time box are interfered with by a non stakeholder

72 of 80

Too Busy

Product Owner

ProductBacklog

{ o

rdered }

BacklogItem

size

{ ordered }

Team

iterate() : increment

Non Team Member

Sprint Backlog

capacity

The stakeholder does not spend sufficient time with the Team, and engages with non team members instead. If the stakeholder has product or technical ownership responsibilities, backlog items may not have sufficient representation.

Stakeholder

73 of 80

Unbounded Team

Team

Member

BAU

Workstream

Project

1..*

Team members collaborate, but the team itself is not clearly defined

No constraint on the number of workstreams over which team members are expected to collaborate

74 of 80

Unbounded Timebox

Team

iterate() : void action(BacklogItem)

Timebox

goal

InspectableAdaptable

InspectorAdaptor

inspect(...)

adapt(...)

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

Project

Backlog

BacklogItem

{ ordered }

Timebox has no defined length

Iteration cannot produce meaningful metrics

75 of 80

Uncommitment

Team

Member

Project

BAU

Workstream

1

..*

Team members collaborate, but the team itself may not be clearly defined and the backlog may not be respected

No constraint on the number of workstreams over which team members are allowed to collaborate

Sprint Goal may be unclear

1..*

Sprint

goal

1

Weak Product Ownership of backlog and/or pull

Backlog

Product Owner

76 of 80

Undefined Done

Team Member

iterate() : metric action(BacklogItem)

Backlog

BacklogItem

isEnqueued isInProgress isComplete

WorkInProgress

{ ordered }

{ isInProgress == isComplete }

No Definition of Done to distinguish isInProgress from isComplete

77 of 80

Unlimited WIP

DevelopmentTeam

accept(BacklogItem) test()

BacklogItem

isEnqueued : boolean isInProgress : boolean isComplete : boolean

Backlog

WorkInProgress

WIPCount : integer

{ ordered }

No constraint on what the WIP count can be

78 of 80

Unresolved Proxy

Proxy Product Owner

Sprint Backlog

Product Backlog

BacklogItem

size

capacity

{ ordered }

{ ordered }

Team

iterate() : increment

Product Owner

1..*

1..*

1..*

1

Unclear which proxy is authorized

79 of 80

Vanity Metrics

Team

filter(Project, Stakeholder) publish(Metrics)

InspectorAdaptor

plan(InspectableAdaptable) review(InspectableAdaptable) retrospect(InspectableAdaptable)

InspectableAdaptable

inspect(...)

adapt(...)

Stakeholder

Metrics

Project

Team filters project metrics to match stakeholder expectations

80 of 80

WaterScrumFall

Team

iterate() : increment

Sprint

StageGate

preconditions postconditions

Project

SprintBacklog

ProductBacklog

Backlog

Sprints are neither inspectable nor adaptable, but are stage gated according

to a Project Plan.

Plan