Agile in a nutshell
Jonathan Rasmusson
http://agilewarrior.wordpress.com/
© Copyright 2009, Rasmusson Software Consulting
Adaptive plans
The Waterfall Horror
Feature Show
Beware
Agile Software Delivery
- Coming soon to a project near you -
© Copyright 2009, Rasmusson Software Consulting
What we’re going to cover
• You already know agile planning
• What to expect
• De-bunk some myths
• Overview some agile methods
• 3 steps towards agility today
© Copyright 2009, Rasmusson Software Consulting
Agile planning in a nutshell
© Copyright 2009, Rasmusson Software Consulting
Too much to do, not enough time
Credit: http://www.flickr.com/photos/geneoh/
© Copyright 2009, Rasmusson Software Consulting
You make a list
Alright, what do I need to
do, to get ready for this
date?
ToDo List
Clean house
Do dishes
Get wine
Vacuum
Write poem
Get handsome
Wash car
Get flowers
Iron shirt
Work out
Doing this alone makes you feel good
© Copyright 2009, Rasmusson Software Consulting
You size things up
Looks like it shouldn’t take
more than a couple of hours!
ToDo for date
1 hr Clean house
½ hr Do dishes
2 hr Get wine
½ hr Vacuum
½ hr Write poem
1 hr Get handsome
1 hr Wash car
½ hr Get flowers
½ hr Iron shirt
½ hr Work out
~ 8 hrs
© Copyright 2009, Rasmusson Software Consulting
Most
important You set some priorities
Dang, mom says she’s going
be in in 11 hrs.
ToDo for date
1 hr Clean house
½ hr Do dishes
2 hr Get wine
½ hr Vacuum
½ hr Write poem
1 hr Get handsome
1 hr Wash car
½ hr Get flowers
½ hr Iron shirt
½ hr Work out
Least Out
important of scope© Copyright 2009, Rasmusson Software Consulting
Start executing
Roses are red, violets are blue,
I hope you like this apple juice.
Cheese and crackers too.
ToDo for date
1½ hrhr Clean house
2 hr Do dishes
½ hr Get wine
½ hr Vacuum
Write poem
1 hr Get handsome
1 hr Wash car
½ hr Get flowers
½ hr Iron shirt
½ hr Work out
That in a nutshell is what most people do
© Copyright 2009, Rasmusson Software Consulting
A little secret
Pssst We do the
same thing in
agile…
© Copyright 2009, Rasmusson Software Consulting
Only instead of We use fancy names
ToDo list Master story list
Tasks => User stories
Guesses Estimates
© Copyright 2009, Rasmusson Software Consulting
a date
Most How does this make a plan? a budget
important a plan
½ done here
Add user
Print itinerary
1wk Book reservation
Cancel trip
Book permit
Update permit
Search
Create new device
Add swap trade
Add option
Cancel plan
Book car
Update hotel
Change profile
Add admin screen
Out of money
Add Facebook
Out of time
Delete MySpace
Update Twitter
1wk 1wk 1wk Nothing left
Least
important © Copyright 2009, Rasmusson Software Consulting
What we’re going to cover
• You already know agile planning
• What to expect
• De-bunk some myths
• Overview some agile methods
• 3 steps towards agility today
© Copyright 2009, Rasmusson Software Consulting
We flex on scope
Time Budget Quality Scope
Flex here
© Copyright 2009, Rasmusson Software Consulting
We have the same definition of done
Are we done raking
the leaves when:
A plan?
A design?
A report?
Not at my house!
© Copyright 2009, Rasmusson Software Consulting
Working software is the primary
measure of success
Are all fine
and dandy …
Project plans
Test plans
Requirements docs
Architectural diagrams
Analysis models
Security reports
Deployment plans
… but they are of no
value to the customer.
© Copyright 2009, Rasmusson Software Consulting
That means …
Add user
Analysis
Testing 100% complete
Print itinerary
Design
Book reservation Coding
Add user
Everything else
1wk
© Copyright 2009, Rasmusson Software Consulting
And we have to work as one team
VS
BA Dev QA
© Copyright 2009, Rasmusson Software Consulting
May 1,
More overlap between roles
2009
The team
© Copyright 2009, is accountable
Rasmusson Software Consulting
Analysis, design, testing, and coding are
continuous activities
Agile
Waterfall
Analysis
Test
VS Analysis Design Code Test
Code
Design
stage gated / big bang / all at once
© Copyright 2009, Rasmusson Software Consulting
Some terms you’ll hear
© Copyright 2009, Rasmusson Software Consulting
Iterative
1wk 1wk 1wk
© Copyright 2009, Rasmusson Software Consulting
Iterative
© Copyright 2009, Rasmusson Software Consulting
Time-boxed delivery
Credit Yogi: http://www.flickr.com/photos/yogi/1147960/
© Copyright 2009, Rasmusson Software Consulting
Adaptive planning
original plan
customer
discovers what
lost lead they really wanted
developer New Star Trek
movie
Price of oil
drops 70%
hard to change reality
© Copyright 2009, Rasmusson Software Consulting
Characteristics of agile teams
x
The goal
Empowered
Self-organizing
Self-directed
Adaptive
Flat hierarchy
Smart talented people like working this way
© Copyright 2009, Rasmusson Software Consulting
Agile Myths
What agile is not
© Copyright 2009, Rasmusson Software Consulting
Agile is a silver bullet
• You can fail just as dramatically
• All your problems will still be there
– Agile will just highlight them sooner
© Copyright 2009, Rasmusson Software Consulting
Agile teams don’t write
documentation
• More accurate to say agile teams don’t
write unnecessary documentation
• Agile teams prefer a face-to-face over
documentation
• Documentation gets treated
like anything else
– Prioritized, estimated, delivered
© Copyright 2009, Rasmusson Software Consulting
Agile is anti-planning
• Agile teams plan extensively
– Every quarter (release)
– Every couple weeks (iterations)
– Every day (daily stand-ups)
• Uses different tools
– Project burn downs vs Gantt and PERT
• Planning is very visible
– Stakeholders know early if there is a problem
© Copyright 2009, Rasmusson Software Consulting
Agile is anti-architecture
Agile is anti-over-architecture
Don’t spend time designing this …
… if this is all that is needed.
© Copyright 2009, Rasmusson Software Consulting
Agile development doesn’t scale
• Agile scales just like any other method
– Not that great
• Instead of looking at how you can scale up
– See if there are ways you can scale down
© Copyright 2009, Rasmusson Software Consulting
Agile teams don’t model
• Agile teams model
– They just don’t believe them
• The sooner they can
turn a model into working
software the better
© Copyright 2009, Rasmusson Software Consulting
Agile is undisciplined
• Agile has been bruised by people taking the
easy stuff
– and leaving out he hard
• Truth is agile is very disciplined
– You have to write tests
– You have to design
– You must regularly integrate your code
– You have to regularly release working software
– You must deliver something of value each iteration
• The more agile a team – the more disciplined
© Copyright 2009, Rasmusson Software Consulting
Agile development is unpredictable
• Agile acknowledges the inherent complexity and
uncertainty of software
• Agile quickly incorporates actual data into it’s
forecasts
• It doesn’t dwell on reconciling actual and original
plans
• Accepts that things are going to change, and
incrementally re-plans when better data is
available
If you crave predictability,
you picked the wrong profession
Credit: ©http://www.flickr.com/photos/shadphotos/
Copyright 2009, Rasmusson Software Consulting
Agile requires talented people
Skill-set of people
Project success
Creating valuable, innovative software requires skilled people
© Copyright 2009, Rasmusson Software Consulting
What we’re going to cover
• You already know agile planning
• What to expect
• De-bunk some myths
• Overview some agile methods
• 3 steps towards agility today
© Copyright 2009, Rasmusson Software Consulting
Agile comes in many flavours
Crystal
Scrum
Lean DSDM
FDD
Extreme Programming (XP)
© Copyright 2009, Rasmusson Software Consulting
Lean
I would like to Toyota’s ultra-lean manufacturing process.
buy a Toyota
Prius please
Elimination of waste
© Copyright 2009, Rasmusson Software Consulting
+ pluses - minuses
Lean
• Very good high-level • Advice / practices are
principles and not IT specific
practices • Harder to implement
• Addresses systems
and organizational
improvements across
the board
Lean has much to offer – very worth of study
© Copyright 2009, Rasmusson Software Consulting
Scrum
• A project management wrapper for
incremental delivery of projects,
independent of technology or business
vertical.
• Can be used in non-IT projects.
© Copyright 2009, Rasmusson Software Consulting
Scrum
+ pluses - minuses
• Easy to understand • Silent on engineering
• Low barrier of entry • Easy to do the easy
• Easy to pick up stuff while skipping
• Speaks well to project the hard stuff
managers
• Non-threatening
• Most popular
Easy to adapt – most non-threatening
© Copyright 2009, Rasmusson Software Consulting
Extreme Programming (XP)
• Popularized software engineering
practices necessary for agile development
• Emphasizes
– upfront testing
– automation
– evolutionary design
– continuous integration
© Copyright 2009, Rasmusson Software Consulting
Extreme Programming
+ pluses - minuses
• Sound engineering • Very developer
practices focused
• Strong in • Hard for other
development disciplines relate
community • Sometimes
• First real popular characterized by
agile method zealots
Essential engineering practices
© Copyright 2009, Rasmusson Software Consulting
Options for adopting
XP
full on
Scrum + XP
engineering practices
Scrum + XP +
engineering practices
Lean
spirit
* engineering practices
- unit testing, refactoring
- continuous integration, Test-Driven
© Copyright 2009, RasmussonDesign (TDD)
Software Consulting
What I recommend
Start here
XP
* engineering practices
Choose Scrum or
XP
language
Study
Lean
© Copyright 2009, Rasmusson Software Consulting
There is no one way
Extreme Programming (XP)
Crystal Scrum
DSDM
Lean
FDD
Do what works for you
© Copyright 2009, Rasmusson Software Consulting
3 steps you can take
towards agility
today
© Copyright 2009, Rasmusson Software Consulting
Deliver something of value every week
$ Value!
Week 1 Week 2 Week 3
Most important Least important
time
© Copyright 2009, Rasmusson Software Consulting
Start doing these 4 practices
• Agile is underpinned by technical
excellence
• Practices like these are essential:
Unit testing Test-Driven Design
Refactoring Continuous integration
• If you get these right
– everything else becomes a lot easier
© Copyright 2009, Rasmusson Software Consulting
Accept 3 simple truths
1. It is impossible to gather all the requirements
at the beginning of a project.
2. The requirements are guaranteed to change.
3. There will always be more requirements, than
time and money allow.
© Copyright 2009, Rasmusson Software Consulting
Final words
© Copyright 2009, Rasmusson Software Consulting
Final words
• No magic – you already think agile
• Expect change
• There is no one way
© Copyright 2009, Rasmusson Software Consulting
Do I think everyone will one
day be doing agile?
© Copyright 2009, Rasmusson Software Consulting
No
For the same reason most people
still don’t eat right or exercise.
© Copyright 2009, Rasmusson Software Consulting
Agile is tough
Agile is hard work
Agile requires great discipline
Not everyone is into this kind of stuff!
© Copyright 2009, Rasmusson Software Consulting
But it is a very natural way to work
It is
a lot of fun
And it works – very well
© Copyright 2009, Rasmusson Software Consulting
For more information
http://agilewarrior.wordpress.com/
[email protected]
© Copyright 2009, Rasmusson Software Consulting