13
An Introduction To Software Development Using Python Spring Semester, 2015 Class #19: The Next Iteration

An Introduction To Software Development - The Next Iteration

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/

What We’ll Be Covering Next Time

1. The next iteration, Part 2

Image Credit: http://merchantblog.thefind.com/2011/01/merchant-newsletter/resolve-to-take-advantage-of-these-5-e-commerce-trends/attachment/crystal-ball-fullsize/