Agile Overview

Post on 06-May-2015

13744 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Overview presentation by Naresh and Bala for Agile India Conferences

Transcript

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

Licensed Under Creative Commons by Naresh Jain

The Story of Software Development…

We started off with

Software Engineering

3

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

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

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

Licensed Under Creative Commons by Naresh Jain

Safeguard - Ballistic Missile Defense System

Another real software engineering project

9

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

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

Licensed Under Creative Commons by Naresh Jain

Revised Project Statistics

SafeguardBallistic Missile Defense System…

10

Licensed Under Creative Commons by Naresh Jain

Revised Project StatisticsThe project was delivered according to specifications

SafeguardBallistic Missile Defense System…

10

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

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

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

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

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

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

Licensed Under Creative Commons by Naresh Jain

SEI/IEEE Project Standards and

DefinitionsWaterfall

Requirements Management

RUP

Heavy Weight

Other Heavy Weight Methodologies

12

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

Licensed Under Creative Commons by Naresh Jain

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

Is there an alternative?

13

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

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

Licensed Under Creative Commons by Naresh Jain

Building Quality into the Process

16

Licensed Under Creative Commons by Naresh Jain

Building Quality into the Process

Toyoda Loom

16

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

Utilization (%)

Lessons from Queuing theory

17

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

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

Licensed Under Creative Commons by Naresh Jain

End-to-End small slices of

work

Applying Lean Principles to Software Development

20

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Licensed Under Creative Commons by Naresh Jain

Courage!!

Constant Business involvement

A need for more Discipline

But...with....

32

Licensed Under Creative Commons by Naresh Jain

Courage!!

Constant Business involvement

A need for more Discipline

Greater emphasis on Testing

But...with....

32

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

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

top related