Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj...

15
1 © 2003 fastnloose ltd www.fastnloose.com Modelling in an Agile World John Daniels Fastnloose Limited © 2003 fastnloose ltd John Daniels Co-founder of Fastnloose Ltd Software development by dispersed teams Co-author of “UML Components” & “Designing Object Systems” Co-creator of the Syntropy method Highly influential on UML (esp. OCL) Software designer and developer for 20 years

Transcript of Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj...

Page 1: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

1

© 2003 fastnloose ltd

www.fastnloose.com

Modelling in an Agile World

John DanielsFastnloose Limited

© 2003 fastnloose ltd

John DanielsCo-founder of Fastnloose Ltd– Software development by dispersed teams

Co-author of “UML Components” & “Designing Object Systems”Co-creator of the Syntropy method– Highly influential on UML (esp. OCL)

Software designer and developer for 20 years

Page 2: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

2

© 2003 fastnloose ltd

AgendaAbout agileIs UML the spawn of Satan?Where modelling can help

© 2003 fastnloose ltd

About agile“Agility is the ability to both create and respond to change in order to profit in a turbulent business environment”Jim Highsmith, Agile Software Development Ecosystems

“Agile” is the new “Object”– “agile” is hip– even Microsoft are in on the act

Page 3: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

3

© 2003 fastnloose ltd

The Agile Manifesto“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.”

Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick – February 2001

© 2003 fastnloose ltd

Agility in practiceWhat does it mean to follow those values?– Acceptance and explicit incorporation of the things we

all know, deep down:• A skilled, motivated, enabled team can be extremely

productive• Every project is different• The Devil’s in the details• It’s hard to keep documentation up to date• The customer often doesn’t know what they want• Detailed project plans going out more than a few weeks aren’t

usually worth the paper they are written on

Page 4: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

4

© 2003 fastnloose ltd

Agile methodsXP– “No big design up front”, “You ain’t gonna need it”

SCRUMDSDMCrystaletc….

© 2003 fastnloose ltd

Example practices (from XP)The planning game– define stories, estimate, prioritise, schedule

Continuous automated testing– test-driven development

Continuous integrationRefactoringCollective ownershipPair programming

Page 5: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

5

© 2003 fastnloose ltd

Is UML the spawn of Satan?Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

© 2003 fastnloose ltd

Is UML the spawn of Satan?Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

UML and its supporting tools are the cornerstone of my detailed and rigorous development process

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Page 6: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

6

© 2003 fastnloose ltd

Is UML the spawn of Satan?Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

UML and its supporting tools are the cornerstone of my detailed and rigorous development process

With UML I can spend years documenting my software

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

© 2003 fastnloose ltd

Is UML the spawn of Satan?Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

UML and its supporting tools are the cornerstone of my detailed and rigorous development process

With UML I can spend years documenting my software

UML lets me freeze the requirements early

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Page 7: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

7

© 2003 fastnloose ltd

Is UML the spawn of Satan?Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

UML and its supporting tools are the cornerstone of my detailed and rigorous development process

With UML I can spend years documenting my software

UML lets me freeze the requirements early

Argh! I’ll have to redraw all those nice UML diagrams

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

© 2003 fastnloose ltd

UML – it’s just a language!UML is a language which can be used for many different purposesWe all use UML profiles all the time, even if we don’t realise itDifferent UML tools assume different purposes

Page 8: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

8

© 2003 fastnloose ltd

Conceptual model

Model of the world

The World

Built to understandInterpreted asstatements of fact

Specification model

TheSpecification

Abstract model of software

Built to specifyInterpreted as constraints on behaviour

The Software

Implementation model

Model of software

Built to explainInterpreted as descriptions of behaviour

systematic correspondence

Model perspectives

© 2003 fastnloose ltd

So where can modelling help?Aiding customer collaborationAiding interactions between developersAiding the creation of working software

Page 9: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

9

© 2003 fastnloose ltd

Aiding customer collaborationHow do you get the stories straight? – Models of the business, not the software

• Use of models to understand what the business does / should do

• Nothing to do (directly) with the software systems that support the business

