Top Banner
Licensed Under Creative Commons by Naresh Jain Agile Overview Embrace Uncertainty Naresh and Bala [email protected] and [email protected] 1
72

Agile Overview

May 06, 2015

Download

Technology

Naresh Jain

Overview presentation by Naresh and Bala for Agile India Conferences
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 2: Agile Overview

Licensed Under Creative Commons by Naresh Jain

The Story of Software Development

Lean Thinking

Origin of Agile

Agile Values and Principles

Summary/Review

Today we’ll look at

2

Page 3: Agile Overview

Licensed Under Creative Commons by Naresh Jain

The Story of Software Development…

We started off with

Software Engineering

3

Page 4: Agile Overview

Licensed Under Creative Commons by Naresh Jain

“Software Engineering is the application of

a systematic, disciplined, quantifiable

approach to development, operation and

maintenance of software: that is, the

application of engineering to software.”IEEE Standard Computer Dictionary,

ISBN 1-55937-079-3, 1990

IEEE defines Software Engineering as...

4

Page 10: Agile Overview

Licensed Under Creative Commons by Naresh Jain

The last 11 versions of the space shuttle’s 420,000 line systems

had a total of 17 defects.

Some StatisticsNASA’s Defect Density

7

Page 11: Agile Overview

Licensed Under Creative Commons by Naresh Jain

The last 11 versions of the space shuttle’s 420,000 line systems

had a total of 17 defects.

Some StatisticsNASA’s Defect Density

7

Page 15: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Safeguard - Ballistic Missile Defense System

Another real software engineering project

9

Page 16: Agile Overview

Licensed Under Creative Commons by Naresh Jain

1969-1975, 5407 person years

Hardware designed at the same time as software specs being written

Late changes in requirements not an option

42

1820

20

reqmts

20 %

design

20 %

code &

unit test

18 %

integration

testing

42 %

Safeguard - Ballistic Missile Defense System

Another real software engineering project

9

Page 17: Agile Overview

Licensed Under Creative Commons by Naresh Jain

1969-1975, 5407 person years

Hardware designed at the same time as software specs being written

Late changes in requirements not an option

42

1820

20

reqmts

20 %

design

20 %

code &

unit test

18 %

integration

testing

42 %

Safeguard - Ballistic Missile Defense System

Did it Succeed?

Another real software engineering project

9

Page 19: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Revised Project Statistics

SafeguardBallistic Missile Defense System…

10

Page 20: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Revised Project StatisticsThe project was delivered according to specifications

SafeguardBallistic Missile Defense System…

10

Page 21: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Revised Project StatisticsThe project was delivered according to specifications

Cost: $25 Billion (not adjusted)

SafeguardBallistic Missile Defense System…

10

Page 22: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Revised Project StatisticsThe project was delivered according to specifications

Cost: $25 Billion (not adjusted)

1969-1975, 5407 person years

SafeguardBallistic Missile Defense System…

10

Page 23: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Revised Project StatisticsThe project was delivered according to specifications

Cost: $25 Billion (not adjusted)

1969-1975, 5407 person years

Operational for 133 days - Project terminated in 1978

SafeguardBallistic Missile Defense System…

10

Page 24: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Revised Project StatisticsThe project was delivered according to specifications

Cost: $25 Billion (not adjusted)

1969-1975, 5407 person years

‘By the time the 6-year anti-missile system project was completed, the new missiles were faster than the anti-

missile missiles’

Operational for 133 days - Project terminated in 1978

SafeguardBallistic Missile Defense System…

10

Page 26: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Software Engineering is a heavy weight methodology and such heavy weight methodologies characteristically are most successful when:

Requirements are stable

Technology is well known and mature

Everything happens as one would expect

We are not taking on anything new or unknown

We have done this many times before

Where did things go wrong?

11

Page 27: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Projects with these characteristics are few and far between.

Software Engineering is a heavy weight methodology and such heavy weight methodologies characteristically are most successful when:

Requirements are stable

Technology is well known and mature

Everything happens as one would expect

We are not taking on anything new or unknown

We have done this many times before

Where did things go wrong?

11

Page 28: Agile Overview

Licensed Under Creative Commons by Naresh Jain

SEI/IEEE Project Standards and

DefinitionsWaterfall

Requirements Management

RUP

Heavy Weight

Other Heavy Weight Methodologies

12

Page 29: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Heavy weight methodologies work in some instances, but there are high costs, and the risk in using them in

dynamic environments is high.

SEI/IEEE Project Standards and

DefinitionsWaterfall

Requirements Management

RUP

Heavy Weight

Other Heavy Weight Methodologies

12

Page 30: Agile Overview

Licensed Under Creative Commons by Naresh Jain

So, heavy weight methodologies don’t seem to meet our needs

Is there an alternative?

13

Page 31: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Agenda for this session

The Story of Software Development

Lean Thinking

Origin of Agile

Agile Values and Principles

Summary/Review

14

Page 32: Agile Overview

Licensed Under Creative Commons by Naresh Jain

The Toyota Production System, 1988 (1978), Taichii Ohno

Pull Scheduling - Just-in-Time Flow

