an introduction to software development - project planning

20
An Introduction To Software Development Using Python Spring Semester, 2015 Class #7: Project Planning

Upload: blue-elephant-consulting

Post on 18-Jul-2015

780 views

Category:

Education


2 download

TRANSCRIPT

Page 1: An Introduction To Software Development - Project Planning

An Introduction To Software

Development Using Python

Spring Semester, 2015

Class #7:

Project Planning

Page 2: An Introduction To Software Development - Project Planning

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

Page 3: An Introduction To Software Development - Project Planning

How Are We Going To Mange Our Software Development Project?

• We’ll use a Software Development Dashboard to track where our project is currently at.

• We want to track 3 things:

– What work is in the pipeline

– What’s in being worked on

– What has been completed

• Ideally, the board would be out in a public place where everyone could see it all the time

Image Credit: vector-images.com

Page 4: An Introduction To Software Development - Project Planning

What Does The Dashboard Look Like?

User Stories Burn Down

Next

Completed

Work

Left

Days Left

88

80 60 40 20Pay with

Visa

/ MC /

Paypal

Support

3,000

concurrent

users

10

20

Estimates

User stories for iteration 1

Page 5: An Introduction To Software Development - Project Planning

The Burn Down ChartTotal development

time left for team in days

Ideal task burn down rate

Your team’s work is plotted

against the line. Above the line

means that you are running

behind…… below the

line means you

are ahead

Days left in this iteration

Page 6: An Introduction To Software Development - Project Planning

Time To Assign User Stories To Developers

Pay with

Visa

/ MC /

Paypal

10

Image Credit: imgkid.com

Page 7: An Introduction To Software Development - Project Planning

Problems With Assigning User Stories

• It turns out that your development work is more granular than youruser stories.

– User stories are for the user

– Every story is a collection of specific tasks

– A task is work that needs to be done by one developer as part of the user story

• Tasks have:

– Title

– Rough description

– EstimateImage Credit: www.dreamstime.com

Page 8: An Introduction To Software Development - Project Planning

Break User Story Into Tasks

• Task descriptions should have just enough information to describe what the work is

• Tasks must cover ALL of the User Story’s functionality

• Each task has its own estimate

Pay with

Visa

/ MC /

Paypal

10

Pay with

Visa Pay with

MC

Pay with

Paypal

33

5Estimates

Page 9: An Introduction To Software Development - Project Planning

What Happens When Estimates Don’t Agree?

• You need to view task estimates as adding confidence to User Story estimates

• Ideally you’d create tasks and estimate them before giving your estimate to your customer

• Always rely on your task estimates – they are more accurate than your coarse-grained User Story estimates.

1011

Image Credit: www.fotosearch.com

Page 10: An Introduction To Software Development - Project Planning

Update Your Burn Down Chart With New Task Estimates

Estimate updated

based on task estimates

Page 11: An Introduction To Software Development - Project Planning

Place Tasks On DashboardUser Stories

Burn Down

Next

Completed

Work

Left

Days Left

89

80 60 40 20

Support

3,000

concurrent

users

20

Pay with

Visa

Pay with

MCPay with

Paypal

3

3

5

CompleteIn Progress

Pay with Visa / MC / Paypal

Bumped user stories

would be placed here

Page 12: An Introduction To Software Development - Project Planning

Place Tasks On DashboardUser Stories

Burn Down

Next

Completed

Work

Left

Days Left

89

80 60 40 20

Support

3,000

concurrent

users

20

Pay with

Visa

Pay with

MC

Pay with

Paypal

3 3

5

CompleteIn Progress

Pay with Visa / MC / Paypal JMA TLC

ERHAdd developer initials

so you know who is doing what

Assigned but not yet

in progress

Page 13: An Introduction To Software Development - Project Planning

Can A Developer Work On Two Things At One Time?

• Yes! If two tasks are closely related then it’s not a problem to work on both at the same time.

• Especially true if one task will provide inputs for the second task – no need to rework

• Doubled up tasks should affect same part of the software

• Don’t double up on tasks that have large estimates

Image Credit: hobbieskroka.com

Page 14: An Introduction To Software Development - Project Planning

Multiple User StoriesUser Stories

Burn Down

Next

Completed

Work

Left

Days Left

89

80 60 40 20

Pay with

Visa

Pay with

MC

Pay with

Paypal

3 35

CompleteIn Progress

Pay with Visa / MC / Paypal JMA TLCERH

Completed tasks go here until

the entire user story is done.

Support 3,000 concurrent users

Spec

servers

5KLR

Pick

Database

MJD 5

Get load

balancer

5TLC

The next user stories are

in progress

Page 15: An Introduction To Software Development - Project Planning

Place Tasks On DashboardUser Stories

Burn Down

Next

Completed

Work

Left

Days Left

89

80 60 40 20

Pay

with

Visa

Pay

with

MC

Pay with

Paypal

3 35

CompleteIn Progress

Pay with Visa / MC / Paypal

JM

ATLC

ERH

Completed user stories and

their tasks go here

Support 3,000 concurrent users

Spec

servers

5KLR

Pick

Database

MJD 5

Get load

balancer

5LAA

Page 16: An Introduction To Software Development - Project Planning

Unplanned Tasks!

• Sadly, unplanned events do occur

• When an unplanned event occurs, you need to track it like everything else

– Affects your burn-down rate

– Work being done on user stories

– Etc.

Image Credit: www.melodyhome.com

Page 17: An Introduction To Software Development - Project Planning

Dealing With Unplanned TasksUser Stories

Burn Down

Next

Completed

Work

Left

Days Left

89

80 60 40 20

Pay

with

Visa

Pay

with

MC

Pay with

Paypal

3 35

CompleteIn Progress

Pay with Visa / MC / Paypal

JM

ATLC

ERH

Unplanned user stories and

their tasks go here

Support 3,000 concurrent users

Spec

servers

5KLR

Pick

Database

MJD 5

Get load

balancer

5LAA

Trade Show Demo

Create

demo

script

Practice

demo

1 2

Page 18: An Introduction To Software Development - Project Planning

Impact Of Unplanned TasksUser Stories

Burn Down

Next

Completed

Work

Left

Days Left

89

80 60 40 20

Pay

with

Visa

Pay

with

MC

Pay with

Paypal

3 35

CompleteIn Progress

Pay with Visa / MC / Paypal

JM

ATLC

ERH

Support 3,000 concurrent users

Spec

servers

5KLR

Pick

Database

MJD 5

Get load

balancer

5LAA

Trade Show DemoCreate

demo

script

Practice

demo

1

2

Put on hold because of work

on unplanned task

KLR

Page 19: An Introduction To Software Development - Project Planning

What We Covered Today

1. Software Development Dashboard

2. Burn Down Chart

3. Tasks

4. Unplanned tasks

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

Page 20: An Introduction To Software Development - Project Planning

What We’ll Be Covering Next Time

1. The Single Responsibility Rule

2. DRY: Don’t Repeat Yourself

3. “Good Enough” Design

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