Upload
naresh-jain
View
13.747
Download
1
Embed Size (px)
DESCRIPTION
Overview presentation by Naresh and Bala for Agile India Conferences
Citation preview
Licensed Under Creative Commons by Naresh Jain
Agile OverviewEmbrace Uncertainty
Naresh and [email protected] and [email protected]
1
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
Who does Software Engineering?
5
Licensed Under Creative Commons by Naresh Jain
Who does Software Engineering?
5
Licensed Under Creative Commons by Naresh Jain
For the space shuttle’s operating system
6
Licensed Under Creative Commons by Naresh Jain
For the space shuttle’s operating system
6
Licensed Under Creative Commons by Naresh Jain
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
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
One More Data Point
8
Licensed Under Creative Commons by Naresh Jain
One More Data Point
8
Licensed Under Creative Commons by Naresh Jain
Another real software engineering project
9
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
SafeguardBallistic Missile Defense System…
10
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
Where did things go wrong?
11
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
Lower cost of change through higher quality software
18
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
Traditional Process
19
Licensed Under Creative Commons by Naresh Jain
Traditional Process
19
Licensed Under Creative Commons by Naresh Jain
50 % done
?
Traditional Process
19
Licensed Under Creative Commons by Naresh Jain
Applying Lean Principles to Software Development
20
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
XP
ScrumFDD
DSDMCrystal Family
New Methodologies Emerged
23
Licensed Under Creative Commons by Naresh Jain
2000
24
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 Jain26
Licensed Under Creative Commons by Naresh Jain
2001Agile
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:
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
But...with....
32
Licensed Under Creative Commons by Naresh Jain
Courage!!
But...with....
32
Licensed Under Creative Commons by Naresh Jain
Courage!!
Constant Business involvement
But...with....
32
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
Licensed Under Creative Commons by Naresh Jain
Questions?
33
Licensed Under Creative Commons by Naresh Jain
Thank You
34