1 the new (agile) methodology martin fowler chief scientist, thoughtworks

42
1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks www.martinfowler.com/articles/newMethodology.html

Upload: bonnie-weaver

Post on 26-Dec-2015

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

1

The New (Agile) Methodology

Martin FowlerChief Scientist, ThoughtWorks

www.martinfowler.com/articles/newMethodology.html

Page 2: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

2

Code and Fix

» Still the most popular approach» Development builds features

– Little control over schedule– Frequent changes of requirements

» Painful test and integration– Hard to say when it ends

Page 3: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

3

Methodology

» Bringing Engineering Discipline to software– Break projects down into stages– Control changes to requirements– Documentation

Page 4: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

4

Is Methodology Considered Harmful?

» Bureaucracy– Lots of “pretty pictures”, but nothing that

works– Harder to change documentation

» Rigidity– Cannot change when need to– Deliver what customer asked for, but not

what customer needs.– Difficult to tune for specific project – even

with tailoring

Page 5: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

5

Agile Methodologies

» New breed of methodologies that have discipline without bureaucracy

» E.g.: – XP (Extreme Programming)– Crystal / Highsmith ASD– Feature Driven Development– SCRUM– DSDM

Page 6: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

6

A Meeting at Snowbird

» Alistair Cockburn» Jim Highsmith

» Kent Beck» Ward Cunningham» James Grenning» Ron Jeffries» Robert Martin

» Jon Kern

» Mike Beedle» Ken Schwaber» Jeff Sutherland

» Arie van Bennekum

» Andrew Hunt» Dave Thomas» Brian Marick» Steve Mellor» Martin Fowler

Page 7: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

7

Agile Manifesto

Individuals and Interactions

over Process and Tools

Working Software

over Comprehensive Documents

Customer Collaboration

over Contract Negotiation

Responding to Change

over Following a Plan

We Value:

www.agileAlliance.org

Page 8: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

8

Warning

» Agile methods are not for all projects– Still very new– Boundaries are not yet understood

» There’s a lot of zealotry about– Both positive and negative

Page 9: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

9

What makes “light” right?

» Most people focus on “light”– i.e.: lack of documents and the processes

that create them» We think the priorities are

– Adaptivity– vs. predictivity

– People orientation– vs. process-orientation

Page 10: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

10

The Engineering Metaphor

» Figure out what you need– Understand, stabilize, and sign off

requirements» Produced a detailed design

– UML or similar» Hand off to Construction

– Programming

Page 11: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

11

Requirements Engineering

Requirements are the things that you should discover before starting to build your product. Discovering the requirements during construction, or worse, when you client starts using your product, is so expensive and so inefficient, that we will assume that no right-thinking person would do it, and will not mention it again.

Robertson and Robertson, Mastering the Requirements Process

Page 12: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

12

Adaptivity

» Requirements aren’t stable– “Welcome changing requirements, even late

in development. Agile processes harness change for the customer's competitive advantage.”

Page 13: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

13

Controlling Adaptivity: Iterations

AnalysisAnalysis DesignDesign CodingCoding TestingTesting

DD

AA CC

TT

DD

AA CC

TT

DD

AA CC

TT

Page 14: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

14

Agile Iterations

» Delivering software is a key feedback mechanism– “Working software is the primary measure of

progress”» Short iterations and frequent delivery

– “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale”

» Long term plans are fluid– “Welcome changing requirements, even late in

development. Agile processes harness change for the customer's competitive advantage”

Page 15: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

15

The Agile Customer

» Agile development does not fit well with fixed-price / fixed scope– “Business people and developers must work

together daily throughout the project”» Customer needs to steer project

– Must be closely involved– Responsible for success or failure

Page 16: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

16

People First

» Software is built by people: not by Plug Compatible Programming Units

» The methodology must fit your people, not vice-versa

» The people doing the work figure out how to do it best– “Build projects around motivated

individuals. Give them the environment and support they need, and trust them to get the job done”

Page 17: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

17

Self-Adaptive Process

» The process you start with shouldn’t be the one you finish with

» Review process regularly» Everyone is involved in evolution

Page 18: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

18

Principles (1)

» Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

» Working software is the primary measure of progress

» Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

Page 19: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

19

Principles (2)

» Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

» Business people and developers must work together daily throughout the project.

» The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

Page 20: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

20

Principles (3)

» Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

» Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

» The best architectures, requirements, and designs emerge from self-organizing teams.

Page 21: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

21

Principles (4)

» Continuous attention to technical excellence and good design enhances agility.

» Simplicity--the art of maximizing the amount of work not done--is essential.

» At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Page 22: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

22

XP (Extreme Programming)

» Developed by Kent Beck– Based on Smalltalk projects in the 90’s– Collaboration with Ward Cunningham

» First “done” on C3– Smalltalk Payroll system for Chrysler

» Now an informal community– Ron Jeffries, Robert Martin, Chet

Hendrickson, Jim Newkirk, Don Wells, Ken Auer, Bill Wake…

Page 23: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

23

XP Practices

Metaphor

CollectiveOwnership

CodingStandard

40 HourWeek

ContinuousIntegration

On-SiteCustomer

Planning Game

Acceptance Tests