Expose Problems - Stop-the-Line Culture

Study Of ‘Toyota’ Production System, 1981, Shigeo Shingo

Non-Stock Production - Single Minute Setup

Zero Inspection – Automatic Error Detection at Every Step

Lean Thinking – Eliminate Waste

15

Page 33: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Building Quality into the Process

16

Page 34: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Building Quality into the Process

Toyoda Loom

16

Page 35: Agile Overview

Licensed Under Creative Commons by Naresh JainSource: Beyond Agile Software Development Becoming Lean, Mary Poppendieck, Poppendieck.llc

Utilization (%)

Lessons from Queuing theory

17

Page 37: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Traditional cost profile

Time spent:• Finding defects• Fixing Defects• Regression Testing• Deploying

Lower cost of change through higher quality software

18

Page 38: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Agile system cost profile

Traditional cost profile

Time spent:• Finding defects• Fixing Defects• Regression Testing• Deploying

More defects found

& corrected – causes lower cost of defect

correction

Lower cost of change through higher quality software

18

Page 43: Agile Overview

Licensed Under Creative Commons by Naresh Jain

End-to-End small slices of

work

Applying Lean Principles to Software Development

20

Page 44: Agile Overview

Licensed Under Creative Commons by Naresh Jain

End-to-End small slices of

work 20 % done = 100 % usable

Applying Lean Principles to Software Development

20

Page 45: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Fix / Integrate $

Test

Code

DesignSpecifications

Use Cases / Functional Specs

Requirements Gathering

Project Plan/Estimation

$

Inception

$

$

$

Lean Principles applied to Software Development

21

Page 46: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Agenda for this session

The Story of Software Development

Lean Thinking

Origin of Agile

Agile Values and Principles

Summary/Review

22

Page 47: Agile Overview

Licensed Under Creative Commons by Naresh Jain

XP

ScrumFDD

DSDMCrystal Family

New Methodologies Emerged

23

Page 49: Agile Overview

Licensed Under Creative Commons by Naresh Jain

FDD | Feature Driven Development (Jeff DeLuca)

DSDM | Dynamic System Development Method (Dane Faulkner)

Adaptive Software Development (Jim Highsmith)

Crystal (Alistair Cockburn)

SCRUM (Ken Schwaber)

XP | Extreme Programming (Kent Beck)

Lean Software Development (Mary Poppendieck)

2000

24

Page 50: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Agenda for this session

The Story of Software Development

Lean Thinking

Origin of Agile

Agile Values and Principles

Summary/Review

25

Page 53: Agile Overview

Licensed Under Creative Commons by Naresh Jain

2001 “We are uncovering better ways of developing software by doing

it and helping others do it. Through this work we have come to value:

Agile manifesto

26

Page 54: Agile Overview

Licensed Under Creative Commons by Naresh Jain

2001 “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 tools. Agile manifesto

26

Page 55: Agile Overview

Licensed Under Creative Commons by Naresh Jain

2001 “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 tools. – Working software OVER comprehensive documentation.

Agile manifesto

26

Page 56: Agile Overview

Licensed Under Creative Commons by Naresh Jain

2001 “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 tools. – Working software OVER comprehensive documentation. – Customer collaboration OVER contract negotiation.

Agile manifesto

26

Page 57: Agile Overview

Licensed Under Creative Commons by Naresh Jain

2001 “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 tools. – Working software OVER comprehensive documentation. – Customer collaboration OVER contract negotiation. – Responding to change OVER following a plan.

Agile manifesto

26

Page 58: Agile Overview

Licensed Under Creative Commons by Naresh Jain

2001 “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 tools. – Working software OVER comprehensive documentation. – Customer 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.”

© 2001 Agile Alliance. http://www.agilemanifesto.org

Agile manifesto

26

Page 59: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Principles behind the Manifesto

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

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

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

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

27

Page 60: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Principles behind the Manifesto...

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

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

Working software is the primary measure of progress.

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

28

Page 61: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Principles behind the Manifesto...

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

Continuous attention to technical excellence and good design enhances agility.

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

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

29

Page 62: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Agenda for this session

The Story of Software Development

Lean Thinking

Origin of Agile

Agile Values and Principles

Summary/Review

30

Page 63: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Helps handle changing requirements & priorities

Lowers cost of change

Provides better visibility into project progress

Reduces risk

Maximizes return on investment (business value prioritized)

Encourages higher quality, simpler code

Delivers business value early & often

Use of Agile Methods

31

Page 66: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Courage!!

Constant Business involvement

But...with....

32

Page 67: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Courage!!

Constant Business involvement

A need for more Discipline

But...with....

32

Page 68: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Courage!!

Constant Business involvement

A need for more Discipline

Greater emphasis on Testing

But...with....

32

Page 69: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Courage!!

Constant Business involvement

A need for more Discipline

Greater emphasis on Testing

Whole Organization Involvement

But...with....

32

Page 70: Agile Overview

Licensed Under Creative Commons by Naresh Jain

Courage!!

Constant Business involvement

A need for more Discipline

Greater emphasis on Testing

Whole Organization Involvement

Last but not the least, with an OPEN MIND

But...with....

32