Agile Software Development Methodology

Download Report

Transcript Agile Software Development Methodology

Agile Familiarisation
Overview of what Agile is
June 2008
Responding To Change
Sound Familiar
Time to market for projects is too long
Unrealistic deadlines
Poor Estimation
Requirement Changes
Immature architecture and design
No Documentation or too much
Inadequate Testing
2
Projects today are...
Too slow
 “My needs are changing, but IT can’t keep up”
 “Nothing gets done in less than a year”
Not valuable enough
 “Project scope is wrong. And we’ve already coded half the
system”
 “I’ve got lots of documentation that no one uses for a system
that doesn’t meet my needs.”
 “We waste time designing and building features that are never
used”
Not responsive
 “Projects force the agency to close on requirements before
they really know what they want”
 “Every little modification results in a change order”
Not in control
 “Don’t know what’s going on with the project”
 “I’m stuck with consultants that don’t provide value”
3
Waterfall versus Agile
Timeline Comparison
Month:
1
2
3
4
5
6
7
8
R equire m ent s fo r t he
E n d S tat e
1
Ag ile
H igh L eve l
S c o pe
an d
D es ign fo r
E n d S tat e
2
10
11
12
11
12
In it ial R OI D e livere d
W ate rfall
Month:
9
D es ign fo r the
E n d S tat e
3
4
R eleas e 1
D eve lo pm en t
5
6
T es t
7
8
R eleas e 2
D eve lo pm en t
9
T es t
10
In it ial R OI D e livere d
R eleas e 1
D eve lo pm en t ( inc ludes
de tailed require m ent s ,
de s ign & t es t)
R eleas e 2
D eve lo pm en t ( inc ludes
de tailed require m ent s ,
de s ign & t es t)
N ew bus ine s s
de m ands are abs orbe d
T ec h nic al e nvironm e nt
c hanges are abs orbe d
4
§C lear “Go/N o-Go” dec is ion fo r n e xt p h as e
§L ow er in itial in v es tm en t
§E ar lier R O I
§E ar ly v is ib ility in to pro jec t s u cc es s
§Abi lity to abs orb c h an ge
Comparing
Typical water fall model development (With some overlap)
Agile model with Iterations
Small iterations help in getting early feedback
Requirements
Design
Requirement
s
Design
Development
Design
team
peak
Development
team is
idle or
not
formed
§
§
§
§
Development
Development
Test
Requireme
nts
peak
Requirement
s
Design
Developme
nt
team
peak
Requirements and
test team are
not on project
Testing
team
peak
Test
Test
Requirement
s
Design
Developmen
t
Test
No big team peaks/Spikes
All the teams formed at
start of project
§
§
Little scope in the project plan for
accepting changes with out re-planning
and long Change request cycles
Re work due to late feed back and
unclear requirements
Business only see finished article during
UAT
Benefits not realised till end
§
§
§
§
5
Close communication reduces re work
Better requirements understanding with
user stories
Better quality products with regular
demos and testing
Each iteration gives value to business
In production early
Ability to absorb change requests easily
Iterative Incremental Development
“Iterative development is an approach to building software
(or anything) in which the overall lifecycle is composed of
several iterations in sequence.
Each iteration is a self-contained mini-project composed of
activities such as requirements analysis, design,
programming, and test.
Usually the partial system grows incrementally with new
features, iteration by iteration; in other words, incremental
development.”
--Craig Larman
6
Iterative Development
Visibility
Iterative Development
All-At-Once Development
7
Time
Incremental Development
Value
Incremental
Delivery
All-At-Once
Delivery
Time
8
What is an Agile methodology?
Agile development is a methodology of software development that
emphasizes customer satisfaction through continuous delivery of
Functional software. Based on a variety of iterative development
disciplines Agile methods put developers to work in small teams to
tight budgets and short timescales.
 Agile methods are considered
 Lightweight
 People-based rather than Process-based
 Adaptive rather than predictive
 Less document oriented than rigorous methods
9
Why Agile
Create and build the right requirements
Reduce waste
Accelerate client value
Improve predictability
Provide unparalleled transparency and control to
the client
10
What is an Agile methodology?
Agile Method
Types
11
(Contd..)
What is an Agile methodology?
Agile Manifesto: Values
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Continuous Testing
 Short iterations (Incremental cycles)
Responding to change over following a plan
 Individuals and interactions over processes and tools

12
Agile summary - on a postage stamp..
• establish a vision
• change always happens
• so prioritise your activity
• do something small
• get feedback
• decide next steps
13
Agile Myths ….
no design
no testing
no documentation
no idea of progress
poor quality
no plan
auditors won’t allow it
14
Key benefits of Agile
 Increases Flexibility - Minimizes up-front investment and
maximizes return on investment (ROI) by creating an efficient IT
development process
 Delivers the right solution - Aligns users and stakeholders with the
right people to deliver the solution that the business actually
needs
 Accelerates Delivery - Iterations get to the right solution faster
 Reduces risk and increases Quality - Greater stakeholder visibility
and control
15
Key benefits of Agile…Contd
Increases Flexibility
2003 Standish Group report highlighted an alarming
statistic with technology projects:
 Nearly two-thirds of the features built into these
solutions are rarely or never used
Solution: Evolutionary design
 It is a nonlinear approach where change is expected,
and where the team uses actual development to gain
empirical data to inform the design
 Blind alleys or requirements that simply don’t work
are abandoned early on or are identified
eliminated before they are even reached
and
 The solution evolves over multiple cycles (known as
iterations), converging on an optimal response to the
business problem with minimal waste.
16
Key benefits of Agile…Contd
Accelerates Delivery
Iterations reinforce evolutionary design and form a repetitive
'timebox' mentality for the project teams and clients. This translates
into speed: the solution gets delivered faster and earlier
Solution
 The development teams deliver working, fully production-grade
software much earlier in the engagement This early software is
not merely a proof of concept.
 The team focuses development first on high-risk and high-value
aspects, which means the earliest completed software is actually
the most critical part of the solution.
 Stakeholders can choose to deploy this functionality (they may
also elect to learn and improve it to converge on an optimal
solution over multiple iterations)
 Putting working software in front of business users early yields
other critical benefits: it helps legitimize the project spend, drives
eventual adoption, and, thus, facilitates
organizational change
17
Key benefits of Agile…Contd.
 Reduces risk and increases quality
 Stakeholders know exactly where the
project stands at all times and can
change its course as the business needs
change
 Solution
The Story Log
 The story log is an active, living scope
of work that stakeholders use to drive
the initiative
 A story is a work item that delivers
tangible stakeholder value within the
iteration. Examples include
implementing a report, adding a new
feature to a web application, etc.
18
Agile Disadvantages
It’s hard!
Makes all dysfunction visible
 Its doesn’t fix anything: the team has to do it
 Feels like things are worse at the beginning
Bad products will be delivered sooner, and doomed projects
will fail faster
Partial adoption may be worse than none at all
19
Sumit Gupta
([email protected])
20