Upload
dotnetcampus
View
90
Download
0
Tags:
Embed Size (px)
Citation preview
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’LL TALK ABOUT
• Basic Practices
• Delivering by Iterations
• Developing Just-in-time
• Testing
1
2
3
BASIC PRACTICES
Agile Founding Blocks
Retrospectives
Stand-up MeetingContinuous Integration
Test-driven Development
Pair ProgrammingShort 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-functional Teams
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 RetrospectivesRetrospective
Open Data
Insights
Actions
Close
Iteration
Improvements
Development Meeting
Product IncrementsAdapted 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: MediumEstimate: 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 OwnerScrum Master
“The Team”(cross-functional)
Scrum ProjectPO: Represents the business vision and needsSM: Guarantees the process, removes impedimentsTechs: Implement the product, have all the required expertise
Interactions of the Scrum RolesStuff 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
SMTeam
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 CeremoniesStrategy
Release
Sprint
Daily
Continuous Integration
Adapted from the “Agile Poster” by VersionOne
Start: Release Planning MeetingEnd: Demo and RetrospectiveCadence: Months
Start: Sprint Planning MeetingEnd: Demo and RetrospectiveCadence: Weeks
Stand-up MeetingCadence: 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
PUSH VS. PULL
Just-inTime ProductionSW 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 Lead Time• 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 AND TESTING
Main Testing LevelsAcceptance 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
The Testing 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&67885%)&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 IntegrationAn automated, continuous process for quality control.
http://www.javaworld.com/javaworld/jw-06-2007/jw-06-awci.html
Automaticunit testing, regression testing, integration
Lots of CI tools: CruiseControl, TeamCity, Team Foundation Server, etc.
31
32
33
THANK YOU!
LinkedIn Twitter Slideshare
http:// andreaprovaglio.com
Also on:
QUESTIONS?
34
35