day2_planninganagileproject
TRANSCRIPT
-
8/8/2019 Day2_PlanningAnAgileProject
1/85
Planning an Agile Projectfor advance user
Sam Hwang
Sep 2009
-
8/8/2019 Day2_PlanningAnAgileProject
2/85
2
Course agenda
Overview of Agile Planning High-Level Visioning Product Backlog User Stories
Release Planning Estimating Velocity
Today
-
8/8/2019 Day2_PlanningAnAgileProject
3/85
3
Overview
Agile Perspective onPlanning Projects vs.Traditional
Overview of Agile Planning
High-Level Visioning
One Pager Jefferies Exercise
Product Backlog
User Stories
Spikes
Write User Stories
Release Planning
Estimating
Summary (Recognize thatchange will happen, Utilize
Feedback, Ask forAutonomous bits offunctionality)
-
8/8/2019 Day2_PlanningAnAgileProject
4/85
4
Adaptive process control
Useful when
A market is moving so fast, that requirementschange frequently
Technology is moving so fast, thatimplementation details change frequently
Embrace Change Inspect and Adapt
-
8/8/2019 Day2_PlanningAnAgileProject
5/85
5
An Iterative Process
v2.0 v2.1 v2.3 v2.4
Design
Test
Build
Innovate
-
8/8/2019 Day2_PlanningAnAgileProject
6/85
6
Course agenda
Overview of Agile Planning High-Level Visioning Product Backlog User Stories
Release Planning Estimating Velocity
Today
-
8/8/2019 Day2_PlanningAnAgileProject
7/85
7
The Scrum Process
Sprint Planning Meeting Sprint Review/Sprint Retrospective
-
8/8/2019 Day2_PlanningAnAgileProject
8/85
8
PlanningVision
1
2
V1.0 V1.1 V1.2
3
ReleasePlan
SprintPlan
-
8/8/2019 Day2_PlanningAnAgileProject
9/85
9
Product PlanVision
1
Elevator Statement(Short Description)
ForwhothatUnlike
Customer Attributes
1. People who work in 2. Those who need a 3.
Feature / Ability to
1. Share content with2. Personalized ads on3.
Metrics:Sign-ups xxx
Customer Benefits
1. More accurate 2. Better customer service 3.
Performance Attributes
1. 3000 hits/hour2.
Tradeoff Matrix
Scope
Resources
Schedule
Quality
Fixed
Firm Flexible
Major Milestones
Xyz features xxxAbc features xxx
One Pager
-
8/8/2019 Day2_PlanningAnAgileProject
10/85
10
Create your one pager
Elevator Statement
ForwhothatUnlike
Customer Attributes
1. People who work in 2. Those who need a 3.
Feature / Ability to
1. Share content with2. Personalized ads on3.
Metrics:
Sign-ups xxx
Customer Benefits
1. More accurate 2. Better customer service 3.
Performance Attributes
1. 3000 hits/hour2.
Tradeoff Matrix
Scope
Resources
Schedule
Quality
Fixed Firm Flexible
Major Milestones
Xyz features xxxAbc features xxx
Metrics and ROI
-
8/8/2019 Day2_PlanningAnAgileProject
11/85
11
Tradeoff matrix
Fixed Firm Flexible Target
Scope 300+ story points
Schedule 4-5 months
Resources $400,000
Low Defects 1 high bug permonth
Dark Bar
-
8/8/2019 Day2_PlanningAnAgileProject
12/85
12
Product vision box
Design a box for the software
Even if the software wont ship in abox
Write 3-4 key bullet points to sellthe software
Easier to come up with 15 The challenge is distilling the list to
3-4 key points
-
8/8/2019 Day2_PlanningAnAgileProject
13/85
13
Sample product vision box
Easy integration with most
insurance systems Support for multiple chairs
with appointment setting bychair
Multi-language support One click database backup
-
8/8/2019 Day2_PlanningAnAgileProject
14/85
14
Write a press release (option)
Collaboratively write the press release
youd like to see released at the end What are the key points youd make about
the product What quotes would you have and who
would they be from?CEO? Team members? Customers?
-
8/8/2019 Day2_PlanningAnAgileProject
15/85
15
Press release templateThe _______company announced today the successful completion of the _________project.
This project provides _________________________________________________. The
customer for this project, ________________, indicated in a recent interview that they selected
___________ as their supplier due to the following key benefits:
1. ______________________________________
2. ______________________________________
3. ______________________________________
________________ also identified several features that they felt were particularly useful. Theseinclude:
1. ______________________________________
2. ______________________________________
3. ______________________________________
____________ noted that the single most important benefit of their successful project was
_________________________________________________________________.
-
8/8/2019 Day2_PlanningAnAgileProject
16/85
16
Course agenda
Overview of Agile Planning
High-Level Visioning Product Backlog User Stories
Release Planning Estimating Velocity
Today
-
8/8/2019 Day2_PlanningAnAgileProject
17/85
17
ProductBacklogProductBackl
og
-
8/8/2019 Day2_PlanningAnAgileProject
18/85
18
Product backlog
A prioritized list of
requirements Items of highest value
at the top Prioritized by the
product owner
This is the
product backlog
This is the
product backlog
-
8/8/2019 Day2_PlanningAnAgileProject
19/85
19
Items get more thought at the top Mirum est ut animus agitatione
motuque corporis excitetut.
Iam undique silvae
et solitudo ipsumque illud silentium
quod venationi datur
magna cogitationis
incitamenta
sunt. Proinde cum venabere
licebit, auctore me
ut panarium et lagunculam
sic etiam pugillares feras.
Experieris non Dianam
magis montibus quam
Progressively refined
As an item nears the top, it
gets more thought
Items at the top are
Smaller
More thought through
Ready to be worked on
Reproduced with kind permission byMike Cohn mountaingoatsoftware.com
-
8/8/2019 Day2_PlanningAnAgileProject
20/85
20
Feature use Keep it lean
Always
7%
Often
13%
Sometimes
16%
Rarely
19%
Never
45%
Standish Group study reported at XP2002 by Jim Johnson, Chairman
Often or AlwaysUsed: 20%
Rarely or Never
Used: 64%
-
8/8/2019 Day2_PlanningAnAgileProject
21/85
21
A sample product backlog
Backlog item Estimate
Allow a guest to make a reservation 3As a guest, I want to cancel a reservation. 5
As a guest, I want to change the dates of a
reservation. 3
As a hotel employee, I can run RevPAR reports(revenue-per-available-room)
8
Improve exception handling 8
Bug #4334 Improve error handling with 1
Investigate PayPal integration 9
Wh i h P d B kl
-
8/8/2019 Day2_PlanningAnAgileProject
22/85
22
Whats in the Product Backlog
Everything that needs to be done!
Features Can be in the form of user stories
Tasks/Bugs
Spikes
Wh S ik ?
-
8/8/2019 Day2_PlanningAnAgileProject
23/85
23
Whats a Spike?
A Spike is an investigation
The deliverable is team knowledge Estimates
Documentation
Education
A Spike is time boxed
C d
-
8/8/2019 Day2_PlanningAnAgileProject
24/85
24
Course agenda
Overview of Agile Planning
High-Level Visioning Product Backlog User Stories
Release Planning Estimating Velocity
Today
U S i k b kl i
-
8/8/2019 Day2_PlanningAnAgileProject
25/85
25
User Stories make great backlog items
Stories are traditionally written onnote cards.May be annotated with
notes, estimates, etc.
Card
Source: XP Magazine 8/30/01,Ron Jeffries.
Details behind the story comeout during conversations withproduct owner
Conversation
Acceptance tests confirm the
story was coded correctly
Confirmation
S l f t l b it
-
8/8/2019 Day2_PlanningAnAgileProject
26/85
26
Samples from a travel website
Asauser,Iwantto
reserveahotelroom.
Asauser,Iwantto
reserveahotelroom.
As a user, I want tocancel a reservation.
As a user, I want tocancel a reservation.
As a vacation planner, Iwant to see photos of thehotels.
As a vacation planner, Iwant to see photos of the
hotels.
As a frequent flyer, Iwant to rebook a past trip.As a frequent flyer, Iwant to rebook a past trip.As a frequent flyer, Iwant to rebook a past trip,so that I save time
booking trips I take often.
As a frequent flyer, Iwant to rebook a past trip,so that I save time
booking trips I take often.
Wh th d t il ?
-
8/8/2019 Day2_PlanningAnAgileProject
27/85
27
Where are the details?
As a user, I can cancel a reservation.
Does the user get a full or partial refund?
Is the refund to her credit card or is it site credit?
How far ahead must the reservation be
cancelled? Is that the same for all hotels?
For all site visitors? Can frequent travelers cancellater?
Is a confirmation provided to the user?
How?
D t il diti f ti f ti
-
8/8/2019 Day2_PlanningAnAgileProject
28/85
28
Details as conditions of satisfaction
The product owners conditions of satisfaction can beadded to a story
These are essentially tests
As a user, I can cancel areservation.
As a user, I can cancel areservation. Verify that a premium member can
cancel the same day without a fee.Verify that a non-premium member is
charged 10% for a same-daycancellation.
Verify that an email confirmation issent.
Verify that the hotel is notified ofany cancellation.
Verify that a premium member can
cancel the same day without a fee.Verify that a non-premium member is
charged 10% for a same-daycancellation.
Verify that an email confirmation issent.
Verify that the hotel is notified ofany cancellation.
Details added in smaller stories
-
8/8/2019 Day2_PlanningAnAgileProject
29/85
29
Details added in smaller stories
As a user, I cancancel a reservation.
As a user, I cancancel a reservation.
As a premium sitemember, I can cancel areservation up to the
last minute.
As a premium sitemember, I can cancel areservation up to the
last minute.
As a non-premiummember, I can cancelup to 24 hours inadvance.
As a non-premiummember, I can cancel
up to 24 hours inadvance.
As a site visitor, I amemailed a confirmationof any cancelledreservation.
As a site visitor, I amemailed a confirmationof any cancelledreservation.
MMF: Minimal Marketable Feature
-
8/8/2019 Day2_PlanningAnAgileProject
30/85
30
MMF: Minimal Marketable Feature
Headline
Scenarios
"As a (user),
I want to (do something),
so that (I achieve some goal)"
Stocking the product backlog
-
8/8/2019 Day2_PlanningAnAgileProject
31/85
31
Stocking the product backlog
You can start by identifying only a sprintsworth of backlog items
The key is to write product backlog itemswith different levels of detail
Fine-grained for stories about to be worked on
Coarse-grained for stories further in the future
The product backlog iceberg
-
8/8/2019 Day2_PlanningAnAgileProject
32/85
32
The product backlog iceberg
User Story
A description of desiredfunctionality told from the
perspective of the user orcustomer.
Theme
A collection of relateduser stories.
Epic
A large user story.
An example
-
8/8/2019 Day2_PlanningAnAgileProject
33/85
33
An example
As a VP Marketing, I wantto review the performance
of historical promotionalcampaigns so that I canidentify and repeatprofitable ones.
As a VP Marketing, I wantto review the performance
of historical promotionalcampaigns so that I canidentify and repeatprofitable ones.
As a VP Marketing, I want toselect the timeframe to use whenreviewing the performance of past
promotional campaigns, so that Ican identify and repeat profitableones.
As a VP Marketing, I want toselect the timeframe to use whenreviewing the performance of past
promotional campaigns, so that Ican identify and repeat profitableones.
As a VP Marketing, I can select
which type of campaigns (directmail, TV, email, radio, etc.) toinclude when reviewing theperformance of historical
promotional campaigns.
As a VP Marketing, I can select
which type of campaigns (directmail, TV, email, radio, etc.) toinclude when reviewing theperformance of historical
promotional campaigns.
A large user story;weeks to implement
Implementation-size stories;days to implement
An example
-
8/8/2019 Day2_PlanningAnAgileProject
34/85
34
An example
As a VP Marketing, I want to seeinformation on direct mailings whenreviewing historical campaigns.
As a VP Marketing, I want to seeinformation on direct mailings whenreviewing historical campaigns.
As a VP Marketing, I want to see
information on television advertisingwhen reviewing historical campaigns.
As a VP Marketing, I want to see
information on television advertisingwhen reviewing historical campaigns.
As a VP Marketing, I want to seeinformation on email advertising whenreviewing historical campaigns.
As a VP Marketing, I want to seeinformation on email advertising whenreviewing historical campaigns.
Story writing workshops
-
8/8/2019 Day2_PlanningAnAgileProject
35/85
35
Story-writing workshops
Includes developers, users, customer,others
Brainstorm to generate stories
Goal is to write as many stories aspossible
Some will be implementation ready Others will be epic user stories
No prioritization at this point
Start with large user stories and
-
8/8/2019 Day2_PlanningAnAgileProject
36/85
36
giterate
As a frequent flyer,I want to see checkmy account.
As a frequent flyer,I want to see checkmy account.
As a frequent flyer,I want to ...
As a frequent flyer,I want to ...
Frequent
flyer
Frequent
flyer
As a frequent flyer,I want to book atrip using miles.
As a frequent flyer,I want to book atrip using miles.
As a frequent flyer,I want to rebook atrip I take often.
As a frequent flyer,I want to rebook atrip I take often.
As a frequent flyer,I want to requestan upgrade.
As a frequent flyer,I want to requestan upgrade.
As a frequent flyer,I want to see if my
upgrade cleared.
As a frequent flyer,I want to see if my
upgrade cleared.
As a frequent flyer,I want to book a
trip.
As a frequent flyer,I want to book a
trip.
For Your Project
-
8/8/2019 Day2_PlanningAnAgileProject
37/85
37
For Your Project
Write the product backlog for your project. Identify your Users 10 minutes
Write some epics 10 minutes 15 minutes:
Write some large stories Write some implementation-ready userstories
Write the product backlog for your project.Write the product backlog for your project.
Identify your UsersIdentify your Users10 minutes10 minutes
Write some epicsWrite some epics10 minutes10 minutes 15 minutes:15 minutes:
Write some large storiesWrite some large stories
Write someWrite some implementationimplementation--readyready useruserstoriesstories
Consider this template
As a , I want to , so
that .
What makes a good story?
-
8/8/2019 Day2_PlanningAnAgileProject
38/85
38
What makes a good story?
Independent
Negotiable
Valuable
Estimable
Sized Appropriately
Testable
INVEST
Reproduced with kind permission byMike Cohn mountaingoatsoftware.com
Independent1
1
-
8/8/2019 Day2_PlanningAnAgileProject
39/85
39
Negotiable
Stories are not contracts
Leave or imply some flexibility
Valuable
To users or customers, not developers Rewrite developer stories to reflect value to users orcustomers
22
33
Independent
Dependencies lead to problems estimating andprioritizing Can ideally select a story to work on without pulling in 18other stories
Estimatable
4
4
-
8/8/2019 Day2_PlanningAnAgileProject
40/85
40
Estimatable
Because plans are based on user stories, we need to beable to estimate them
Sized Appropriately
Small enough to complete in one sprint if youre about towork on it Bigger if further off on the horizon
Testable
Testable so that you have a easy, binary way of knowingwhether a story is finished Done or not done; no partially finished or done except
66
55
Product Owner adds a feature
-
8/8/2019 Day2_PlanningAnAgileProject
41/85
41
Product Owner adds a feature
You are the ScrumMaster for the teamdeveloping the online dating website
You are 3 months into a 6-month plan The team is halfway through a 2-week sprint The Product Owner comes to the you andwants to add wedding planning features to thedating site.In fact, the Product Owner hasscheduled a trade-show demo in two weeks.
Youve never heard of this feature before What do you do?
Put all requirements in the PB
-
8/8/2019 Day2_PlanningAnAgileProject
42/85
42
Put all requirements in the PB
Product
Backlog
User Stories
Bugs List
Performance
Capacity & BCP
BUSINESS
REQUIREMENTS
Continuous Integration
Complex Activity
Tools implementation
Retrospective actions
ENGINEERING
REQUIREMENTS
Deployment
simplicity
Live service cost
reduction
RUN/SUPPORT
REQUIREMENTS
Values
-
8/8/2019 Day2_PlanningAnAgileProject
43/85
43
Values
Time and Moneysavings
Increase satisfaction
Performance, Faster delivery Run/Support
More users
More Revenue
Increase satisfaction
Quality, Stability, Faster delivery Engineering
More users
More Revenue
Increase satisfaction
Features, Stability,
Performance, Accessibility
Business
Values forCompany
Values for CustomerRequirements
Prioritization
-
8/8/2019 Day2_PlanningAnAgileProject
44/85
44
Prioritization
Ensure some requirements of eachcategory are in the Product Backlog
Set up priorities in the Product Backlog toensure implementing some requirementsof each category for any release (one or
several sprints)
Course agenda
-
8/8/2019 Day2_PlanningAnAgileProject
45/85
45
Course agenda
Overview of Agile Planning
High-Level Visioning Product Backlog User Stories
Release Planning Estimating Velocity
Today
-
8/8/2019 Day2_PlanningAnAgileProject
46/85
46
ReleasePlanningReleasePlanning
-
8/8/2019 Day2_PlanningAnAgileProject
47/85
Release Planning Exercise
Release Plan
-
8/8/2019 Day2_PlanningAnAgileProject
48/85
48
Sprint
1
Sprint
2
Sprints 5-7Sprint
3
Sprint
4
V1.0
Release
2
V1.0 V1.1 V1.2
V1.1
Release
Release planning, not sprint planning
-
8/8/2019 Day2_PlanningAnAgileProject
49/85
49
p g, p p g
As a user,I...
8 points
As a user,I...
8 points
Story To DoIn
Process
To
VerifyDone
Code the...
9
Code the...
9Test the...
8
Test the...
8
Code the...
2
Code the...
2Code the...
8
Code the...
8
Test the...
8
Test the...
8Test the...
4
Test the...
4
Code the...DC4
Code the...DC4
Test the...SC8
Test the...SC8
Test the...SC6
Test the...SC6
As a user,I...5 points
As a user,I...5 points
Code the...
8
Code the...
8Test the...
8
Test the...
8
Code the...
4
Code the...
4Code the...
6
Code the...
6
Code the...DC8
Code the...DC8
Code the...DC4
Code the...DC4
Test the...SC8
Test the...SC8
Test the...SC6
Test the...SC6
Test the...SC6
Test the...SC6
Test the...SC6
Test the...SC6
Test the...SC6
Test the...SC6
Test the...SC6
Test the...SC6
Test the...SC
6
Test the...SC6
Product Backlog
DrivesMultiple Sprints
Sprint Task List
Drives Work
on a Daily Basis
M WM T W Th F
Release planning
-
8/8/2019 Day2_PlanningAnAgileProject
50/85
50
p g
To answer questions such as: How much will be done by June 30?
When can we ship with this set of features? How many people or teams should be on thisproject?
Purpose
Velocity The amount of work completed in a sprint
The length of the project Prioritized product backlog
Inputs
Course agenda
-
8/8/2019 Day2_PlanningAnAgileProject
51/85
51
g
Overview of Agile Planning
High-Level Visioning Product Backlog User Stories
Release Planning Estimating Velocity
Today
Product Backlog Estimating
-
8/8/2019 Day2_PlanningAnAgileProject
52/85
52
g g
6 minutes
8 minutes
1
ki lomet er
Team must agree on high-level estimate
Common product backlogestimating units
-
8/8/2019 Day2_PlanningAnAgileProject
53/85
53
Ideal Time
Calendar Time
estimating units
Ideal Time -or- Calendar Time
-
8/8/2019 Day2_PlanningAnAgileProject
54/85
54
Ideal time
The amount of time something is likely to take oneperson if they arent disrupted or distracted
If two people will work on it, their time is added Often expressed in days (including day, etc.)
Calendar Time
Just old-fashioned guessing at the hours or dayssomething will take
Estimating in Scrum
-
8/8/2019 Day2_PlanningAnAgileProject
55/85
55
Product Backlog
Coarse-grained Think: Days or
Weeks
Sprint Tasks
Hours 4-8 hour tasks
Planning poker
-
8/8/2019 Day2_PlanningAnAgileProject
56/85
56
An iterative approach to estimating
Steps
Each estimator is given a deck of cards, each cardhas a valid estimate written on it
Customer/Product owner reads a story and itsdiscussed briefly
Each estimator selects a card thats his or herestimate
Cards are turned over so all can see them
Discuss differences (especially outliers)
Re-estimate until estimates converge
Planning poker - an example
-
8/8/2019 Day2_PlanningAnAgileProject
57/85
57
Estimator Round 1 Round 2Susan 3 5
Vadim8 5Ann 2 5
Chris 5 8
20138532
1
For Your Project
-
8/8/2019 Day2_PlanningAnAgileProject
58/85
58
Estimate the user stories for your project Choose what units you will use to estimate
Use planning poker
Estimate the user stories for your projectEstimate the user stories for your project
Choose what units you will use to estimateChoose what units you will use to estimate
Use planning pokerUse planning poker
Estimate these
-
8/8/2019 Day2_PlanningAnAgileProject
59/85
59
Product backlog item EstimateRead a high-level, 10-page overview of agile softwaredevelopment in a business magazine.
Read a densely written 5-page research paper about agilesoftware development in an academic journal.
Write the product backlog for a simple eCommerce site
that sells only clocks.
Recruit, interview, and hire a new member for your team.
Create a 60-minute presentation about agile estimating
and planning for your coworkers.
Read a 150-page book on agile software development.
Write an 8-page summary of this session for your boss.
Course agenda
-
8/8/2019 Day2_PlanningAnAgileProject
60/85
60
Overview of Agile Planning
High-Level Visioning Product Backlog User Stories
Release Planning Estimating Velocity
Today
-
8/8/2019 Day2_PlanningAnAgileProject
61/85
Velocity
-
8/8/2019 Day2_PlanningAnAgileProject
62/85
62
Velocity is a measure of how much work wecan plan on completing each sprint
Product Backlog
Track velocity
-
8/8/2019 Day2_PlanningAnAgileProject
63/85
63
0
10
20
30
40
1 2 3 4 5 6 7 8 9
Sprints
Mean (Worst 3) = 28
Mean (Last 8) = 33Last Observation = 36
Velocity
-
8/8/2019 Day2_PlanningAnAgileProject
64/85
64
A useful long-term measure of the amountof work completed per sprint
Not a measure of the amount of workcompleted in eachsprint
Sprints
Velocityismeasured
intheunitsyouuse
toestimateproduct
backlogitems
Extrapolate from velocity
-
8/8/2019 Day2_PlanningAnAgileProject
65/85
65
At our long-term average well finish here
At our slowest velocity well finish here
At current velocity well finish here
Release planning
-
8/8/2019 Day2_PlanningAnAgileProject
66/85
66
Release Plan
Sprint 1Sprint 1 Sprint 2Sprint 2 Sprint 3Sprint 3 Sprints 47Sprints 47
Release PlanningMeeting
Release PlanningMeeting
An Agile Stance on Planning
-
8/8/2019 Day2_PlanningAnAgileProject
67/85
67
Recognize that change will happen
Utilize feedback Ask for autonomous bits of functionality
-
8/8/2019 Day2_PlanningAnAgileProject
68/85
Thank You!
-
8/8/2019 Day2_PlanningAnAgileProject
69/85
Agile practices
Agile engineering practices
-
8/8/2019 Day2_PlanningAnAgileProject
70/85
70
1. Simple design2. Continuous integration3. Refactoring
4. Test-driven development
Reproduced with kind permission byMike Cohn mountaingoatsoftware.com
1. Simple design
-
8/8/2019 Day2_PlanningAnAgileProject
71/85
71
Safe steps Balance between efficiency and risk
Small design and get feedback often
Beneficially relating elements
Design only for today
If the future is uncertain, dont code for it today Do not add infrastructure in this sprintfor stories coming in
future sprints
Upcoming stories could be cancelled or lowered in priority
Do the simplest thing that can possibly work
2. Continuous integration
-
8/8/2019 Day2_PlanningAnAgileProject
72/85
72
An automated nightly build is a bare minimum for a Scrumteam
Really want continuous integration:
Developer checks in code Build server notices the check-in, waits to see if
more is coming Builds the software Runs a suite of automated tests Emails results
Products to help:
Hudson, Cruise Control, and AntHill
Y!K development process with CI
-
8/8/2019 Day2_PlanningAnAgileProject
73/85
75
Y!Developer
CVS / Subversion / Perforce
CI System(php undercontrol)
Staging Environment(Web / API / DB)
Intg. Test (PhpUnit)
Document (PhpDocumentator)
Coding Standard (CodeSniffer)
Security (Scanmus, ferret)
commit
trigger
Additional works
Build (ant / buildcious)
testing
report
run
CI tools
-
8/8/2019 Day2_PlanningAnAgileProject
74/85
76
Php under control:http://www.phpundercontrol.org/about.html
CI tools
-
8/8/2019 Day2_PlanningAnAgileProject
75/85
77
yHudson:https://hudson.dev.java.net
3. Test-Driven Development
-
8/8/2019 Day2_PlanningAnAgileProject
76/85
78
Tests guide the completion of thefeatures worked on during a sprint
Started right at the beginning of thesprint Refined throughout the sprint
Test guide the programmer duringthe writing of code
Done a little at a time
Augmented throughout the sprint
Acceptance Test-Driven Development
Unit Test-Driven
Development
Tests guide decisions
-
8/8/2019 Day2_PlanningAnAgileProject
77/85
79
Acceptance tests guide decisions about Which parts of a feature should be implemented In what order should the parts of a feature be
implemented When is a feature done
Unit tests guide decisions about How to write the code
Which code is likely to change in thefuture
Test-driven unit testing
-
8/8/2019 Day2_PlanningAnAgileProject
78/85
81
Write a failingtest
Write code topass the test
Run the test toverify the codeThis cycle is very short
Minutes, not hours
Unit tests
-
8/8/2019 Day2_PlanningAnAgileProject
79/85
83
Low level tests to make sure a class or moduleworks as expected
Almost always done by a programmer to his or herown code
Have become much more common over last five
years Increased popularity of the xUnit tools
Allows a programmer to test by writing more code
Are ideally done test-first
Unit tests
-
8/8/2019 Day2_PlanningAnAgileProject
80/85
85
Low level tests to make sure a class or moduleworks as expected
Almost always done by a programmer to his or her
own code
Have become much more common over last fiveyears
Increased popularity of the xUnit tools
Allows a programmer to test by writing more code
Test module first then move to develop next module
It can help to develop fast than debug whole code after
development
A frequent objection
-
8/8/2019 Day2_PlanningAnAgileProject
81/85
86
Why cant I write my unit tests concurrently or right after mycode?
You probably wont; doing this takes more discipline than
writing them first
Youll consider some things not testable with unit tests
Because testability wasnt designed into them
Youll completely miss out on the evolutionary design benefits
The tests wont be as good
Youll be testing to say or show you did it; not writing tests that lead you tothe result
Test-driven acceptance tests
-
8/8/2019 Day2_PlanningAnAgileProject
82/85
87
Are specified by the product owner
A tester can help, especially at first
But only the product owner knows her expectations
Are used to convey expectations about a feature
Because product backlog items are lightweight and dont
include details
we need a way to pass along expectations about a productbacklog item
Iterate the tests, too!
-
8/8/2019 Day2_PlanningAnAgileProject
83/85
88
Just as we iterate over the meaning of arequirement
we iterate over the precision of a test
We start with a simple test plan and thensimultaneously:
Add more test cases
Increase the precision of the test cases
4. Refactoring (design improvement)
-
8/8/2019 Day2_PlanningAnAgileProject
84/85
89
Refactoring
Simplifying or improving the code without
changing its behavior
Its kind of rule of design for repeated changes
Automated unit tests ensure nothing breaks
Allows programmers to refactor with confidence
Always leave the code cleaner than youfound it.
-
8/8/2019 Day2_PlanningAnAgileProject
85/85
Thank you!