20
12/9/09 1 © 2008-2009 Leffingwell, LLC. A Lean and Scalable Requirements Information Model for the Agile Enterprise By Dean Leffingwell OO Days at TUT Dec 9, 2009 Special thanks to the model’s co-author, Juha-Markus Aalto of Nokia © 2008-2009 Leffingwell, LLC. About Dean Leffingwell 2

A Lean and Scalable Requirements Information Model for the Agile

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

1  

© 2008-2009 Leffingwell, LLC.

A Lean and Scalable Requirements Information

Model for the Agile Enterprise

By Dean Leffingwell OO Days at TUT

Dec 9, 2009

Special thanks to the model’s co-author, Juha-Markus Aalto of Nokia

© 2008-2009 Leffingwell, LLC.

About Dean Leffingwell

2

Page 2: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

2  

© 2008-2009 Leffingwell, LLC.

IT STARTS WITH THE TEAMS

The  Agile  Team  in  The  Enterprise  

H  

H  H  

H  

 

There can be a large number of teams in the enterprise

“pods” of 5-10 teams building a feature, component, or subsystem is not unusual

Some product lines require 30-40-50 teams to build

However, the structure of each team is largely the same

Page 3: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

3  

© 2008-2009 Leffingwell, LLC.

The structure of each team is largely the same

© 2008-2009 Leffingwell, LLC.

Their work is based on the user story

User Story

As a <role> I can <activity>

So that <business value>

As a Gmail user, I can select and highlight a conversation for further action

Page 4: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

4  

© 2008-2009 Leffingwell, LLC.

“Stories” drive iterations

Story A Story B Story C Story D Story E Story F

Story …

Plan

Fixe

d R

esou

rces

Fixed Time (Iteration)

7

© 2008-2009 Leffingwell, LLC.

Implemented by Story Task

1 1..*

Stories are implemented by tasks

Story 51 – As a user, I can highlight a conversation for further action

Task 51.1 – Review acceptance test     Juha, Dean, Bill Task 51.2 – Code story                        Juha Task 51.3 – Code acceptance test       Bill Task 51.4 – Get it to pass                   Juha and Bill Task 51.5 – Document in user help     Cindy

Tasks are used by the team to estimate and coordinate the effort required to deliver a story into the baseline

Page 5: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

5  

© 2008-2009 Leffingwell, LLC.

Tasks are either

 The only reasonable way to: –  Coordinate

interdependencies –  Take individual

responsibility for work –  Break a story down

into small enough chunks (hours) to be truly estimable

–  Track story completion, task by task

 Or –  Needless, non-lean

administrative overhead

9

© 2008-2009 Leffingwell, LLC.

Implemented by Story

Is one of

Backlog Item

Task 1 1..*

Stories are maintained in the teams backlog

There is only one backlog for the team

All work comes from the backlog

If isn't a user story (defect, etc) it still goes in the backlog

Page 6: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

6  

© 2008-2009 Leffingwell, LLC.

User Story: The 3 C’s

  Card –  Written on card or in tool and may

annotate with notes

  Conversation –  Details in conversation with

product owner

  Confirmation –  Acceptance tests confirm the story

correctness

What about expired accounts?

As a user, I can log in to gain

access to the internet

•  Expired accounts fail •  Returning power users

automatically log in •  Remember login name

11

© 2008-2009 Leffingwell, LLC.

A Pidgin Language?

  A pidgin language is a simplified language, usually used for trade, that allows people who can't communicate in their native language to nonetheless work together.

  User stories act like this. We don't expect customers or users to view the system the same way that programmers do; stories act as a pidgin language where both sides can agree enough to work together effectively. -- Bill Wake

12

xp123.com/xplor/xp0308/index.shtml

Page 7: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

7  

© 2008-2009 Leffingwell, LLC.

Details as Acceptance Tests

Support Master Card & Visa Don’t support American Express Send email confirmation of selected service Can choose 1 hour or 1 day of access Verify that an expired card fails Verify that discount is applied with customer coupon …

13

© 2008-2009 Leffingwell, LLC.

Implemented by Story

Is one of

Backlog Item

Task 1 1..*

Acceptance Test

Done when passes

1..*

1

Confirmation - all code is tested code

Stories can’t be considered “done” until they pass an acceptance test

Stories must be integrated into the baseline to be accepted

The Product owner is usually responsible for accepting the story

Page 8: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

