SlideShare una empresa de Scribd logo
1 de 15
An Introduction To Software
Development Using Python
Spring Semester, 2015
Class #6:
Gathering
Requirements,
Part 3
Manage Your Iterations
• Keep ‘em Short
– Strange things always
happen, short iterations give
you the time needed to deal
with them.
– Short iterations will get you
feedback sooner. This brings
issues to the surface faster
– Helps to keep the team
motivated and focused
• Keep ‘em Balanced
– Each iteration needs to do
many things: deal with
changes, add new features,
deal with bugs, account for
people doing other work.
– A 30-day iteration really
means 20 days of work.
Image Credit: www.polyvore.com
sweetclipart.com
Does Your Development Plan
Account For Reality?
• “No Battle Plan Survives Contact With the Enemy” -
German military strategist Helmuth von Moltke
• What issues do you have to account for when you
are creating your software devleopment plan?
Doing paperwork
Sickness
Equipment Failure
Software Upgrades
Holidays
Vacations
Car Problems
What Is Velocity?
• Velocity is a percentage.
• Velocity is how much of your time is being
spent doing productive work.
• Start with a velocity of 0.7 (your team works 7
out of 10 days)
• You’ll adjust your velocity at the end of each
iteration – short iterations allow you to do this
quicker!
Image Credit: www.clker.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
Velocity
Days required to get work done=
30 calendar days →20 working days → 15 actual days of real work
You can be confident in this number
Image Credit: www.clker.com
Apply Velocity To Your Estimates
Title: Show Current Deals
Estimate:
Title: Book Packages
Estimate: 15
Title: Arrange Travel
Estimate: 5
Title: Book A Room
Estimate: 10
Title: Book a Boat Tour
Estimate: 5
Title: Pay with Visa/MC/Paypal
Estimate: 10
Title: Order Trip DVD
Estimate: 5
Title: Review Stay
Estimate: 10
Title: Order Room Service
Estimate: 20
Title: Choose View
Estimate: 15
Title: Support 3,000 concurrent users
Estimate: 20
Image Credit: Sebastien Wiertz
Which ones would you implement to meet
the customer’s schedule?
New Estimates
Requirement Initial Estimate Estimate w/Velocity
Pay with
Visa/MC/Paypal
10 17
Book Packages 15 26
Arrange Travel 5 9
Book A Room 10 17
Book a Boat Tour 5 9
Order Trip DVD 5 9
Review Stay 10 17
Order Room
Service
20 34
Choose View 15 26
Support 3,000
concurrent users
20 34
Total 115 198
Image Credit: www.schoolclipart.biz
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
Title: Book a Boat Tour
Estimate: 5 Title: Order Trip DVD
Estimate: 5
Title: Order Room Service
Estimate: 20
Title: Arrange Travel
Estimate: 5
Deal With Velocity BEFORE You
Create Your Iterations!
2 x 20 x 0.7 = 28
# developers
Working days in
an iteration
Team’s
velocity
Number of person days
your team can do in one
iteration
28 x 3 = 84
# of iterations
in Milestone 1
Amount of work in days that
you and your team can do
before Milestone 1 is shipped
Image Credit: www.clipartpanda.com
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
What Can’t We Do For Milestone 1?
Title: Book a Boat Tour
Estimate: 5 Title: Order Trip DVD
Estimate: 5
Title: Order Room Service
Estimate: 20
Title: Arrange Travel
Estimate: 5
Now you have to go tell the customer what you will be able to
REALLY do for them…
Image Credit: www.fotosearch.com
How To Deal With
Angry Customers!
1. Add an iteration to Milestone 1
2. Explain: work is just delayed, not lost!
3. Show how you got your numbers
Image Credit: pictogram-free.com
28 x 4 =
112
Pushes out delivery
of Milestone 1
What We Covered Today
1. Accounting for reality.
2. Velocity.
3. Applying velocity to
estimates.
4. Using velocity with
iterations.
Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/
What We’ll Be Covering Next Time
1. User Stories & Tasks
2. Burn Down Charts
3. Tracking Tasks
Image Credit: http://merchantblog.thefind.com/2011/01/merchant-newsletter/resolve-to-take-advantage-of-these-5-e-commerce-trends/attachment/crystal-ball-fullsize/
Homework #1: Lakeland Hospital
Patient Collection Application
• Lakeland Hospital is implementing their first
computer system
• You have been hired to create the patient data
entry system for the emergency room
• Your project is due by
Tuesday, 02/03/2015

Más contenido relacionado

Destacado

Destacado (9)

An Introduction To Python - Lists, Part 1
An Introduction To Python - Lists, Part 1An Introduction To Python - Lists, Part 1
An Introduction To Python - Lists, Part 1
 
An Introduction To Software Development - Implementation
An Introduction To Software Development - ImplementationAn Introduction To Software Development - Implementation
An Introduction To Software Development - Implementation
 
An Introduction To Python - Lists, Part 2
An Introduction To Python - Lists, Part 2An Introduction To Python - Lists, Part 2
An Introduction To Python - Lists, Part 2
 
An Introduction To Python - Tables, List Algorithms
An Introduction To Python - Tables, List AlgorithmsAn Introduction To Python - Tables, List Algorithms
An Introduction To Python - Tables, List Algorithms
 
An Introduction To Python - Dictionaries
An Introduction To Python - DictionariesAn Introduction To Python - Dictionaries
An Introduction To Python - Dictionaries
 
