Upload
blue-elephant-consulting
View
65
Download
0
Tags:
Embed Size (px)
Citation preview
An Introduction To Software Development
Using Python
Spring Semester, 2015
Class #19:The Next Iteration
Where Do We Stand Now?
• The last iteration went well• We are delivering working software on time
• Software development is all about change• What do we have to do to prepare for the next iteration?
– Rebuild our software development status dashboard– Adjust our user stories– Reset expectations based on what the customer wants NOW…
Image Credit: https://tombasson.wordpress.com/2011/03/27/you-are-here/
3 Things That Make Working Software
• Completing an iteration’s scheduled work– Burn down rate indicates how well your iteration
went– If you didn’t end on time, but got work done and
the customer is happen then it was all good
• Passing all of the tests– Unit tests, system tests, black / white box tests
• Satisfying your customerImage Credit: www.clipartlord.com, www.clipartpanda.com
Review: DashboardUser Stories
Burn Down
Next
Completed
WorkLeft
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
Support 3,000 concurrent users
Spec servers
5KLR
PickDatabase
MJD 5
Get loadbalancer
5LAA
Trade Show DemoCreate demo script
Practicedemo
1
2
KLR
What Is Your Plan For The
Next Iteration?• User Stories
– Provide the user with the opportunity to reprioritize their stories.– New stories will probably be added
• Velocity– How fast the previous iteration was completed will affect the velocity
value you use for the next iteration
• Burn Down– Need to create a new software development dashboard– Need a fresh burn-down rate– Need a new velocity calculation
Image Credit: www.fotosearch.com
What Is Your Plan For The
Next Iteration?• “Next” User Stories
– Any user stories that got put off have to be reprioritized
• Bugs– If they have not been dealt with, they need to be
turned into tasks for the next iteration
Image Credit: www.clipartpanda.com
How To Wrap Up The Last Iteration?
• Archive everything
• Take a photo of the software development dashboard
• Capture:– How much work was planned– How much work was accomplished– Move user stories in “Next” back to the next iteration pile.
Image Credit: www.clipartof.com
Things To Do At The Start Of A New Iteration
• Revise both story and task estimates– You now have more knowledge about how things will work– Revisit estimates for remaining user stories and associated tasks
• Revise velocity– Probably used an initial value of 0.7 (30% wasted)– Use hard data to recalculate new velocity– Goal is to provide customer with confident statements
• Recalculate your estimates and velocity at the start of every iteration, applying what you learned from the previous iteration
Image Credit: www.fotosearch.com
How Do You Use Velocity?
• You apply your velocity to the amount of work that you have to do in order to get a realistic estimate of how long it is going to take you.
Days Of Work
VelocityDays required to get work done=
30 calendar days →20 working days → 15 actual days of real work
You can be confident in this numberImage Credit: www.clker.com
Example: Let’s Plan Our Next Iteration
• Assumptions:– We’ve got 3 software developers on the project– It took us 38 days to complete the last iteration
• Calculate new velocity: 38 / (20 * 3) = 38 / 60 = 0.6
• Calculate work days available: 3 * 20 * 0.6 = 60 * 0.6 = 36 days
Work days in a month
# developers
Days of work done last time
# developers Work days in a month New velocityImage Credit: www.gograph.com
Wrap-Up
• When planning the next iteration, always check with the customer to make sure that this the work that they want.
• Recalculate the velocity at the end of every iteration.
• Let your customer reprioritize your user stories.
• Using your code or someone else's, remember that it’s all just software – your process remains the same.
• You need to have at least one user story for each piece of your code.
• When you are reusing code, never make any assumptions about it.
• Trust no one's code until you’ve seen it work.
• All of your code needs to readable, reliable, and easy for others to understand.
Image Credit: sport-kid.net
What We Covered Today
1. 3 things that make working software
2. Planning the next iteration
3. Wrapping up an iteration
4. Recalculating velocity
Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/