SimpleDesign

PairProgramming

Test-First Design

Refactoring

Small Releases

The Jeffries Model

Page 24: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

24

XP Values

» Communication– Rich informal networks of communication

» Feedback– Build in a rich set of feedback loops so we

know where we are» Simplicity

– Try the simplest things that could possibly work

» Courage– Play to win

Page 25: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

25

Balance of PowerCustomer» Itemize “stories”

(features) of useful function

» Decide on business value of stories

» Prioritizes stories » Defines acceptance

tests for stories» Can change plan at

any time

Programmers» Provides estimates for

stories» Builds the function » Maintains high quality

at all times» Sustainable pace

Business people make business decisionsTechnical people make technical decisions

Page 26: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

26

Boundary Conditions

» Size– Up to 20 developers

» Location– Co-located team

» Requirements– Volatile or not well understood

» Acceptance– All involved must want to use it

Page 27: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

27

SCRUM

» Developed by several people in the patterns community– Mike Beedle, Martine Devos, Yonat Sharon,

Ken Schwaber, Jeff Sutherland» Planning process based around short

agile iterations– Scrummers often use XP’s

design/development practices

Page 28: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

28

SCRUM’s Sprints

» Scrum iterations are called sprints– Usually around 30 days

» During sprint requirements are fixed for that sprint

» Produces working software with Demo at end

» Team chooses appropriate process for sprint

Page 29: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

29

SCRUM: Backlog

» Prioritized list of work items» Backlog may change continuously» Only one person controls backlog» Sprint team selects items from backlog to

do in next sprint– Sprint team chooses what it thinks it can

achieve in collaboration with backlog manager

» Multiple sprint teams may work off one backlog

Page 30: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

30

SCRUM meetings

» Short Daily Meeting– ~15 minutes

» Whole sprint team attends, plus outsiders– Pigs and Chickens

» Topics– What did you do since last scrum?– What are your blocks?– What will you be doing in next 24 hours?

Page 31: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

31

Highsmith / Cockburn

» Recent union of two methodologists» Alistair Cockburn

– Crystal Family» Jim Highsmith

– Adaptive Software Development

Page 32: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

32

Crystal Family

People

Comfort

Essentialmoney

Life

1 - 6 - 20 - 40 - 100 - 200 - 500 - 1,000

C6 C20 C40 C100 C200 C500 C1000

D6 D20 D40 D100 D200 D50 D1000

E6 E20 E40 E100 E200 E500 E1000

L6 L20 L40 L100 L200 L500 L1000

Discretionarymoney

Cri

ticality

Family of Methodologies tuned to team size and criticality

Page 33: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

33

The Tolerant Crystal

» Observing Methodology Use– The people on the projects were not interested in

learning our system. – They were successfully able to ignore us, and were

still delivering software, anyway» Strong People Orientation

– People are communicating beings, doing best face-to-face.

– People have trouble acting consistently over time. – People are highly variable.– People generally want to be good citizens.

What is the sloppiest methodology that could work?

Page 34: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

34

Shrink to Fit

» At project start team chooses its own methodology following Crystal guidelines– Talk to people about previous projects, and

company culture» Review process at end of every iteration

– What’s working?– What can we do better?– What puzzles us?– Also review mid way if more than 3 weeks

Page 35: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

35

Highsmith’s ASD

» ASD = Adaptive Software Development» Primarily a philosophy underpinning agile

development approaches» Adaptive Cycle

– Speculate– Collaborate– Learn

Page 36: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

36

Feature Driven Development

» Developed by Peter Coad and Jeff de Luca at TogetherSoft

Page 37: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

37

FDD: Five Processes

» Initial Processes– Develop an Overall Model – Build a Features List – Plan by Feature

» Iterative Processes– Design by Feature – Build by Feature

Page 38: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

38

FDD: Team Organization

» Multiple Teams– Features assigned to chief programmer

» Chief Programmer– Responsible for overall design of feature– Gathers class owners to work on feature– Coordinates and mentors class owners

» Class Owners– Work on particular classes

Page 39: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

39

DSDM

» Dynamic Systems Development Method» Originated in the UK

– Consortium of end user and IT development organizations

– Spreading across Europe and into the US» Many ‘serious’ methodology trappings

– Detailed manuals– Accreditation and training

Page 40: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

40

DSDM: Basic processes

» Feasibility and Business Study» Functional Model Iteration

– Modeling and prototyping» Design and Build Iteration

– Evolutionary build with integrated testing» Implementation

– Handover from development to operations» Each process is one or more iteration

– Up to six weeks in length– Carry out in any order

Page 41: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

41

RUP ?

» Rational Unified Process– Developed by Rational Software led by

Philippe Kruchten– Really a process framework

» Large Process– Many artifacts and roles– Process and tool oriented

» Needs a lot of trimming to be agile– Robert Martin: dX– Craig Larman: Agile UP

Page 42: 1 The New (Agile) Methodology Martin Fowler Chief Scientist, ThoughtWorks

42

Final Thoughts

» New Breed of Methodology» Suited for some kinds of software

development– Volatile environments

» Early days– Boundary conditions not well understood

» More in common than differences– Lots of inter-method borrowing