8  

© 2008-2009 Leffingwell, LLC.

Implemented by Story

Is one of

Backlog Item

Task 1 1..*

Acceptance Test

Done when passes

1..*

1

A test and quality-centric approach

Teams perform unit testing and functional testing for every story

The details of the story go into the functional test, where they are the persistent representation of system behavior

Stories are temporal (not maintained after implementation)

Unit Test Functional Test

Consists of 1

1..* 1..*

© 2008-2009 Leffingwell, LLC.

The model for agile teams is lean and scalable

16

Page 9: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

9  

© 2008-2009 Leffingwell, LLC.

BUT WE HAVE TO SCALE THE MODEL FOR AGILE PROGRAMS

© 2008-2009 Leffingwell, LLC.

Which requires rethinking

  Assume a program requires –  200 practitioners, (25 agile teams) to deliver a product –  The enterprise delivers software every 90 days in five, two

week iterations. –  Each team averages 15 stories per iteration. –  Number of stories that must be elaborated and delivered to

achieve the release objective = 25*5*15= 1,875!

  How is an enterprise supposed to reason about things? –  What is this new product going to actually do for our users? –  If we have 900 stories complete, 50% done, what do we

actually have working? How would we describe 900 things? –  How will we plan a release than contains 1,875 things?

  And, what if it took 500 people? 18

Page 10: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

10  

© 2008-2009 Leffingwell, LLC.

And further

  And, even if I know 100 things that “as a <role> I can <activity> so that <business value>”, can do

what Features does the system offer to its user and what benefits does it provide?

19

Feature Benefit Stars for conversations Highlight conversations of

special interests Colored label categorization Easy eye discrimination of

different types of stories (folder like metaphor)

Smart phone client application

Faster and more facile use for phone users – ease adoption

© 2008-2009 Leffingwell, LLC.

So we need two levels of planning

Iteration Cycle

Drives

Feedback - Adjust

Product & Release Cycle

Release Vision

Release Planning Release Scope and Boundaries

20

Iteration Planning

Develop & Test Review &

Adapt

Features

Stories

Page 11: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

11  

© 2008-2009 Leffingwell, LLC.

Which creates an iteration and release pattern

Stories

Release timebox

21

© 2008-2009 Leffingwell, LLC.

Implemented by Story Feature Realized by

0,1 1..*

Is one of

Backlog Item

Task 1 1..*

So we need to extend the information model

Features are another kind of Backlog Item

Introduce Gmail “Labels” as a “folder-like” conversation-organizing metaphor.

Or:

As a modestly skilled user, I can assign more than one colored label to a conversation so that I can see a conversation from multiple perspectives

Page 12: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

12  

H  

H  H  

H  

 

 Inspired  by  collabora;on  Leffingwell,  LLC.  &  Symbian  SoFware  Ltd.  

©2009 Leffingwell, LLC.

Which creates a bigger “Big Picture”

Teams  of  teams  may  be  organized  by  technology  domain,  product,  or  product  line,  system  or  subsystem  

© 2008-2009 Leffingwell, LLC.

Implemented by Story Feature Realized by

Is one of

Backlog Item

Task 1 1..*

Features also require testing

0,1 1..*

Acceptance Test

Done when passes

1..*

1 1

And maybe a new team …..

Features typically span many teams

Sometimes, a special team is dedicated for the purpose of testing system level features

Page 13: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

13  

© 2008-2009 Leffingwell, LLC.

What about non-functional requirements?

  Features and user stories express functional requirements

  But other requirements (NFRs) determine system quality as well: –  Performance, reliability and security requirements –  Industry and Regulatory Standards –  Design constraints, such as those that provide common

behavior across like components

  Typically, these system level qualities –  Span multiple components/products/applications/

services/subsystems –  Can often only be tested at the system level

25

© 2008-2009 Leffingwell, LLC.

Implemented by Story Feature Realized by

0,1 1..*

Is one of

Backlog Item Non-functional Requirement

Constrained by

Task 1 1..*

Acceptance Test

Done when passes

1..*

1 1

0..* 0..*

NFRs can be considered as constraints on new development

When we add labels to conversations, we still have to meet the accessibility standards.

Page 14: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

14  

© 2008-2009 Leffingwell, LLC.

Implemented by Story Feature

Realized by

0,1 1..*

Is one of

Backlog Item Non-functional Requirement

Constrained by

