an introduction to software development - project planning
TRANSCRIPT
An Introduction To Software
Development Using Python
Spring Semester, 2015
Class #7:
Project Planning
Iteration ExampleIteration #1
Total Days: Divided by 2 developers:
Iteration #2
Total Days: Divided by 2 developers:
Iteration #3
Total Days: Divided by 2 developers:
Title: Pay with Visa/MC/Paypal
Estimate: 10
Title: Book A Room
Estimate: 10
Title: Support 3,000 concurrent users
Estimate: 20
Title: Book Packages
Estimate: 15
Title: Choose View
Estimate: 15
Title: Review Stay
Estimate: 10
How Are We Going To Mange Our Software Development Project?
• We’ll use a Software Development Dashboard to track where our project is currently at.
• We want to track 3 things:
– What work is in the pipeline
– What’s in being worked on
– What has been completed
• Ideally, the board would be out in a public place where everyone could see it all the time
Image Credit: vector-images.com
What Does The Dashboard Look Like?
User Stories Burn Down
Next
Completed
Work
Left
Days Left
88
80 60 40 20Pay with
Visa
/ MC /
Paypal
Support
3,000
concurrent
users
10
20
Estimates
User stories for iteration 1
The Burn Down ChartTotal development
time left for team in days
Ideal task burn down rate
Your team’s work is plotted
against the line. Above the line
means that you are running
behind…… below the
line means you
are ahead
Days left in this iteration
Time To Assign User Stories To Developers
Pay with
Visa
/ MC /
Paypal
10
Image Credit: imgkid.com
Problems With Assigning User Stories
• It turns out that your development work is more granular than youruser stories.
– User stories are for the user
– Every story is a collection of specific tasks
– A task is work that needs to be done by one developer as part of the user story
• Tasks have:
– Title
– Rough description
– EstimateImage Credit: www.dreamstime.com
Break User Story Into Tasks
• Task descriptions should have just enough information to describe what the work is
• Tasks must cover ALL of the User Story’s functionality
• Each task has its own estimate
Pay with
Visa
/ MC /
Paypal
10
Pay with
Visa Pay with
MC
Pay with
Paypal
33
5Estimates
What Happens When Estimates Don’t Agree?
• You need to view task estimates as adding confidence to User Story estimates
• Ideally you’d create tasks and estimate them before giving your estimate to your customer
• Always rely on your task estimates – they are more accurate than your coarse-grained User Story estimates.
1011
Image Credit: www.fotosearch.com
Update Your Burn Down Chart With New Task Estimates
Estimate updated
based on task estimates
Place Tasks On DashboardUser Stories
Burn Down
Next
Completed
Work
Left
Days Left
89
80 60 40 20
Support
3,000
concurrent
users
20
Pay with
Visa
Pay with
MCPay with
Paypal
3
3
5
CompleteIn Progress
Pay with Visa / MC / Paypal
Bumped user stories
would be placed here
Place Tasks On DashboardUser Stories
Burn Down
Next
Completed
Work
Left
Days Left
89
80 60 40 20
Support
3,000
concurrent
users
20
Pay with
Visa
Pay with
MC
Pay with
Paypal
3 3
5
CompleteIn Progress
Pay with Visa / MC / Paypal JMA TLC
ERHAdd developer initials
so you know who is doing what
Assigned but not yet
in progress
Can A Developer Work On Two Things At One Time?
• Yes! If two tasks are closely related then it’s not a problem to work on both at the same time.
• Especially true if one task will provide inputs for the second task – no need to rework
• Doubled up tasks should affect same part of the software
• Don’t double up on tasks that have large estimates
Image Credit: hobbieskroka.com
Multiple User StoriesUser Stories
Burn Down
Next
Completed
Work
Left
Days Left
89
80 60 40 20
Pay with
Visa
Pay with
MC
Pay with
Paypal
3 35
CompleteIn Progress
Pay with Visa / MC / Paypal JMA TLCERH
Completed tasks go here until
the entire user story is done.
Support 3,000 concurrent users
Spec
servers
5KLR
Pick
Database
MJD 5
Get load
balancer
5TLC
The next user stories are
in progress
Place Tasks On DashboardUser Stories
Burn Down
Next
Completed
Work
Left
Days Left
89
80 60 40 20
Pay
with
Visa
Pay
with
MC
Pay with
Paypal
3 35
CompleteIn Progress
Pay with Visa / MC / Paypal
JM
ATLC
ERH
Completed user stories and
their tasks go here
Support 3,000 concurrent users
Spec
servers
5KLR
Pick
Database
MJD 5
Get load
balancer
5LAA
Unplanned Tasks!
• Sadly, unplanned events do occur
• When an unplanned event occurs, you need to track it like everything else
– Affects your burn-down rate
– Work being done on user stories
– Etc.
Image Credit: www.melodyhome.com
Dealing With Unplanned TasksUser Stories
Burn Down
Next
Completed
Work
Left
Days Left
89
80 60 40 20
Pay
with
Visa
Pay
with
MC
Pay with
Paypal
3 35
CompleteIn Progress
Pay with Visa / MC / Paypal
JM
ATLC
ERH
Unplanned user stories and
their tasks go here
Support 3,000 concurrent users
Spec
servers
5KLR
Pick
Database
MJD 5
Get load
balancer
5LAA
Trade Show Demo
Create
demo
script
Practice
demo
1 2
Impact Of Unplanned TasksUser Stories
Burn Down
Next
Completed
Work
Left
Days Left
89
80 60 40 20
Pay
with
Visa
Pay
with
MC
Pay with
Paypal
3 35
CompleteIn Progress
Pay with Visa / MC / Paypal
JM
ATLC
ERH
Support 3,000 concurrent users
Spec
servers
5KLR
Pick
Database
MJD 5
Get load
balancer
5LAA
Trade Show DemoCreate
demo
script
Practice
demo
1
2
Put on hold because of work
on unplanned task
KLR
What We Covered Today
1. Software Development Dashboard
2. Burn Down Chart
3. Tasks
4. Unplanned tasks
Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/
What We’ll Be Covering Next Time
1. The Single Responsibility Rule
2. DRY: Don’t Repeat Yourself
3. “Good Enough” Design
Image Credit: http://merchantblog.thefind.com/2011/01/merchant-newsletter/resolve-to-take-advantage-of-these-5-e-commerce-trends/attachment/crystal-ball-fullsize/