– Models that specify the software scope– Models that can expose conflicts or omissions

How do you manage hundreds of separate stories? (esp. if they are written on index cards!)Need tools that can support abstract models

© 2003 fastnloose ltd

Direct customer interaction

Small-ish projectsDeveloper acts as analyst-designerAny models are private to developer“Pure XP”

Customer

Fast Software Ltd

Software

Developer

stories

demonstrations of working software

queries

Page 10: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

10

© 2003 fastnloose ltd

Explicit requirements modelLarge-ish projectsAnalyst and designer roles separatedRequirements model is explicit communication tool Customer

Brilliant Software Ltd

Analyst

queries, animations, scenarios

stories

Software

Designer

requirements

queries

demonstrations of working software

RequirementsModel

© 2003 fastnloose ltd

The Analysts’ Loop provides value only if

it cleans up the requirements by

raising questions about inconsistencies and gaps

The Analysts’ Loop provides value only if

it cleans up the requirements by

raising questions about inconsistencies and gaps

Customer

Brilliant Software Ltd

SoftwareDesignerAnalyst

stories requirements

queries

demonstrations of working software

RequirementsModel

questions

Page 11: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

11

© 2003 fastnloose ltd

Finding more use-cases: CRUDInspect class diagrams; ask:

– what changes this association or attribute?– what creates/deletes this object or association?

Supplier

Thing

Customerpocket: Money

stock0..*

possessions0..*

sale

refund

restock

open

theft

close

© 2003 fastnloose ltd

Finding more usecases: states

Unoccupied

Occupied

Dirty

Maintenance

reinstate

withdraw

withdraw

clean

check in

check out

Room

build

Page 12: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

12

© 2003 fastnloose ltd

Use-cases and objects – consistencywhat else

do they do/happens to them ?

-- CRUD; statecharts

who/whatis affected?-- write postconditions, look at terms used

Use casesborrow

Objects, attributes & associations

Member

LibraryBook

use caseborrow(member, library, book)

postbook is on loan to member

Book

MemberonLoanTo 0..1

*

what happens?--tasks, jobs, use-cases

what objects are there?--things, concepts, relationships

© 2003 fastnloose ltd

Aiding developer interactions

Use of models to allow developers to visualise, share and discuss code design ideas, solutionsUse of models to allow newcomers to see the big picture quicklyNeed tools that can move quickly and easily between code and diagrams

DesignModel

DesignModel

Software

Developer

DesignModel

ideas understanding

Developer

abstractions

Page 13: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

13

© 2003 fastnloose ltd

Aiding working softwareGeneration of test cases from requirements (iespecification) modelsUnderstanding the good test casesNeed tools that can generate tests

© 2003 fastnloose ltd

From requirements to tests

Set-up test scenario

Execute test

Check invariants and

post-conditions

Running a test

A requirements model will define the structural invariants and the

required results of stimuli

A requirements model provides a catalogue of test points when

testing is at the external event level

The structural constraints in a requirements model define the interesting edge and normal

conditions, and hence informs the choice of test data

Page 14: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

14

© 2003 fastnloose ltd

Tests as specificationTraditional textual functional specification– broad, covering all aspects of the problem– lacking depth, precision– big picture is often all you get

Tests-as-specification– precise where you have them– but nothing where you don’t– hard to see the big picture

Models can bridge this gap

© 2003 fastnloose ltd

Agility and the MDAModel Driven Architecture– “A complete MDA specification consists of a definitive platform-

independent base UML model (PIM), plus one or more platform-specific models (PSM) and interface definition sets, each describing how the base model is implemented on a different middleware platform.” OMG web site!

Assuming MDA can be made to work, it is compatible with a high level of agilityThe modelling language becomes the “programming” language, but the same principles apply

Page 15: Modelling in an Agile WorldMicrosoft PowerPoint - Modelling in an Agile World.ppt Author danielsj Created Date 5/6/2003 9:03:56 AM ...

15

© 2003 fastnloose ltd

SummaryModelling is compatible with agile methodsModels can help:– manage complex requirements– improve communication between developers– with the creation of good tests