21
An Introduction To Software Development Using Python Spring Semester, 2015 Class #4: Requirements

An Introduction To Software Development - Requirements, Part 2

Embed Size (px)

Citation preview

An Introduction To Software

Development Using Python

Spring Semester, 2015

Class #4:

Requirements

Get-Away Vacations Wants To Promote Their Ocean Front Site

Image Credit: Dennis Jarvis

GAV believes that they need a web site that will show their current deals, they

want their visitors to be able to book hotel stays and special packages, as well as

pay for their bookings online. They also want to offer a luxury service that includes

travel to and from the hotel and a boat tour.

All About Estimates

• User stories define what your software will do. Estimates define when it will be done.

• “How long will all of this take?”

• Two steps to estimate the answer:

– Create an estimate for each user story: how long will it take to design, code, test, and deliver that story functionality.

– Add up all of the user story estimates to create a single total estimate for your software project.

Image Credit: imgarcade.com

Time For You To Do Some Estimating

Title: Pay with Visa/MC/Paypal

Description: User swill be able to pay

for their booking with either credit card

or Paypal

Title: Order Trip DVD

Description: A GAV user will

be able to order a DVD that captures

the highlights of their trip.

Title: Review Stay

Description: A GAV user will

be able to leave a review of their

time at the hotel.

Title: Order Room Service

Description: A GV user will be able

to specify the meals they want during

their stay.

Title: Choose View

Description: A GAV user will

be able to choose what type of view

they want from their room.

Title: Support 3,000 concurrent users

Description: Allow 3,000 users to

access the website at the same time.Image Credit: www.clipartbest.com

Estimating In The Real World

Feature Your Estimate Ted Robin

Pay with Visa /MC/Paypal

15 10

Order trip DVD 20 2

Choose Hotel View 12 2

Order room service meals

2 7

Post review of hotel stay 3 3

Looks like we’ve got a problem here: multiple estimates with different

values. Who’s right?

Keep in mind that getting rid of bad estimates is necessary in order to

create estimates that you can truly believe in…

Time To Play“Planning Poker”

Image Credit: www.gograph.com

The 13 Cards That You’ll Have To Play With

0

Days

1/2

Days

1

Days

2

Days

3

Days

5

Days

8

Days

13

Days

20

Days

40

Days

100

Days?

Image Credit: www.clker.com, Clipart Panda

Take a break from estimating!

Not enough information to estimate

Already done # of developer days

Round 1

Title: Pay with Visa/MC/Paypal

Description: User swill be able to pay

for their booking with either credit card

or Paypal

Image Credit: www.gograph.com

Round 2

Title: Order Trip DVD

Description: A GAV user will

be able to order a DVD that captures

the highlights of their trip.

Image Credit: www.gograph.com

Round 3

Title: Review Stay

Description: A GAV user will

be able to leave a review of their

time at the hotel.

Image Credit: www.gograph.com

Round 4

Title: Order Room Service

Description: A GV user will be able

to specify the meals they want during

their stay.

Image Credit: www.gograph.com

Round 5

Title: Choose View

Description: A GAV user will

be able to choose what type of view

they want from their room.

Image Credit: www.gograph.com

Round 6

Title: Support 3,000 concurrent users

Description: Allow 3,000 users to

access the website at the same time.

Image Credit: www.gograph.com

How We’ll Pick An Estimate That’s Accurate

0 100

This gap worries us:

What’s missing?

What user story was misunderstood?

What is someone unsure of?

Rules About Assumptions

• A complete development cycle should take roughly one month – 20 development days.

• Rule of thumb: estimates that are longer than 15 days are less likely to be accurate then estimates that are shorter than 15 days.

– Break your stories in to smaller stories

– Go back and talk with your customer again

Image Credit: www.canstockphoto.com

When Estimating, Assumptions Are Bad!

• When creating estimates, no assumption is a good assumption.

• Assume that assumptions are wrong until clarified by the customer.

• Sometimes you end up having to live with an assumption because your customer doesn’t know:– Write it down as a risk for a given user story.

– You may delay implementing a given user story that has a number of risks associated with it.

You cannot always get rid of all of your assumptions. Your goal during

estimation needs to be to eliminate as many assumptions as possible by

clarifying those assumptions with your customer. Any assumptions that survive

this process then become risks.Image Credit: www.fotosearch.com

How Valuable Is Your Customer’s Time?

• Getting clarification from your customer can require a great deal of work.

• You need to be careful to use your customer’s time very carefully.

• When meeting with your customer you need to make sure that you are organized, efficient, and the time is well-spent.

• Collect a group of assumptions and move through these in one meeting with the customer.

Image Credit: thegraphicsfairy.com

When Estimating, Your Goal Is Convergence

0 1004 Ways To Reach Convergence:

1. Talk to the customer

2. Play planning poker

3. Clarify your assumptions

4. Come to a consensus

When you are confident in your estimate and you are comfortable with the

assumptions, then it’s time to accept that estimate and move on…

But…

What should you do if your

total estimate for the project

is too long for your customer?

Image Creditdeadlyclear.wordpress.com

What We Covered Today

1. Estimating in the real world.

2. Planning Poker

3. Assumptions.

4. Convergence.

Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/

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/