SlideShare a Scribd company logo
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
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
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
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
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
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
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
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
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
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
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
THANKYOU!
LinkedIn Twitter Slideshare
http://andreaprovaglio.com
Also on:
QUESTIONS?
34
35

More Related Content

Ag02 agile practices - dnc14 handouts

  • 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