An Introduction To Python - FOR Loop
An Introduction To Python - FOR LoopAn Introduction To Python - FOR Loop
An Introduction To Python - FOR Loop
 
An Introduction To Software Development - Architecture & Detailed Design
An Introduction To Software Development - Architecture & Detailed DesignAn Introduction To Software Development - Architecture & Detailed Design
An Introduction To Software Development - Architecture & Detailed Design
 
An Introduction To Python - Python Midterm Review
An Introduction To Python - Python Midterm ReviewAn Introduction To Python - Python Midterm Review
An Introduction To Python - Python Midterm Review
 
An Introduction To Software Development - Software Support and Maintenance
An Introduction To Software Development - Software Support and MaintenanceAn Introduction To Software Development - Software Support and Maintenance
An Introduction To Software Development - Software Support and Maintenance
 

An Introduction To Software Development - Gathering Requirements, Part 3

  • 1. An Introduction To Software Development Using Python Spring Semester, 2015 Class #6: Gathering Requirements, Part 3
  • 2. Manage Your Iterations • Keep ‘em Short – Strange things always happen, short iterations give you the time needed to deal with them. – Short iterations will get you feedback sooner. This brings issues to the surface faster – Helps to keep the team motivated and focused • Keep ‘em Balanced – Each iteration needs to do many things: deal with changes, add new features, deal with bugs, account for people doing other work. – A 30-day iteration really means 20 days of work. Image Credit: www.polyvore.com sweetclipart.com
  • 3. Does Your Development Plan Account For Reality? • “No Battle Plan Survives Contact With the Enemy” - German military strategist Helmuth von Moltke • What issues do you have to account for when you are creating your software devleopment plan? Doing paperwork Sickness Equipment Failure Software Upgrades Holidays Vacations Car Problems
  • 4. What Is Velocity? • Velocity is a percentage. • Velocity is how much of your time is being spent doing productive work. • Start with a velocity of 0.7 (your team works 7 out of 10 days) • You’ll adjust your velocity at the end of each iteration – short iterations allow you to do this quicker! Image Credit: www.clker.com
  • 5. 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 Velocity Days required to get work done= 30 calendar days →20 working days → 15 actual days of real work You can be confident in this number Image Credit: www.clker.com
  • 6. Apply Velocity To Your Estimates Title: Show Current Deals Estimate: Title: Book Packages Estimate: 15 Title: Arrange Travel Estimate: 5 Title: Book A Room Estimate: 10 Title: Book a Boat Tour Estimate: 5 Title: Pay with Visa/MC/Paypal Estimate: 10 Title: Order Trip DVD Estimate: 5 Title: Review Stay Estimate: 10 Title: Order Room Service Estimate: 20 Title: Choose View Estimate: 15 Title: Support 3,000 concurrent users Estimate: 20 Image Credit: Sebastien Wiertz Which ones would you implement to meet the customer’s schedule?
  • 7. New Estimates Requirement Initial Estimate Estimate w/Velocity Pay with Visa/MC/Paypal 10 17 Book Packages 15 26 Arrange Travel 5 9 Book A Room 10 17 Book a Boat Tour 5 9 Order Trip DVD 5 9 Review Stay 10 17 Order Room Service 20 34 Choose View 15 26 Support 3,000 concurrent users 20 34 Total 115 198 Image Credit: www.schoolclipart.biz
  • 8. 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 Title: Book a Boat Tour Estimate: 5 Title: Order Trip DVD Estimate: 5 Title: Order Room Service Estimate: 20 Title: Arrange Travel Estimate: 5
  • 9. Deal With Velocity BEFORE You Create Your Iterations! 2 x 20 x 0.7 = 28 # developers Working days in an iteration Team’s velocity Number of person days your team can do in one iteration 28 x 3 = 84 # of iterations in Milestone 1 Amount of work in days that you and your team can do before Milestone 1 is shipped Image Credit: www.clipartpanda.com
  • 10. 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
  • 11. What Can’t We Do For Milestone 1? Title: Book a Boat Tour Estimate: 5 Title: Order Trip DVD Estimate: 5 Title: Order Room Service Estimate: 20 Title: Arrange Travel Estimate: 5 Now you have to go tell the customer what you will be able to REALLY do for them… Image Credit: www.fotosearch.com
  • 12. How To Deal With Angry Customers! 1. Add an iteration to Milestone 1 2. Explain: work is just delayed, not lost! 3. Show how you got your numbers Image Credit: pictogram-free.com 28 x 4 = 112 Pushes out delivery of Milestone 1
  • 13. What We Covered Today 1. Accounting for reality. 2. Velocity. 3. Applying velocity to estimates. 4. Using velocity with iterations. Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/
  • 14. What We’ll Be Covering Next Time 1. User Stories & Tasks 2. Burn Down Charts 3. Tracking Tasks Image Credit: http://merchantblog.thefind.com/2011/01/merchant-newsletter/resolve-to-take-advantage-of-these-5-e-commerce-trends/attachment/crystal-ball-fullsize/
  • 15. Homework #1: Lakeland Hospital Patient Collection Application • Lakeland Hospital is implementing their first computer system • You have been hired to create the patient data entry system for the emergency room • Your project is due by Tuesday, 02/03/2015

Notas del editor

  1. New name for the class I know what this means Technical professionals are who get hired This means much more than just having a narrow vertical knowledge of some subject area. It means that you know how to produce an outcome that I value. I’m willing to pay you to do that.