Task 1 1..*

Acceptance Test

Done when passes

1..*

1 1

0..*

1..*

System Validation Test

Compliant when passes

0..* 0..*

Which must also be tested

Often requires specialty skills and tools

May also be province of system team

1

© 2008-2009 Leffingwell, LLC.

Summary for Agile Programs: Is the model still lean and scalable?

Page 15: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

15  

© 2008-2009 Leffingwell, LLC.

SCALING TO THE PORTFOLIO

H  

H  H  

H  

For  discussion,  see  www.scalingsoFwareagility.wordpress.com    

 

 Inspired  by  collabora;on  Leffingwell,  LLC.  &  Symbian  SoFware  Ltd.  

©2009 Leffingwell, LLC.

Page 16: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

16  

© 2008-2009 Leffingwell, LLC.

At the enterprise portfolio level, even system features may be too fine grained   There may be dozens of concurrent programs   Each delivering dozens of features to market   How do portfolio managers communicate the

sweeping, larger scale initiatives that drive all those programs?

  We use the word “Epic” to describe this content type

31

© 2008-2009 Leffingwell, LLC.

Implemented by Story Epic Feature Realized by Realized by

0,1 1..* 0,1 1..*

Is one of

Backlog Item Non-functional Requirement

Constrained by

Task 1 1..*

Acceptance Test

Done when passes

1..*

1 1

0..*

1..*

System Validation Test

Compliant when passes

0.. 0..*

Epics drive programs with features

Epics are key value propositions that create competitive advantage

Epic may be implemented over long periods, even years

Abstract, high level, visionary

Page 17: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

17  

© 2008-2009 Leffingwell, LLC.

Epics, Features and Stories

Term Interest Size/Lifespan Testable Epic Business May span several GA releases No Feature Business,

Customer, User

Generally fits in one GA release (But may also be versioned across releases)

Yes

User Story

Product owner, Team, User

Demonstrable functionality, fits in one team iteration. Otherwise – split.

Yes

33

© 2008-2009 Leffingwell, LLC.

Themes represent investment priorities

34

Theme 1 27%

Theme 2 22%

Theme 3 10%

Theme 4 14%

Theme 5 27%

1H 2009 Investment Priorities

Themes are key product value propositions that provide marketplace differentiation and competitive advantage.

Themes are allocated, not prioritized

• Introduce voice and video chat from within mail • Desktop client integrations • Mail for Mobile 2.0 • Group chat from within mail

Page 18: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

18  

© 2008-2009 Leffingwell, LLC.

Why not forced-rank prioritization?

  Themes are designed to be addressed on “a percentage of time to be allocated basis.” –  Different from user stories and features –  example: lowest priority story on an iteration backlog

may not be addressed at all in an iteration and yet the iteration could be a success (meet its stated objectives).

  However, if the lowest priority (smallest investment mix) theme is not addressed over time, the enterprise may ultimately fail in its mission by not making its actual investments based on longer term business priorities

35

© 2008-2009 Leffingwell, LLC.

FINALLY, A FULLY EXPANDED MODEL FOR AGILE PORTFOLIO MANAGEMENT

Page 19: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

19  

Implemented  by  Story  Epic   Feature  

Realized  by   Realized  by  

0,1                    1..*   0,1                                  1..*  

Is  one  of  

Backlog  Item  Non-­‐func;onal  Requirement  0..                                                                            0..*  

Constrained  by  

Investment  Themes   0,  1                        1..*  

Realized  by  Task  

1                                        1..*  

Acceptance  Test  

Done  when  passes  

1..*  

0..*  

1..*  

System  Valida;on  Test  

Compliant  when  passes  

User  Story   Other  Work  Item  

Unit  Test   Func;onal  Test  

Consists  of  1  

1..*  

1..*   1..*  

Is  one  of  

1..*  

A  fully  elaborated  model  for  the  agile  enterprise  

version  

*  

© 2008-2009 Leffingwell, LLC.

Summary – Is the model still lean and scalable, really?

38

Page 20: A Lean and Scalable Requirements Information Model for the Agile

12/9/09  

20  

© 2008-2009 Leffingwell, LLC.

In conclusion - caveats

  This is only a model; there is no UML for agile “things”

  If you don’t need it all, don’t use it all   In any case, always do the “simplest thing that

can possibly work”

39

© 2008-2009 Leffingwell, LLC.

END

40