This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
http://youtu.be/97dDSSscyM4
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
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.