An Introduction To Software Development Using Python Spring Semester, 2015 Class #5: Gathering Requirements, Part 2
Jul 16, 2015
An Introduction To Software
Development Using Python
Spring Semester, 2015
Class #5:
Gathering
Requirements,
Part 2
The Big Problem With Estimates
Your estimate says that the
software project will take 135 days…
Your customer wants the software
in 90 days…
Image Credit: www.freepik.com
All Of Your Requirements
Title: Show Current Deals
Estimate:
Title: Book Packages
Estimate: 15
Title: Arrange Travel
Estimate: 5
Title: Book A Room
Estimate: 10
Title: Book Packages
Estimate: 20
Title: Book a Boat Tour
Estimate: 5Title: 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?
Wrong!
The Customer sets the priorities! You ignored the customer completely
when you chose which user stories take priority for his project!
Image Credit: www.clipartlogo.com
Ultimately this is a choice that the
customer must make (you can help) …
Helping Your Customer Prioritize
• It’s your customer’s decision as to which user stories will end up taking priority over others.
• Lay out all of your story cards for the customer
• Have the customer select the list of features that are the most important to them.
• You then select the list of features that will be delivered in the Milestone 1.0 version of the software.
Image Credit: Ben W
What Will Be In Milestone 1.0?
• Milestone 1.0 will be the first major release of software to the customer (all of it!)
• You will now expect to get paid for your work
• What you need to do:
– Explain to the customer what can be done in the available time
– Deliver what is needed – most important to the customer
– Do not worry about how long this will take – just capture your customer's priorities
Image Credit: www.clipartbest.com
How A Customer Creates Milestone 1.0
• Organize your user stories in priority order
• Have customer select stories that are the most important to them
• Collect together all of the user stories that your customer needs developed and call this Milestone 1.0
Image Credit: www.sparksclass.com
Sanity Check For Milestone 1.0
• You now know what features your customer wants included in Milestone 1.0
• Add together all of the user story estimates for Milestone 1.0
• Does this total estimate seem reasonable to accomplish this within the available time?
Image Credit: www.clipartof.com
Problem: Too Much To Do
• What should you do if you have 100 days of effort and your customer wants the software in 30 days?
• Cut out functionality – remove user stories that are not absolutely critical!
• Keep your development momentum up by shipping a milestone build as soon as possible
• Focus on delivering just a working version of the software, nothing else.
Image Credit: free-pictograms.com
Adding More People
• Every new person has to come up to speed on your project
• They need to understand the software
• They need to understand the technical decisions
• They need to understand how everything fits together.
• They will NOT be 100% productive
Image Credit: www.clker.com
Diminishing Returns• Small teams can benefit greatly from
adding more people.
• After a certain point, performance will start to max out
• Large teams require more communication and adding new members will have less impact on performance
• There is a point that beyond which adding more members will actually reduce team performance
Image Credit: alexkrupp.typepad.com
Your Goal: A Reasonable Milestone 1.0
• Add some people
• Reprioritize user stories with the customer
+
Image Credit: www.clker.com,www.easyvectors.com
Prioritize Example
Title: Show Current Deals
Estimate:
Title: Book Packages
Estimate: 15 , Priority: ?
Title: Arrange Travel
Estimate: 5 , Priority: ?
Title: Book A Room
Estimate: 10 , Priority: ?
Title: Book Packages
Estimate: 20 , Priority: ?
Title: Book a Boat Tour
Estimate: 5 , Priority: ?Title: Pay with Visa/MC/Paypal
Estimate: 10, Priority: ?
Title: Order Trip DVD
Estimate: 5
Title: Review Stay
Estimate: 10
Title: Order Room Service
Estimate: 20 , Priority: ?
Title: Choose View
Estimate: 15 , Priority: ?
Title: Support 3,000 concurrent users
Estimate: 20 , Priority: ?
Image Credit: Sebastien Wiertz
Which ones would you implement to meet
the customer’s schedule?
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:
What We Covered Today
1. Helping Your Customer Prioritize
2. Creating Milestone 1.0
3. Adding more people.
Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/