45
Agile, why? Agile Software Development and its Manifesto

Agile, why? - units.it

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Agile, why? - units.it

Agile, why?Agile Software Development and its Manifesto

Page 2: Agile, why? - units.it

1970s - Waterfall modelManaging the Development of Large Software Systems by

Winston W. Royce, IEEE 1970

1970 20101980 1990 2000

W. Royce “Managing the Development of Large Software Systems“

System requirements

Software requirements

Analysis

Program design

Coding

Testing

Operations

Page 3: Agile, why? - units.it

1970s - Waterfall modelManaging the Development of Large Software Systems by

Winston W. Royce, IEEE 1970

1970 20101980 1990 2000

System requirements

Software requirements

Analysis

Program design

Coding

Testing

Operations

W. Royce “Managing the Development of Large Software Systems“

Page 4: Agile, why? - units.it

1970s - Waterfall modelManaging the Development of Large Software Systems by

Winston W. Royce, IEEE 1970

“risky and invites failure”

“testing phase occurs at the end of the development cycle”

“design changes…so disruptive that…requirements…violated”

“one can expect up to 100% overrun in schedule and/or costs”

Page 5: Agile, why? - units.it

Three Simple Phases

Analysis Design Implementation

Page 6: Agile, why? - units.it

Three Simple Phases

Analysis Design Implementation

Produce an analysis document, specifying high level structure and goals.

Analysis document

Page 7: Agile, why? - units.it

Three Simple Phases

Analysis Design Implementation

Translate the analysis document into a lower level document specifying functions and algorithms.

Analysis document

Design document

Page 8: Agile, why? - units.it

Three Simple Phases

Analysis Design Implementation

Simple translation of the design document into the more

detailed language of code.

Design document

Code

Analysis document

Page 9: Agile, why? - units.it

Strict, document-driven, single-pass waterfall model

1970 20101980 1990 2000

DoD experiencing significant failures

Jarzombek study on DoD projects

W. Royce “Managing the Development of Large Software Systems“ Department of Defense

DoD-Std-2167

Page 10: Agile, why? - units.it

Why were projects failing?$37B worth of DOD projects using a waterfall

approach (Jarzombek)

34%

20%

46%

Never usedExtensive reworkUsable

Page 11: Agile, why? - units.it

Why were projects failing?Actual use of waterfall requested features

(Jarzombek)

7%

13%

16%

19%

45%

NeverRarelySometimesOftenAlways

Page 12: Agile, why? - units.it

Why were projects failing?

In 1987 Fred Brooks led a task-force for the DOD to find out just what was going wrong.

“...the document-driven, specify-then-build approach ... lies at the heart of so many ... software problems.”

Page 13: Agile, why? - units.it

The Problem with

RequirementsMarch 1973

Page 14: Agile, why? - units.it

Charlie and JaneTaylorism in software development

Page 15: Agile, why? - units.it

Time

Cos

t of C

hang

e

Bohem (1981)

Cost of ChangeHow to reduce it?

Page 16: Agile, why? - units.it

Iterative and incremental development

1930 19701940 1950 1960

W. Shewhart“plan-do-study-act” (PDSA) cycles at Bell Labs

W. E. Demingvigorously promotingPDSA

X-15

Project Mercury

Page 17: Agile, why? - units.it

Iterative and incremental development

1970 20101980 1990 2000

IBM FSD • Trident submarine• Light Airborne

Multipurpose System• Space shuttle software

Scrum FDD, Crystal, DSDM

Extreme Programming (XP)

Books and publications promoting incremental and iterative practices

Manifesto for Agile Software Development

Page 18: Agile, why? - units.it

From TPS to Lean and Agile

TPS

Lean

Agile

Deming

Ohno

Poppendieck, Poppendieck

Page 19: Agile, why? - units.it

Agile in the last 17 years

1990 20302000 2010 2020

Agile spreads in the software development world

For Agile “it’s the best and the worst of times”

Agile in large IT firms, e.g., Amazon, Spotify

Agile starts getting recognition outside of software development

Page 20: Agile, why? - units.it

Agile Today

⬆ Ways to deliver instant, intimate, incremental, risk-free value at scale

⬆ Spreading from IT Department to all parts, and all kinds, of organizations

ꔅ Agile implemented as a superficial patch on traditional management

ꔅ Huge amount of “fake Agile” going on

Page 21: Agile, why? - units.it

Characteristics of Agile

Page 22: Agile, why? - units.it

Adaptability

• Adaptability as a driver

• Two common misunderstandings

⬆Agility/Adaptability ⇒ ⬆Value

Agility ≠ FastAgility ≠ Cheap

Page 23: Agile, why? - units.it

Adaptive Vs Iterative

Page 24: Agile, why? - units.it

Empirical Vs Defined Process

Page 25: Agile, why? - units.it

Continuous ImprovementDeming Cycle

Page 26: Agile, why? - units.it

Time

Cos

t of C

hang

e

Bohem (1981)

Beck (1999)

Cost of ChangeCan be reduced by increasing quality

Page 27: Agile, why? - units.it

What is Agile?

Page 28: Agile, why? - units.it

Manifesto for Agile Software Development

Page 29: Agile, why? - units.it

Manifesto for Agile Software Development

We are uncovering better ways of developing

software by doing it and helping others do it.

Through this work we have come to value:

[…]

That is, while there is value in the items on

the right, we value the items on the left more.

Page 30: Agile, why? - units.it

We value…

Page 31: Agile, why? - units.it

We value…

Page 32: Agile, why? - units.it

We value…

Page 33: Agile, why? - units.it

We value…

Page 34: Agile, why? - units.it

We follow these principles:

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

1.

Page 35: Agile, why? - units.it

We follow these principles:

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

competitive advantage.

2.

Page 36: Agile, why? - units.it

We follow these principles:

Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to

the shorter timescale.

3.

Page 37: Agile, why? - units.it

We follow these principles:

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

4.

Page 38: Agile, why? - units.it

We follow these principles:

Build projects around motivated individuals. Give them the environment and support they need, and trust

them to get the job done.

5.

Page 39: Agile, why? - units.it

We follow these principles:

The most efficient and effective method of conveying information to and within a development team is

face-to-face conversation.

6.

Page 40: Agile, why? - units.it

We follow these principles:

Working software is the primary measure of progress.

7.

Page 41: Agile, why? - units.it

We follow these principles:

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

constant pace indefinitely.

8.

Page 42: Agile, why? - units.it

We follow these principles:

Continuous attention to technical excellence and good design enhances agility.

9.

Page 43: Agile, why? - units.it

We follow these principles:

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

10.

Page 44: Agile, why? - units.it

We follow these principles:

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

11.

Page 45: Agile, why? - units.it

We follow these principles:

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

12.