Top Banner
An Introduction To Software Development Using Python Spring Semester, 2015 Class #5: Gathering Requirements, Part 2
16
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An Introduction To Software Development - Gathering Requirements, Part 2

An Introduction To Software

Development Using Python

Spring Semester, 2015

Class #5:

Gathering

Requirements,

Part 2

Page 2: An Introduction To Software Development - 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

Page 3: An Introduction To Software Development - Gathering Requirements, Part 2

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?

Page 4: An Introduction To Software Development - Gathering Requirements, Part 2

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) …

Page 5: An Introduction To Software Development - Gathering Requirements, Part 2

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

Page 6: An Introduction To Software Development - Gathering Requirements, Part 2

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

Page 7: An Introduction To Software Development - Gathering Requirements, Part 2

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

Page 8: An Introduction To Software Development - Gathering Requirements, Part 2

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

Page 9: An Introduction To Software Development - Gathering Requirements, Part 2

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

Page 10: An Introduction To Software Development - Gathering Requirements, Part 2

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

Page 11: An Introduction To Software Development - Gathering Requirements, Part 2

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

Page 12: An Introduction To Software Development - Gathering Requirements, Part 2

Your Goal: A Reasonable Milestone 1.0

• Add some people

• Reprioritize user stories with the customer

+

Image Credit: www.clker.com,www.easyvectors.com

Page 13: An Introduction To Software Development - Gathering Requirements, Part 2

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?

Page 14: An Introduction To Software Development - Gathering Requirements, Part 2

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:

Page 15: An Introduction To Software Development - Gathering Requirements, Part 2

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/

Page 16: An Introduction To Software Development - Gathering Requirements, Part 2

What We’ll Be Covering Next Time

1. Project Planning

2. Priorities

3. Velocity

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