1. AGILE PRACTICES
@andreaprovaglio
WHAT I DO
I help IT organizations to find and
implement better ways of doing
business.
I coach teams and individuals who want
to improve technically and relationally.
In 20+ years in IT, I had clients in three
continents and a U.S. work visa for
“extraordinary abilities in Sciences”.
WHAT WE’LLTALK ABOUT
• Basic Practices
• Delivering by Iterations
• Developing Just-in-time
• Testing
1
2
3
2. BASIC PRACTICES
Agile Founding Blocks
Retrospectives
Stand-up Meeting
Continuous Integration
Test-driven Development
Pair Programming
Short Iterations
Some may be
prescribed. All are
designed to
support each other.
Refactoring
Cross-functional Teams
Iterative Development
http://www.photos4travel.com/travel-guides/rome
Was this built from a huge
pile of specs?
High-value
Requirements
Deployment
Short Iterations (can be timeboxed)
Analysis &
Planning
ImplementationTesting
Evaluation
4
5
6
3. Task Boards
http://leansoftwareengineering.com/2007/10/27/kanban-bootstrap/
Physical or Virtual?
Large Information Radiators
Cross-functionalTeams
http://leansoftwareengineering.com/2007/10/27/kanban-bootstrap/
Stand-up Meetings
http://robertryanpmp.com
•Short (15 mins)
•Remove Impediments
•Align the team
•Makes daily activities more
effective
7
8
9
4. Retrospectives
A core Agile Practice:
team stops and reflects on
how to improve
Takes experience to get it
right. (Tip: have an
external facilitator at first)
Running Retrospectives
Retrospective
Open Data
Insights
Actions
Close
Iteration
Improvements
Development Meeting
Product Increments
Adapted from “Agile Retrospectives” by Derby & Larsen
Pair Programming
http://www.prospeed-elite.co.ukhttp://www.prospeed-elite.co.uk
• “If two developers in front of a computer are half as
productive, why don’t you put one developer in front
of two computers?” -- Jurgen Appelo
• Tip: Google for video by Niclas Nilsson & Hans
Brattberg
10
11
12
5. DELIVERING BY ITERATIONS
Scrum Process
http://en.wikipedia.org/wiki/File:Scrum_process.svg
User Stories
http://caernarfonandchepstow.blogspot.com/
As a Student I want to buy a
parking pass so that I can drive
to school.
Priority: Medium
Estimate: 4
(adapted example by Scott Ambler)
Tests:
* the buyer must be a currently
enrolled student
* the buyer will receive a pass
only if payment is sufficient
* the student may buy only one
pass per month
13
14
15
6. Scrum Roles
Product Owner
Scrum Master
“The Team”
(cross-functional)
Scrum Project
PO: Represents the business
vision and needs
SM: Guarantees the process,
removes impediments
Techs: Implement the product,
have all the required expertise
Interactions of the Scrum Roles
Stuff You Build
What
How
Quick but
unsustainable wins
Wrong Thing
Wrong Way Right Way
Right Thing
Fast FailureSlow Failure
PO and SM work
to ensure that we
build the Right
Thing in the Right
Way
Market,
Users
PO
SM
Team
Backlogs
(Product and Sprint)
Enduring Success
What/How diagram adapted from “Agile Product Management with Scrum” by Roman Pichler
Scrum Working Agreements
• The Team (not the single individuals) commits to
deliver the agreed upon, potentially shippable units of
code at the end of the Sprint
• The Business commits to leaving the Team
undisturbed for the length of the Sprint (i.e. Sprints
cannot be changed, only aborted)
16
17
18
7. Scrum Rhythms and Ceremonies
Strategy
Release
Sprint
Daily
Continuous
Integration
Adapted from the “Agile Poster” by VersionOne
Start: Release Planning Meeting
End: Demo and Retrospective
Cadence: Months
Start: Sprint Planning Meeting
End: Demo and Retrospective
Cadence: Weeks
Stand-up Meeting
Cadence: Daily
Metrics:Velocity
http://elegantcode.com/
A planning tool based on historical data. Represents the
Team’s productive capacity (story points per Sprint)
Metrics: Burndown Charts
http://www.infoq.com/articles/agile-kanban-boards
Release BurndownSprint Burndown
http://lookforwardconsulting.com/
Both display progress vs. work still to
complete.
19
20
21
8. PUSHVS. PULL
Just-inTime Production
SW features are like bananas:
• They get stale (lose their business
value after a while)
• Inventory, Overproduction and
Waiting should ideally be kept to the
minimum
A Kanban Pull System
Stuff To Do
(Backlog)
Kanban System
Stuff
Produced
Items are PULLED into
the system when there is
capacity.
<--- Lead Time --->
• System visualizes the actual
workflow
• Each stage has its WIP limit
22
23
24
9. Kanban Key Points
• Visualize the real workflow
• Use a Kanban board with columns for the different stages (swim
lanes and sub-colons for more complex flows)
• Split work into units and use cards to represent them
• Limit the Work-in-Progress (WIP)
• Measure the LeadTime
• Optimize the workflow for maximum
throughput
A Digital Kanban Board
http://www.targetprocess.com/Product/agile_tour/Kanban.aspx
A Digital Kanban Board
http://www.targetprocess.com/Product/agile_tour/Kanban.aspx
Iterations or JIT?
25
26
27
10. QA ANDTESTING
MainTesting Levels
Acceptance Test
“Does the system work as users expect?”
Integration Test
“Does our code work against code that we cannot
change?”
Unit Test
“Do our objects do the right thing? Are they
convenient to work with?”
Developers
“Does our code work against code that we cannot
Developers
Business
http://angeles.sierraclub.org/skimt/trips/grandcyn07/grand-14.htm
TheTesting Pyramid
Place as many
tests as low as
you can.
Manual
End-to-End
Integration
Unit
28
29
30
11. Behavior-Driven Development
Using examples, scenarios
and conversations to
illustrate behavior
http:// lizkeogh.com
!"#"$%&
'$()&
*(+(,")"-.&
/0(-120&
3-$2.&
340%(2"$&
*$50&
!"#"$%&!"#"$%&!"#"$%&
'$()&
*(+(,")"-.&
/0(-120&
3-$2.&
340%(2"$&
*$50&*$50&*$50&
!""#
"%,%-).%*&#
"%-12%*30%#"1&4),%*5#&+1--&
/%&0%*&
http:// lizkeogh.com
"%,%-).%*&
"%-12%*30%#"1&4),%*5#&+1--&
/%&0%*&/%&0%*&
!"#$%&'($)&*+,&-./0*1&+&2"3(.4+#$
5%)&1*$&2"3(.4+#$&3.,1&6788
5%)&1*$&2"3(.4+#$&4+,&.%&789&
)",3./%1
:*$%&4$&($;/%)&1*$&2"3(.4+#$
<*$%&'($)&!"#$%&'-$&($;/%)$)&6=8>
Test-Driven Development
• A test-first approach
• Improves overall quality
• Makes changes easier
(programmers are more
confident)
• Simple designs evolve over
time
• Testing single units of code
creates better architectures
Continuous Integration
An automated,
continuous process
for quality control.
http://www.javaworld.com/javaworld/jw-06-2007/jw-06-awci.html
Automatic
unit testing, regression
testing, integration
Lots of CI tools:
CruiseControl, TeamCity,
Team Foundation Server,
etc.
31
32
33