Upload
phil-robinson
View
443
Download
4
Embed Size (px)
DESCRIPTION
“Agile” development can be as a “grass roots” reaction to the complexity of predictive methodologies methodologies. The agile manifesto provocatively states that it “values individuals over processes, working software over documentation, customer collaboration over contract negotiation and responding to change over following a plan”.To many this sounds like a recipe for chaos. However, supporters of agile development are quick to point to overly bureaucratic processes, mountains of unread documentation, dissatisfied customers and failed projects.This presentation explores agile development and attempts to separate the reality from the hype.
Citation preview
www.lonsdalesystems.com
www.lonsdalesystems.com
Technology Adoption
The “chasm”
Laggards LateMajority
EarlyMajority
EarlyAdoptors Innovators
www.lonsdalesystems.com
Methodology Waves
Structu
red
Method
ologie
s
Object-
Oriente
d
Method
ologie
s
Agile
Method
ologie
s
1980 1990 2000
agile methodologies have crossed“the chasm”
www.lonsdalesystems.com
Structured Methodologies
• Transformation of work products• Waterfall life-cycle addresses requirements
and architecture risks late in the project• Attempt to “predict” all necessary tasks
TestCase
Test
COBOLC
Construction
StructureDiagrams
Design
Data FlowDiagrams
DataModels
Analysis
Text
Requirements
www.lonsdalesystems.com
Structured Methodologies
• Transformation of work products• Waterfall life-cycle addresses requirements
and architecture risks late in the project• Attempt to “predict” all necessary tasks
TestCase
Test
COBOLC
Construction
StructureDiagrams
Design
Data FlowDiagrams
DataModels
Analysis
Text
Requirements
www.lonsdalesystems.com
TestCase
TestConstructionDesignAnalysis
UseCase
Requirements
Objects
Object-Oriented Methodologies
• Evolution of work products• Iterative life-cycle addresses requirements and
architecture risks early in the project• Still attempts to “predict” all necessary tasks
www.lonsdalesystems.com
TestCase
TestConstructionDesignAnalysis
UseCase
Requirements
Objects
Object-Oriented Methodologies
• Evolution of work products• Iterative life-cycle addresses requirements and
architecture risks early in the project• Still attempts to “predict” all necessary tasks
www.lonsdalesystems.com
Agile Motivation
Say after me… “software
development is not the same as
building!”
“Neither is it the same as
manufacturing or digging big holes in the ground”
www.lonsdalesystems.com
Building
10 % 20 % 70 %
Require
ments
Design
Constructi
onSmart peopleMust obey physical laws
Less smart peopleExpensiveTime-consumingMaterials required
www.lonsdalesystems.com
30 % 70 %
Require
ments
Design
Software Development
Smart peopleEndlessly adaptable
Models Source Code
Construction is–Free–Instant–Error free–No material required
www.lonsdalesystems.com
30 % 70 %
Require
ments
Design
Software Development
Smart peopleEndlessly adaptable
Models Source Code
Construction is–Free–Instant–Error free–No material requiredAgile methodologies
focus on the uniqueness of software development…
Agile methodologies focus on the uniqueness of software development…
www.lonsdalesystems.com
Agile Methodologies
• “Agile”– Characterised by
quickness, lightness, and ease of movement; nimble
– Mentally quick or alert: an agile mind
• Agile methodologies attempt to be “adaptive” rather than “predictive”
www.lonsdalesystems.com
Agile Methodologies
• “Agile”– Characterised by
quickness, lightness, and ease of movement; nimble
– Mentally quick or alert: an agile mind
• Agile methodologies attempt to be “adaptive” rather than “predictive”
www.lonsdalesystems.com
Agile Methodologies
• eXtreme Programming (XP)• Crystal• Scrum• Feature Driven Development (FDD)• Dynamic System Development Method
(DSDM)
www.lonsdalesystems.com
eXtreme Programming
www.lonsdalesystems.com
eXtreme Programming
www.lonsdalesystems.com
eXtreme Programming
Peer reviews are a proven technique for improving quality. Pair programmingis simply a logical extension of peerreviews…
www.lonsdalesystems.com
eXtreme Programming
www.lonsdalesystems.com
eXtreme Programming
Testing is fundamental to software quality.Designing test cases before coding and employing automated test tools is simply a logical extension…
www.lonsdalesystems.com
eXtreme Programming
www.lonsdalesystems.com
eXtreme Programming
Even simple designssuffer the effectsof entropy over time.Continuous design improvement (refactoring) is a Way of preventingthis from happening…
www.lonsdalesystems.com
eXtreme Programming
www.lonsdalesystems.com
eXtreme Programming
All project teamsHave their own vocabulary to describe systems.A system metaphor is simply a way of formalising this…
www.lonsdalesystems.com
eXtreme Programming
www.lonsdalesystems.com
eXtreme Programming
It is obvious that tiredand exhausted developers do not give their best.Maintaining a sustainable pace is a sensibleresponse…
www.lonsdalesystems.com
eXtreme Programming
www.lonsdalesystems.com
eXtreme Programming
Communication is an important aspect of all projects.Locating all team members together with a full-time customer representative improves communication…
www.lonsdalesystems.com
eXtreme Programming
www.lonsdalesystems.com
eXtreme Programming
Scope + Quality = Time + Cost
www.lonsdalesystems.com
eXtreme Programming
Scope + Quality = Time + Cost
Developer estimate time and costUsers prioritise scope and qualityTime and cost are fixed for an iterationScope is planned for an iteration
www.lonsdalesystems.com
Which Approach?
Predictive???Agile???
www.lonsdalesystems.com
Which Approach?
Predictive???Agile???
The most widelyused approach to software development is still…“Code and Fix”
The most widelyused approach to software development is still…“Code and Fix”
www.lonsdalesystems.com
Which Approach?
Predictive???Agile???
The most widelyused approach to software development is still…“Code and Fix”
The most widelyused approach to software development is still…“Code and Fix”
“Responding to change over following a plan”“Great! Now I have a reason to avoid planning and just code whatever comes up next…”
www.lonsdalesystems.com
Which Approach?
PredictiveAgile
High certaintyRapid valueObjectiveLarger teamsSmaller teamsSizeExpensiveInexpensiveRefactoring
Current and future requirements
Current requirements only
Architecture
Known early, stable
Emerging, changing
RequirementsAvailableCommittedCustomersAdequate skillsSuperior skillsDevelopers
www.lonsdalesystems.com