You are on page 1of 15

Agile: approach of building products or services by

EMPOWERING and TRUSTING people, acknowledging CHANGE


AS A NORM, and promoting CONSTANT FEEDBACK

Agile is a PHILOSOPHY that uses organizational models based on


people, collaboration and shared values.

Agile uses rolling wave planning; iterative and incremental


delivery; rapid and flexible response to change; and open
communication between teams, stakeholders, and customers.

Agile is a MINDSET established through 4 VALUES, grounded by


12 PRINCIPLES & manifested through many DIFFERENT
PRACTICES

Agile is and isnt


Agile Is

Agile Is Not

A set of principles & practices


based on the Agile Manifesto
A disciplined project
management approach
Business & delivery focused,
welcoming change
Agile is a general concept;
Scrum and XP are specific
implementations of Agile
Incremental framework, frequent
delivery & continuous
feedback loops
An empirical process - frequent
inspect and adapt cycles that
minimize waste

Unplanned
Chaotic
Unpredictable
Open Ended
Undocumented
A methodology
Unconstrained
A Best Practice
Without its challenges

Why Agile?
Accelerate time to
market

Enhance software
quality

Reduce cost

Managing change
priorities

Project visibility

Enhance software
maintainability

Better align
IT/Business

Reduce risk

Improve team
morale

Increase productivity

Simplify
development
process

Improve/increase
engineering
discipline

Agile Manifesto

12 AGILE PRINCIPLES

1. Individuals and interactions over


processes
AGILE
and tools
VALUES
2. Working software over
comprehensive documentation
1. Our highest priority is to satisfy the
customer through early and continuous
delivery of valuable software.
2. Welcome changing requirements, even
late in development. Agile processes
harness change for the customer's
competitive advantage.
3. Deliver working software frequently,
from a couple of weeks to a couple of
months, with a preference to the
shorter timescale.
4. Business people and developers must
work together daily throughout the
project.
5. Build projects around motivated
individuals. Give them the
environment and support they need,
and trust them to get the job done.
6. The most efficient and effective method
of conveying information to and within
a development team is face-to-face

3. Customer collaboration over


contract negotiation
4. Responding to change over
following a plan
7. Working software is the primary
measure of progress.
8. Agile processes promote sustainable
development. The sponsors,
developers, and users should be able
to maintain a constant pace
indefinitely.
9. Continuous attention to technical
excellence and good design enhances
agility.
10. Simplicity--the art of maximizing the
amount of work not done--is essential.
11. The best architectures, requirements,
and designs emerge from selforganizing teams.
12. At regular intervals, the team reflects
on how to become more effective,
then tunes and adjusts its behavior
accordingly.

Numerous Agile Practices

Time-boxing
Retrospective
Spike Solution
Planning Poker
Backlog
Prioritization
Progress
Elaboration

Limit Work in
Progress
(WIP)
Short
Iterations
Sprint Goals
Servant
Leader
Self
-organization
Team
Agreements

Pair
Programming
Face to Face
Conversation
Test Driven
Development
(TDD)
Velocity
Unit Testing
..

Traditional Project Phases


Requirements
Analysis
Design
Coding

Time

Integration
Testing
Deployment

Final Software Out

Operations and
Maintenance

Agile Incremental Delivery


Product
Increment
s

Analysis
Design
Code
Integrat
e
Test
Deploy

Product
Increment
s

Analysis
Design
Code
Integrat
e
Test
Deploy

Product
Increment
s

Final Software Out


Feedback Loops
Review and Adjust
Inspect & Adapt

Time

Agile adapts to frequent feedback by delivering working


tested code

Agile Incremental Delivery


Agile team produces deployable
software every week.
In each iteration, the team analyzes,
designs, codes, tests, and deploys a
subset of features.
The team gets feedback much more
frequently.
The tight feedback loop also allows
Agile teams to improve their plans
quickly.

Whats Different?
Traditional

Agile

Defined process: Control and Coordinated

Empirical process: Inspect and Adapt

Work is organize around the team

Team organize around work

Work is assigned or push to the team

Work is store in queue and team pull the tasks

Plan all in advance

Plan as you go

Work breakdown structure

Feature breakdown structure

Functional specs

User stories

Gantt chart

Release plan

Status report

Information radiators/deliver as you go

Learn at the end

Learn every iteration

Follow the plan

Adapt everything

Manage task

Manage team

Conventional project team

Self-organized project teams

Avoid change

Embrace change

Prescriptive

Adaptive

Operating Model of an Agile


Team
Functional
Teams

Agile Teams

Project Manager
Business
Analyst

Testers/Q
A

Custom
er
Develop
Support Product
er
Enginee Manager
r

Work is organized around the team


Tasks are assigned (most of the time by
the PM)
Functional silos

Coach/Facilita
tor

Product
Owner

Cross
functional
Teams

Team organized around the work


Empowered
Self organize / Self managed
Team pulls the task from queue /backlog
Cross functional
Intensely collaborative

Value Delivery
Traditional

Agile

Time

Time

Value
Delivery
Risk of
Failure

12 Principles of Agile
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.
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.

12 Principles of Agile
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.
Continuous attention to technical excellence and
good design enhances agility.
Simplicity -the art of maximizing the amount of work
not done -is essential.
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.

True or False ? Answers


1

Agile recommend incremental & iterative delivery

True

Agile recommend big upfront design (BUFD)

False

Agile has defined change management process

False

Agile recommends directive teams

False

Agile measures progress by working software

True

False

Agile does not recommend any documentation in the


project
Agile recommends face to face interaction

Agile recommends accepting change during iteration

False

Agile teams make their own decisions

True

True

High Level Process Map


Envisioning

Speculate

Feasibility

NPV, IRR, ROI

Project
Visioning

Business Case
with High level
Estimates

Initiation

Epic
Stori
es

Them
e
Stori
es

Iteration 0

Testing
Agreement
Team
Environment
Iteratio
Architecture
Iteratio
Daily
Daily stand-up,
stand-up,
nn
approach
Development,
Development, Testing,
Testing,
Plannin
Plannin
Dependencies
deployment,
etc.
deployment,
etc.
Risks gg

ct
Backlo
gX
L

High level
estimating using
affinity
Product
Roadmap

Release
Plan

Iteration
Backlog

Adapt

Close

Iteration n
Iteration 3
Iteration 2
Iteration 1

Release Planning

Higher
Priorit
y
Lower
Priorit
y
Produ

Project
Charter

Explore

Revie
Revie
w
w

Next
Iteration
Go back to Release Planning
for another release, or if
final release, go to project
closeout

Iteration
Estimating
Task
Using Planning
Poker

Close Out

Retrospect
Retrospect
ive
ive

Increme
nt
Releas
e

BacklogTo Do
In ProgressDone

Burn
up/down
Task Board

Final
Product
Increme
nt