The Importance of Being Agile

Preview:

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