Title: Agile Familiarisation
1Agile Familiarisation
- Overview of what Agile is June 2008
2Sound 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
3Projects today are...
- Too slow
- My needs are changing, but IT cant keep up
- Nothing gets done in less than a year
- Not valuable enough
- Project scope is wrong. And weve already coded
half the system - Ive got lots of documentation that no one uses
for a system that doesnt 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
- Dont know whats going on with the project
- Im stuck with consultants that dont provide
value
4Waterfall versus Agile
5Comparing
Typical water fall model development (With some
overlap)
Agile model with Iterations
Small iterations help in getting early feedback
Requirements
Requirements
Requirements
Design
Design
Design
Development
Development
Development
Testing team peak
Test
Test
Test
Development team peak
Design team peak
Requirements peak
No big team peaks/Spikes
All the teams formed at start of project
Development team is idle or not formed
Requirements and test team are not on project
- 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
- 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
6Iterative 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
7Iterative Development
8Incremental Development
9What 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
10Why Agile
- Create and build the right requirements
- Reduce waste
- Accelerate client value
- Improve predictability
- Provide unparalleled transparency and control to
the client
11What is an Agile methodology? (Contd..)
12What 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
13Agile summary - on a postage stamp..
- establish a vision
- change always happens
- so prioritise your activity
- do something small
- get feedback
- decide next steps
14Agile Myths .
- no design
- no testing
- no documentation
- no idea of progress
- poor quality
- no plan
- auditors wont allow it
15Key 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
16Key benefits of AgileContd
- 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 dont
work are abandoned early on or are identified and
eliminated before they are even reached - The solution evolves over multiple cycles (known
as iterations), converging on an optimal response
to the business problem with minimal waste.
17Key benefits of AgileContd
- Accelerates DeliveryIterations 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
18Key benefits of AgileContd.
- 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.
19Agile Disadvantages
- Its hard!
- Makes all dysfunction visible
- Its doesnt 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
20- Sumit Gupta
- (sumit_gupta2001_at_yahoo.com)