146
Getting Early Estimates Right Jakob Persson

Getting Early Estimates Right, DrupalCon Chicago 2011

Embed Size (px)

DESCRIPTION

These are the slides from my session at DrupalCon Chicago. Session description:Almost all clients who approach you about a project want to know up front what the total cost will be. They hand you some loose notes and expect a fixed number of hours or price. To many this presents an impossible task. What is often forgotten is that an exact estimate isn't expected. What you need to produce is one that is accurate enough to close the sale.In this talk I will introduce an early estimation method. Using it we're able to tell a client early on the expected size of a project and close sales faster. It allows us to provide estimates early on helping clients to make early decisions regarding the scope and focus of the project.In this session you will learn how to:- Use fixed estimates to manage uncertainty- Break requirements down into features- Drafting rough Drupal solutions for features- Estimate based on experience instead of guesswork

Citation preview

Page 1: Getting Early Estimates Right, DrupalCon Chicago 2011

Getting Early Estimates RightJakob Persson

Page 2: Getting Early Estimates Right, DrupalCon Chicago 2011

Introducing me

www.nodeone.seSTOCKHOLM | GOTHENBURG | COPENHAGEN

Lead Drupal Solutions Architect

Co-Founder of NodeOne

Worked with Drupal since 2005

[email protected]

http://www.twitter.com/realsolipsist

http://drupal.org/user/37564

Page 3: Getting Early Estimates Right, DrupalCon Chicago 2011

Introducing

Some of NodeOne’s team and clients

Scandinavia’s largest Drupal services provider

Employs 39 people

Offices in Sweden and Denmark

Page 4: Getting Early Estimates Right, DrupalCon Chicago 2011

What we do at NodeOne, apart from...

Page 5: Getting Early Estimates Right, DrupalCon Chicago 2011

card games...

Hi, I’m Dries!*

www.drupalcardgame.com

* No he’s not really Dries, but you knew that already.

Page 6: Getting Early Estimates Right, DrupalCon Chicago 2011

Druplicons wielding nun-chuks...

Druplicon Road Trip – “Showdown in Paris” (YouTube)

Page 7: Getting Early Estimates Right, DrupalCon Chicago 2011

Drupal rock stars...

“The Kitten Killers” Live at DrupalCon Copenhagen (photo by Dries)

Page 8: Getting Early Estimates Right, DrupalCon Chicago 2011

Pilot studies

Design and usability

Development

Hosting and scalability

Training

Consulting

Page 9: Getting Early Estimates Right, DrupalCon Chicago 2011

Early estimating“There’s no point in being exact about something if you don’t even know what you’re talking about.”

— John von Neumann

Page 10: Getting Early Estimates Right, DrupalCon Chicago 2011
Page 11: Getting Early Estimates Right, DrupalCon Chicago 2011
Page 12: Getting Early Estimates Right, DrupalCon Chicago 2011
Page 13: Getting Early Estimates Right, DrupalCon Chicago 2011

frustrated!

Page 14: Getting Early Estimates Right, DrupalCon Chicago 2011

frustrated!

bored...

Page 15: Getting Early Estimates Right, DrupalCon Chicago 2011

frustrated!

bored...

uncertain?!

Page 16: Getting Early Estimates Right, DrupalCon Chicago 2011

What is an early estimate?

Page 17: Getting Early Estimates Right, DrupalCon Chicago 2011

“Estimation is the calculated approximation of a result which is usable even if input data may be incomplete or uncertain.”

Source: Wikipedia

Page 18: Getting Early Estimates Right, DrupalCon Chicago 2011

Useless!

http

://w

ww

.sxc

.hu/

phot

o/12

5985

0

Page 19: Getting Early Estimates Right, DrupalCon Chicago 2011

Useless!

Project X

≠ Project ?Project Y

http

://w

ww

.sxc

.hu/

phot

o/12

5985

0

Page 20: Getting Early Estimates Right, DrupalCon Chicago 2011

Early estimates vs in-project estimates

Early In-project

Target Feature User story

Purpose Decide on investment Planning

Accuracy Low to medium High

Method Expert Team

Page 21: Getting Early Estimates Right, DrupalCon Chicago 2011

Effort and accuracy

Acc

urac

y

Effort

100%

Adapted from “Agile Estimating and Planning”, Cohn 2008

Page 22: Getting Early Estimates Right, DrupalCon Chicago 2011

Early estimates

• Can be made in relatively short time

• Generates estimates that aren’t based on random guesses or chance

• Lets you use your experience as a yardstick and reference

Page 23: Getting Early Estimates Right, DrupalCon Chicago 2011

How early estimates are made

Page 24: Getting Early Estimates Right, DrupalCon Chicago 2011

“Divide et impera”, how’s that for a

strategy?

Page 25: Getting Early Estimates Right, DrupalCon Chicago 2011

# Title Estimate DoE Solution

1

2

3

4

A spreadsheet

A Drupal-devoted developer

– and possibly also –

Dick Olsson, kick-ass Drupal developer at NodeOne

Page 26: Getting Early Estimates Right, DrupalCon Chicago 2011

The method

Page 27: Getting Early Estimates Right, DrupalCon Chicago 2011

Timebox your estimation work

Analyze the requirements

Make initial guesstimate

Extract features and write proposed solutions

Estimate features

Take uncertainty and errors into account

Compare with guesstimate

Page 28: Getting Early Estimates Right, DrupalCon Chicago 2011

Tim

ebox

Analy

ze re

quire

men

tsIn

itial

gues

stim

ate

Extr

act f

eatu

res

Estim

ate

feat

ures

Unc

erta

inty

and

err

ors

Com

pare

with

gue

sstim

ate

Page 29: Getting Early Estimates Right, DrupalCon Chicago 2011

TIMEBOX ESTIMATION WORK

Page 30: Getting Early Estimates Right, DrupalCon Chicago 2011

From: [email protected]: YouSubject: Link directory on Drupal

Hey,

We're looking into moving our site awesomecoolwebsites.com to drupal and wonderhow much it would cost. We would like to get rid of the proprietary software weuse and have more flexibility. Drupal seems to be the best choice for us.

Our site is a link directory where people with awesomely cool sites can postlinks to their sites. The directory is divided into categories and people canpay for premium exposure. We also have something called "link of the day" whichcosts $50 and puts a link to your site on the front page.

The site has a blog where we post updates and business articles on a regularbasis. This blog is written by several people and they can only be able to edittheir own blog posts. Though they should be able to add other users who can edittheir posts so that they can cooperate on a post.

We're not planning on migrating content but we're offshoring the work and allold links will be added manually. We want to tag content too and we think it'sbest to migrate manually and do the tagging at the same time.

It's important that it's super easy to post new links and comment on blog posts.when you add a link you get a user account. Unless you have one already.Also, administrators must be able to approve links posted. Admins should get anemail when links are added so they can go and check.We want captcha so that automated postings are prevented.

When you buy a premium link you pay with credit card, we have a processor forthis and drupal needs to integrate with them. It's important that users feelsuper safe when submitting links. For this reason the whole submit process mustbe over secure connection.

We plan on launching the new drupalized site in the next six months.

Looking forward to your quote.

Sincerely,

JohnWebsite Manager

ANALYZE THE REQUIREMENTS

Page 31: Getting Early Estimates Right, DrupalCon Chicago 2011

From: [email protected]: YouSubject: Link directory on Drupal

Hey,

We're looking into moving our site awesomecoolwebsites.com to drupal and wonderhow much it would cost. We would like to get rid of the proprietary software weuse and have more flexibility. Drupal seems to be the best choice for us.

Our site is a link directory where people with awesomely cool sites can postlinks to their sites. The directory is divided into categories and people canpay for premium exposure. We also have something called "link of the day" whichcosts $50 and puts a link to your site on the front page.

The site has a blog where we post updates and business articles on a regularbasis. This blog is written by several people and they can only be able to edittheir own blog posts. Though they should be able to add other users who can edittheir posts so that they can cooperate on a post.

We're not planning on migrating content but we're offshoring the work and allold links will be added manually. We want to tag content too and we think it'sbest to migrate manually and do the tagging at the same time.

It's important that it's super easy to post new links and comment on blog posts.when you add a link you get a user account. Unless you have one already.Also, administrators must be able to approve links posted. Admins should get anemail when links are added so they can go and check.We want captcha so that automated postings are prevented.

When you buy a premium link you pay with credit card, we have a processor forthis and drupal needs to integrate with them. It's important that users feelsuper safe when submitting links. For this reason the whole submit process mustbe over secure connection.

We plan on launching the new drupalized site in the next six months.

Looking forward to your quote.

Sincerely,

JohnWebsite Manager

ANALYZE THE REQUIREMENTS

Check out the sample

requirements for the

link directory site at:

http://bit.ly/drupalestimating

Page 32: Getting Early Estimates Right, DrupalCon Chicago 2011

MAKE INITIAL GUESSTIMATE

“BETWEEN THUMB AND INDEX FINGER”

Page 33: Getting Early Estimates Right, DrupalCon Chicago 2011

EXTRACT FEATURES AND WRITE SOLUTIONS

From: [email protected]: YouSubject: Link directory on Drupal

Hey,

We're looking into moving our site awesomecoolwebsites.com to drupal and wonderhow much it would cost. We would like to get rid of the proprietary software weuse and have more flexibility. Drupal seems to be the best choice for us.

Our site is a link directory where people with awesomely cool sites can postlinks to their sites. The directory is divided into categories and people canpay for premium exposure. We also have something called "link of the day" whichcosts $50 and puts a link to your site on the front page.

The site has a blog where we post updates and business articles on a regularbasis. This blog is written by several people and they can only be able to edittheir own blog posts. Though they should be able to add other users who can edittheir posts so that they can cooperate on a post.

We're not planning on migrating content but we're offshoring the work and allold links will be added manually. We want to tag content too and we think it'sbest to migrate manually and do the tagging at the same time.

It's important that it's super easy to post new links and comment on blog posts.when you add a link you get a user account. Unless you have one already.Also, administrators must be able to approve links posted. Admins should get anemail when links are added so they can go and check.We want captcha so that automated postings are prevented.

When you buy a premium link you pay with credit card, we have a processor forthis and drupal needs to integrate with them. It's important that users feelsuper safe when submitting links. For this reason the whole submit process mustbe over secure connection.

We plan on launching the new drupalized site in the next six months.

Looking forward to your quote.

Sincerely,

JohnWebsite Manager

Page 34: Getting Early Estimates Right, DrupalCon Chicago 2011

http://bit.ly/drupalestimating

The sample requirements for the link directory website can also be found on the web:

Page 35: Getting Early Estimates Right, DrupalCon Chicago 2011

Requirements

Feature A

Feature B

Feature C

Feature D

Feature E

Feature F

are broken down into

2

10

1

20

5

1

Page 36: Getting Early Estimates Right, DrupalCon Chicago 2011

FeatureDefinition of a

Page 37: Getting Early Estimates Right, DrupalCon Chicago 2011

A conceptually and contextually discrete piece of the final deliverables with an estimated proposed solution

FeatureDefinition of a

Page 38: Getting Early Estimates Right, DrupalCon Chicago 2011

Link directory sample requirements:

http://bit.ly/drupalestimating

Page 39: Getting Early Estimates Right, DrupalCon Chicago 2011

From: [email protected]: YouSubject: Link directory on Drupal

Hey,

We're looking into moving our site awesomecoolwebsites.com to drupal and wonderhow much it would cost. We would like to get rid of the proprietary software weuse and have more flexibility. Drupal seems to be the best choice for us.

Our site is a link directory where people with awesomely cool sites can postlinks to their sites. The directory is divided into categories and people canpay for premium exposure. We also have something called "link of the day" whichcosts $50 and puts a link to your site on the front page.

The site has a blog where we post updates and business articles on a regularbasis. This blog is written by several people and they can only be able to edittheir own blog posts. Though they should be able to add other users who can edittheir posts so that they can cooperate on a post.

We're not planning on migrating content but we're offshoring the work and allold links will be added manually. We want to tag content too and we think it'sbest to migrate manually and do the tagging at the same time.

It's important that it's super easy to post new links and comment on blog posts.when you add a link you get a user account. Unless you have one already.Also, administrators must be able to approve links posted. Admins should get anemail when links are added so they can go and check.We want captcha so that automated postings are prevented.

When you buy a premium link you pay with credit card, we have a processor forthis and drupal needs to integrate with them. It's important that users feelsuper safe when submitting links. For this reason the whole submit process mustbe over secure connection.

We plan on launching the new drupalized site in the next six months.

Looking forward to your quote.

Sincerely,

JohnWebsite Manager

Page 40: Getting Early Estimates Right, DrupalCon Chicago 2011

From: [email protected]: YouSubject: Link directory on Drupal

Hey,

We're looking into moving our site awesomecoolwebsites.com to drupal and wonderhow much it would cost. We would like to get rid of the proprietary software weuse and have more flexibility. Drupal seems to be the best choice for us.

Our site is a link directory where people with awesomely cool sites can postlinks to their sites. The directory is divided into categories and people canpay for premium exposure. We also have something called "link of the day" whichcosts $50 and puts a link to your site on the front page.

The site has a blog where we post updates and business articles on a regularbasis. This blog is written by several people and they can only be able to edittheir own blog posts. Though they should be able to add other users who can edittheir posts so that they can cooperate on a post.

We're not planning on migrating content but we're offshoring the work and allold links will be added manually. We want to tag content too and we think it'sbest to migrate manually and do the tagging at the same time.

It's important that it's super easy to post new links and comment on blog posts.when you add a link you get a user account. Unless you have one already.Also, administrators must be able to approve links posted. Admins should get anemail when links are added so they can go and check.We want captcha so that automated postings are prevented.

When you buy a premium link you pay with credit card, we have a processor forthis and drupal needs to integrate with them. It's important that users feelsuper safe when submitting links. For this reason the whole submit process mustbe over secure connection.

We plan on launching the new drupalized site in the next six months.

Looking forward to your quote.

Sincerely,

JohnWebsite Manager

“Our site is a link directory where people with awesomely cool sites can post links to their sites”

Page 41: Getting Early Estimates Right, DrupalCon Chicago 2011

From: [email protected]: YouSubject: Link directory on Drupal

Hey,

We're looking into moving our site awesomecoolwebsites.com to drupal and wonderhow much it would cost. We would like to get rid of the proprietary software weuse and have more flexibility. Drupal seems to be the best choice for us.

Our site is a link directory where people with awesomely cool sites can postlinks to their sites. The directory is divided into categories and people canpay for premium exposure. We also have something called "link of the day" whichcosts $50 and puts a link to your site on the front page.

The site has a blog where we post updates and business articles on a regularbasis. This blog is written by several people and they can only be able to edittheir own blog posts. Though they should be able to add other users who can edittheir posts so that they can cooperate on a post.

We're not planning on migrating content but we're offshoring the work and allold links will be added manually. We want to tag content too and we think it'sbest to migrate manually and do the tagging at the same time.

It's important that it's super easy to post new links and comment on blog posts.when you add a link you get a user account. Unless you have one already.Also, administrators must be able to approve links posted. Admins should get anemail when links are added so they can go and check.We want captcha so that automated postings are prevented.

When you buy a premium link you pay with credit card, we have a processor forthis and drupal needs to integrate with them. It's important that users feelsuper safe when submitting links. For this reason the whole submit process mustbe over secure connection.

We plan on launching the new drupalized site in the next six months.

Looking forward to your quote.

Sincerely,

JohnWebsite Manager

“Our site is a link directory where people with awesomely cool sites can post links to their sites”

1 Nodetype: Link

Page 42: Getting Early Estimates Right, DrupalCon Chicago 2011

From: [email protected]: YouSubject: Link directory on Drupal

Hey,

We're looking into moving our site awesomecoolwebsites.com to drupal and wonderhow much it would cost. We would like to get rid of the proprietary software weuse and have more flexibility. Drupal seems to be the best choice for us.

Our site is a link directory where people with awesomely cool sites can postlinks to their sites. The directory is divided into categories and people canpay for premium exposure. We also have something called "link of the day" whichcosts $50 and puts a link to your site on the front page.

The site has a blog where we post updates and business articles on a regularbasis. This blog is written by several people and they can only be able to edittheir own blog posts. Though they should be able to add other users who can edittheir posts so that they can cooperate on a post.

We're not planning on migrating content but we're offshoring the work and allold links will be added manually. We want to tag content too and we think it'sbest to migrate manually and do the tagging at the same time.

It's important that it's super easy to post new links and comment on blog posts.when you add a link you get a user account. Unless you have one already.Also, administrators must be able to approve links posted. Admins should get anemail when links are added so they can go and check.We want captcha so that automated postings are prevented.

When you buy a premium link you pay with credit card, we have a processor forthis and drupal needs to integrate with them. It's important that users feelsuper safe when submitting links. For this reason the whole submit process mustbe over secure connection.

We plan on launching the new drupalized site in the next six months.

Looking forward to your quote.

Sincerely,

JohnWebsite Manager

“Also, administrators must be able to approve links posted. Admins should get an email when links are added so they can go and check.”

1 Nodetype: Link

Page 43: Getting Early Estimates Right, DrupalCon Chicago 2011

From: [email protected]: YouSubject: Link directory on Drupal

Hey,

We're looking into moving our site awesomecoolwebsites.com to drupal and wonderhow much it would cost. We would like to get rid of the proprietary software weuse and have more flexibility. Drupal seems to be the best choice for us.

Our site is a link directory where people with awesomely cool sites can postlinks to their sites. The directory is divided into categories and people canpay for premium exposure. We also have something called "link of the day" whichcosts $50 and puts a link to your site on the front page.

The site has a blog where we post updates and business articles on a regularbasis. This blog is written by several people and they can only be able to edittheir own blog posts. Though they should be able to add other users who can edittheir posts so that they can cooperate on a post.

We're not planning on migrating content but we're offshoring the work and allold links will be added manually. We want to tag content too and we think it'sbest to migrate manually and do the tagging at the same time.

It's important that it's super easy to post new links and comment on blog posts.when you add a link you get a user account. Unless you have one already.Also, administrators must be able to approve links posted. Admins should get anemail when links are added so they can go and check.We want captcha so that automated postings are prevented.

When you buy a premium link you pay with credit card, we have a processor forthis and drupal needs to integrate with them. It's important that users feelsuper safe when submitting links. For this reason the whole submit process mustbe over secure connection.

We plan on launching the new drupalized site in the next six months.

Looking forward to your quote.

Sincerely,

JohnWebsite Manager

“Also, administrators must be able to approve links posted. Admins should get an email when links are added so they can go and check.”

2Users add links which are unpublished before approved

3 Administrators are notified when links are added

4 Administrators can view and approve links

1 Nodetype: Link

Page 44: Getting Early Estimates Right, DrupalCon Chicago 2011
Page 45: Getting Early Estimates Right, DrupalCon Chicago 2011

14 Featured link on the front page A view displaying a single node of type “Featured”

Page 46: Getting Early Estimates Right, DrupalCon Chicago 2011

1 Nodetype: Link

2 Users add links which are unpublished before approved

3 Administrators are notified when links are added

4 Administrators can view and approve links

Page 47: Getting Early Estimates Right, DrupalCon Chicago 2011

# Description Proposed solution

1 Nodetype: Link Create a node type called link and use the Link module for the link field.

2Users add links which are unpublished before approved

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

3 Administrators are notified when links are added

Workflow created with Rules, it sends an email to the webmaster once a link node is created.

4 Administrators can view and approve links

A list of unpublished nodes of type “link”, created using the Views module.

Page 48: Getting Early Estimates Right, DrupalCon Chicago 2011

-30%

Page 49: Getting Early Estimates Right, DrupalCon Chicago 2011

-30%

Page 50: Getting Early Estimates Right, DrupalCon Chicago 2011

Code less

Use the UI instead

Do this

Page 52: Getting Early Estimates Right, DrupalCon Chicago 2011

http://bit.ly/estimationsheet3

Estimation sheet with sample requirements

Page 53: Getting Early Estimates Right, DrupalCon Chicago 2011

http://bit.ly/estimationtemplate3

Estimation Sheet Template

Page 54: Getting Early Estimates Right, DrupalCon Chicago 2011

2 Users add links which are unpublished before approved 2 5

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

Number

Description

Estimate

Degree of Experience

Proposed Solution

Page 55: Getting Early Estimates Right, DrupalCon Chicago 2011

2 Users add links which are unpublished before approved

2 5Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

Number

Description

Estimate

Degree of Experience

Proposed Solution

Page 56: Getting Early Estimates Right, DrupalCon Chicago 2011

ESTIMATING FEATURES

Page 57: Getting Early Estimates Right, DrupalCon Chicago 2011

•Development

•Writing automated tests

• Configuration

• Testing

• Fixing bugs

•Deploying to staging server

Page 58: Getting Early Estimates Right, DrupalCon Chicago 2011

Estimating using a scale

• Scale of fixed number of hours

• Only use numbers from the scale.

• Always round up

1 2 4 8 16

Page 59: Getting Early Estimates Right, DrupalCon Chicago 2011

1 2 4 8 16Popular scale

Page 60: Getting Early Estimates Right, DrupalCon Chicago 2011

1 2 4 8 16Popular scale

1 2 5Scale I use

Page 61: Getting Early Estimates Right, DrupalCon Chicago 2011

3 Administrators are notified when links are added

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

Page 62: Getting Early Estimates Right, DrupalCon Chicago 2011

3 Administrators are notified when links are added

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

~ 3 hours (ideally)

Page 63: Getting Early Estimates Right, DrupalCon Chicago 2011

3 Administrators are notified when links are added

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

~ 3 hours (ideally)

2 5

Page 64: Getting Early Estimates Right, DrupalCon Chicago 2011

3 Administrators are notified when links are added

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

~ 3 hours (ideally)

2 552

3 Administrators are notified when links are added 5

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

Page 65: Getting Early Estimates Right, DrupalCon Chicago 2011

1 2 5Scale I use

Factor 0.1

10 20Factor 10

Factor 1

Page 66: Getting Early Estimates Right, DrupalCon Chicago 2011

1 2 5

Factor 0.1

10 20Factor 10

Factor 1

Page 67: Getting Early Estimates Right, DrupalCon Chicago 2011

1 2 5

Factor 0.1

10 20Factor 10

Factor 1

Changing settings or setting configuration

Co-authors for articles 0.2 Add a user reference field to Article node type

Page 68: Getting Early Estimates Right, DrupalCon Chicago 2011

1 2 5

Factor 0.1

10 20Factor 10

Factor 1

Changing settings or setting configuration

Building functionality using Drupal’s user interface

Co-authors for articles 0.2 Add a user reference field to Article node type

List of most popular user profiles based on number of guestbook entries 1

A view listing Profile nodes and sorts it based on the number of comments each has

Page 69: Getting Early Estimates Right, DrupalCon Chicago 2011

1 2 5

Factor 0.1

10 20Factor 10

Factor 1

Changing settings or setting configuration

Building functionality using Drupal’s user interface

Developing new modules or themes

Co-authors for articles 0.2 Add a user reference field to Article node type

List of most popular user profiles based on number of guestbook entries 1

A view listing Profile nodes and sorts it based on the number of comments each has

Integrate user accounts with mailing list service provider 10

Write a module that POSTs the user’s email address to the provider’s REST API when the user registers.

Page 70: Getting Early Estimates Right, DrupalCon Chicago 2011

50+

Page 71: Getting Early Estimates Right, DrupalCon Chicago 2011

Estimating goo

http

://w

ww

.sxc

.hu/

phot

o/71

6594

Page 72: Getting Early Estimates Right, DrupalCon Chicago 2011

TAKING UNCERTAINTY AND ERRORS INTO ACCOUNT

Page 73: Getting Early Estimates Right, DrupalCon Chicago 2011

The cone of uncertainty

1.0x1.25x

0.8x0.67x

0.5x

0.25x

1.5x

2x

4x

Resolution of decisions in the course of a project

Estimate error

Page 74: Getting Early Estimates Right, DrupalCon Chicago 2011

The cone of uncertainty

1.0x1.25x

0.8x0.67x

0.5x

0.25x

1.5x

2x

4x

Page 75: Getting Early Estimates Right, DrupalCon Chicago 2011

The cone of uncertainty

1.0x1.25x

0.8x0.67x

0.5x

0.25x

1.5x

2x

4x

Rough idea0.25x - 4x

Page 76: Getting Early Estimates Right, DrupalCon Chicago 2011

The cone of uncertainty

1.0x1.25x

0.8x0.67x

0.5x

0.25x

1.5x

2x

4x

Rough idea0.25x - 4x

User Interface Design Complete0.8x - 1.25x

Page 77: Getting Early Estimates Right, DrupalCon Chicago 2011

The cone of uncertainty

1.0x1.25x

0.8x0.67x

0.5x

0.25x

1.5x

2x

4x

Page 78: Getting Early Estimates Right, DrupalCon Chicago 2011

The cone of uncertainty

1.0x1.25x

0.8x0.67x

0.5x

0.25x

1.5x

2x

4x

Page 79: Getting Early Estimates Right, DrupalCon Chicago 2011

The cone of uncertainty

1.0x1.25x

0.8x0.67x

0.5x

0.25x

1.5x

2x

4x

Page 80: Getting Early Estimates Right, DrupalCon Chicago 2011

Logg utBli medlem Engagera digNyheter Aktiviteter Career Service Partners Reversen Om oss

Sök

Annonsera | Kontakta oss | In English

Maria Jakobsson | Min profil

Fritid, utbildning & framtidVi stoltserar idag med drygt 2 200 medlemmar och är därmed en av Uppsalas största studentföreningar. Vi intresserar oss för allt som rör fritid, framtid och studier för studenter med ekonomianknytning i Uppsala och jobbar ständigt för att på ett professionellt sätt utveckla både utbildningen och studiernas förankring till arbetslivet. Läs mer om oss

Bli medlem

"Detta är varför jag tycket du skall engagera dig!"

NAMN NAMNSSON, ORDF

KOMMANDE AKTIVITETER

Alla Fritid Framtid Studier

12/12 Luciabalen med grodornas aftonRestaurang Lantis, 17.45 - 01.00

12/12 Luciabalen med grodornas aftonRestaurang Lantis, 17.45 - 01.00

12/12 Luciabalen med grodornas aftonRestaurang Lantis, 17.45 - 01.00

12/12 Luciabalen med grodornas aftonRestaurang Lantis, 17.45 - 01.00

12/12 Luciabalen med grodornas aftonRestaurang Lantis, 17.45 - 01.00

Fler aktiviteter...

Meningsfull och rolig tillvaro vid sidan av studierna genom fester och events, sport, spel- och filmkvällar med mera

Täta kontakter och nära relationer med näringslivet genom föreläsningar, besök, casetävlingar, jobbannonser och informella möten

Bevakar och förbättrar utbildningen genom utvärdering och påverkan i nära samarbete med studenterna och universitet

SENASTE NYTT Fritid Framtid Studier

På ekonomikum just nu: KontaktdagarnaDen 2:a och 3:e februari är det äntligen dags för årets mest efterlängtade mässa med 60 företag och organisationer som kommer till Uppsala för att träffa dig! Kontaktdagarna är ett ypperligt tillfälle att knyta nya kontakter med intressanta företag och hämta inspiration på föreläsningar som hålls av inflytelserika personer. Mässan öppnar klockan 10 på onsdag den 2 februari. Var med redan från start!

Detta är en puffSveriges bästa nollning är i full gång i Uppsala och du hittar den här. > Läs mer

Detta är en puffSveriges bästa nollning är i full gång i Uppsala och du hittar den här. > Läs mer

Page 81: Getting Early Estimates Right, DrupalCon Chicago 2011
Page 82: Getting Early Estimates Right, DrupalCon Chicago 2011

Chaotic development

Page 83: Getting Early Estimates Right, DrupalCon Chicago 2011

Requirements that weren’t investigated very well

Chaotic development

Page 84: Getting Early Estimates Right, DrupalCon Chicago 2011

Requirements that weren’t investigated very well

Poor coding practices cause extensive bug fixing

Chaotic development

Page 85: Getting Early Estimates Right, DrupalCon Chicago 2011

Requirements that weren’t investigated very well

Poor coding practices cause extensive bug fixing

Inexperienced personnel

Chaotic development

Page 86: Getting Early Estimates Right, DrupalCon Chicago 2011

Requirements that weren’t investigated very well

Poor coding practices cause extensive bug fixing

Inexperienced personnel

Incomplete or unskilled project planning

Chaotic development

Page 87: Getting Early Estimates Right, DrupalCon Chicago 2011

Requirements that weren’t investigated very well

Poor coding practices cause extensive bug fixing

Inexperienced personnel

Incomplete or unskilled project planning

Abandoning planning under pressure

Chaotic development

Page 88: Getting Early Estimates Right, DrupalCon Chicago 2011

Requirements that weren’t investigated very well

Poor coding practices cause extensive bug fixing

Inexperienced personnel

Incomplete or unskilled project planning

Abandoning planning under pressure

Developer gold-plating

Chaotic development

Page 89: Getting Early Estimates Right, DrupalCon Chicago 2011

Requirements that weren’t investigated very well

Poor coding practices cause extensive bug fixing

Inexperienced personnel

Incomplete or unskilled project planning

Abandoning planning under pressure

Developer gold-plating

Lack of automated source code control

Chaotic development

Page 90: Getting Early Estimates Right, DrupalCon Chicago 2011

Overlooked activities

Page 91: Getting Early Estimates Right, DrupalCon Chicago 2011

Overlooked activities

Migration of data

Producing help or documentation

Deployment

Working with a third party

Integrating third party systems

Page 92: Getting Early Estimates Right, DrupalCon Chicago 2011

Overlooked expectations

Page 93: Getting Early Estimates Right, DrupalCon Chicago 2011

Performance

Page 94: Getting Early Estimates Right, DrupalCon Chicago 2011

Stability

Page 95: Getting Early Estimates Right, DrupalCon Chicago 2011

Security

Page 96: Getting Early Estimates Right, DrupalCon Chicago 2011

Usability

Page 97: Getting Early Estimates Right, DrupalCon Chicago 2011

“You never have to fear that estimates created by developers will be too pessimistic, because developers will always generate a too-optimistic schedule.”

– Chris Peters, Microsoft Vice President

Unfounded optimism

Page 98: Getting Early Estimates Right, DrupalCon Chicago 2011

Off-the-cuff estimation

Page 99: Getting Early Estimates Right, DrupalCon Chicago 2011

Off-the-cuff estimation

Page 100: Getting Early Estimates Right, DrupalCon Chicago 2011

Assume for clarity

Make an assumption and communicate it:

“I’m not sure what you mean by ‘integrated user bookmark blogging’ so I assume you mean this, and that’s what I’ve estimated.”

Page 101: Getting Early Estimates Right, DrupalCon Chicago 2011

Avoid uncertain solutions

Page 102: Getting Early Estimates Right, DrupalCon Chicago 2011

Avoid uncertain solutionsBase solutions on wireframes and mockups or comps if available.

Page 103: Getting Early Estimates Right, DrupalCon Chicago 2011

Avoid uncertain solutionsBase solutions on wireframes and mockups or comps if available.

Proposing well-tested solutions you have used before.

Page 104: Getting Early Estimates Right, DrupalCon Chicago 2011

Avoid uncertain solutionsBase solutions on wireframes and mockups or comps if available.

Proposing well-tested solutions you have used before.

Researching solutions by googling, reading articles and blog posts.

Page 105: Getting Early Estimates Right, DrupalCon Chicago 2011

Avoid uncertain solutionsBase solutions on wireframes and mockups or comps if available.

Proposing well-tested solutions you have used before.

Researching solutions by googling, reading articles and blog posts.

Prototyping solutions in Drupal.

Page 106: Getting Early Estimates Right, DrupalCon Chicago 2011

Avoid uncertain solutionsBase solutions on wireframes and mockups or comps if available.

Proposing well-tested solutions you have used before.

Researching solutions by googling, reading articles and blog posts.

Prototyping solutions in Drupal.

Avoiding solutions that require integration with unknown third-party solutions.

Page 107: Getting Early Estimates Right, DrupalCon Chicago 2011

Factoring in solution uncertainty

Page 108: Getting Early Estimates Right, DrupalCon Chicago 2011

Degrees of experience

You have done the exact same thing in other projects.

Someone else at your company has done it in other projects.

You have read about it a way to solve it.

You can think of a solution that seems reasonable/possible.

You have no idea how to implement a solution.

Page 109: Getting Early Estimates Right, DrupalCon Chicago 2011

Degrees of experience

5 You have done the exact same thing in other projects.

4Someone else at your company has done it in other

projects.

3 You have read about it a way to solve it.

2You can think of a solution that seems reasonable/

possible.

1 You have no idea how to implement a solution.

Page 110: Getting Early Estimates Right, DrupalCon Chicago 2011

# Description Est Degree of Exp. Proposed solution

1 Nodetype: Link 1 5Create a node type called link and use the Link module for the link field.

2 Users add links which are unpublished before approved 2 4

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

3 Administrators are notified when links are added 5 3

Workflow created with Rules, it sends an email to the webmaster once a link node is created.

4 Administrators can view and approve links 2 5

A list of unpublished nodes of type “link”, created using the Views module.

Page 111: Getting Early Estimates Right, DrupalCon Chicago 2011

Degrees of experienceDeg. Description

5 You have done the exact same thing in other projects.

4 Someone else at your company has done it in other projects.

3 You have read about it a way to solve it.

2 You can think of a solution that seems reasonable/possible.

1 You have no idea how to implement a solution.

Page 112: Getting Early Estimates Right, DrupalCon Chicago 2011

Degree of experienceDeg. Description Uncertainty factor

5You have done the exact same thing in other projects.

4Someone else at your company has done it in other projects.

3You have read about it a way to solve it.

2You can think of a solution that seems reasonable/possible.

1You have no idea how to implement a solution.

Page 113: Getting Early Estimates Right, DrupalCon Chicago 2011

Degree of experienceDeg. Description Uncertainty factor

5You have done the exact same thing in other projects.

4Someone else at your company has done it in other projects.

3You have read about it a way to solve it.

2You can think of a solution that seems reasonable/possible.

1You have no idea how to implement a solution.

Page 114: Getting Early Estimates Right, DrupalCon Chicago 2011

Degree of experienceDeg. Description Uncertainty factor

5You have done the exact same thing in other projects.

4Someone else at your company has done it in other projects.

3You have read about it a way to solve it.

2You can think of a solution that seems reasonable/possible.

1You have no idea how to implement a solution.

Page 115: Getting Early Estimates Right, DrupalCon Chicago 2011

Degree of experienceDeg. Description Uncertainty factor

5You have done the exact same thing in other projects.

4Someone else at your company has done it in other projects.

3You have read about it a way to solve it.

2You can think of a solution that seems reasonable/possible.

1You have no idea how to implement a solution.

Page 116: Getting Early Estimates Right, DrupalCon Chicago 2011

Degree of experienceDeg. Description Uncertainty factor

5You have done the exact same thing in other projects.

4Someone else at your company has done it in other projects.

3You have read about it a way to solve it.

2You can think of a solution that seems reasonable/possible.

1You have no idea how to implement a solution.

Page 117: Getting Early Estimates Right, DrupalCon Chicago 2011

Degree of experienceDeg. Description Uncertainty factor

5You have done the exact same thing in other projects.

4Someone else at your company has done it in other projects.

3You have read about it a way to solve it.

2You can think of a solution that seems reasonable/possible.

1You have no idea how to implement a solution.

RESEARCH IT!

Page 118: Getting Early Estimates Right, DrupalCon Chicago 2011

Degree of experienceDeg. Description Uncertainty factor

5You have done the exact same thing in other projects.

4Someone else at your company has done it in other projects.

3You have read about it a way to solve it.

2You can think of a solution that seems reasonable/possible.

1You have no idea how to implement a solution.

1.0x1.25x

0.8x0.67x

0.5x

0.25x

1.5x

2x

4x

Page 119: Getting Early Estimates Right, DrupalCon Chicago 2011

Degree of experienceDeg. Description Uncertainty factor

5You have done the exact same thing in other projects.

0.8x - 1.25x

4Someone else at your company has done it in other projects.

0.67x - 1.5x

3You have read about it a way to solve it.

0.5x - 2x

2You can think of a solution that seems reasonable/possible.

0.25x - 4x

1You have no idea how to implement a solution.

-

Page 120: Getting Early Estimates Right, DrupalCon Chicago 2011

# Description Est Degree of Exp. Range Low High Proposed solution

1 Nodetype: Link 1 5 1 × 0.8 = 0.81 × 1.25 = 1.25 0.8 1.25 Create a node type called link and use

the Link module for the link field.

2 Users add links which are unpublished before approved 2 4 2 × 0.67 = 1.34

2 × 1.5 = 3 1.34 3

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

3 Administrators are notified when links are added 5 3 5 × 0.5 = 2.5

5 × 2 = 10 2.5 10

Workflow created with Rules, it sends an email to the webmaster once a link node is created.

4 Administrators can view and approve links 2 5 2 × 0.8 = 1.6

2 × 1.25 = 2.5 1.6 2.5

A list of unpublished nodes of type “link”, created using the Views module.

Page 121: Getting Early Estimates Right, DrupalCon Chicago 2011

# Description Est Degree of Exp. Range Low High Proposed solution

1 Nodetype: Link 1 5 1 × 0.8 = 0.81 × 1.25 = 1.25 0.8 1.25 Create a node type called link and use

the Link module for the link field.

2 Users add links which are unpublished before approved 2 4 2 × 0.67 = 1.34

2 × 1.5 = 3 1.34 3

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

3 Administrators are notified when links are added 5 3 5 × 0.5 = 2.5

5 × 2 = 10 2.5 10

Workflow created with Rules, it sends an email to the webmaster once a link node is created.

4 Administrators can view and approve links 2 5 2 × 0.8 = 1.6

2 × 1.25 = 2.5 1.6 2.5

A list of unpublished nodes of type “link”, created using the Views module.

Page 122: Getting Early Estimates Right, DrupalCon Chicago 2011

# Description Est Degree of Exp. Range Low High Proposed solution

1 Nodetype: Link 1 5 1 × 0.8 = 0.81 × 1.25 = 1.25 0.8 1.25 Create a node type called link and use

the Link module for the link field.

2 Users add links which are unpublished before approved 2 4 2 × 0.67 = 1.34

2 × 1.5 = 3 1.34 3

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

3 Administrators are notified when links are added 5 3 5 × 0.5 = 2.5

5 × 2 = 10 2.5 10

Workflow created with Rules, it sends an email to the webmaster once a link node is created.

4 Administrators can view and approve links 2 5 2 × 0.8 = 1.6

2 × 1.25 = 2.5 1.6 2.5

A list of unpublished nodes of type “link”, created using the Views module.

Page 123: Getting Early Estimates Right, DrupalCon Chicago 2011

# Description Est Degree of Exp. Range Low High Proposed solution

1 Nodetype: Link 1 5 1 × 0.8 = 0.81 × 1.25 = 1.25 0.8 1.25 Create a node type called link and use

the Link module for the link field.

2 Users add links which are unpublished before approved 2 4 2 × 0.67 = 1.34

2 × 1.5 = 3 1.34 3

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

3 Administrators are notified when links are added 5 3 5 × 0.5 = 2.5

5 × 2 = 10 2.5 10

Workflow created with Rules, it sends an email to the webmaster once a link node is created.

4 Administrators can view and approve links 2 5 2 × 0.8 = 1.6

2 × 1.25 = 2.5 1.6 2.5

A list of unpublished nodes of type “link”, created using the Views module.

Page 124: Getting Early Estimates Right, DrupalCon Chicago 2011

# Description Est Degree of

Range Low High Proposed solution

1 Nodetype: Link 1 5 1 × 0.8 = 0.81 × 1.25 = 1.25 0.8 1.25 Create a node type called link and use

the Link module for the link field.

2 Users add links which are unpublished before approved 2 4 2 × 0.67 = 1.34

2 × 1.5 = 3 1.34 3

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

3 Administrators are notified when links are added 5 3 5 × 0.5 = 2.5

5 × 2 = 10 2.5 10

Workflow created with Rules, it sends an email to the webmaster once a link node is created.

191 147 271

Summing up estimates

Page 125: Getting Early Estimates Right, DrupalCon Chicago 2011

# Description Est Degree of

Range Low High Proposed solution

1 Nodetype: Link 1 5 1 × 0.8 = 0.81 × 1.25 = 1.25 0.8 1.25 Create a node type called link and use

the Link module for the link field.

2 Users add links which are unpublished before approved 2 4 2 × 0.67 = 1.34

2 × 1.5 = 3 1.34 3

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

3 Administrators are notified when links are added 5 3 5 × 0.5 = 2.5

5 × 2 = 10 2.5 10

Workflow created with Rules, it sends an email to the webmaster once a link node is created.

191 147 271

Summary of ideal estimates

Summing up estimates

Page 126: Getting Early Estimates Right, DrupalCon Chicago 2011

# Description Est Degree of

Range Low High Proposed solution

1 Nodetype: Link 1 5 1 × 0.8 = 0.81 × 1.25 = 1.25 0.8 1.25 Create a node type called link and use

the Link module for the link field.

2 Users add links which are unpublished before approved 2 4 2 × 0.67 = 1.34

2 × 1.5 = 3 1.34 3

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

3 Administrators are notified when links are added 5 3 5 × 0.5 = 2.5

5 × 2 = 10 2.5 10

Workflow created with Rules, it sends an email to the webmaster once a link node is created.

191 147 271

Sum range high

Summary of ideal estimates

Summing up estimates

Page 127: Getting Early Estimates Right, DrupalCon Chicago 2011

# Description Est Degree of

Range Low High Proposed solution

1 Nodetype: Link 1 5 1 × 0.8 = 0.81 × 1.25 = 1.25 0.8 1.25 Create a node type called link and use

the Link module for the link field.

2 Users add links which are unpublished before approved 2 4 2 × 0.67 = 1.34

2 × 1.5 = 3 1.34 3

Use Flag and Rules modules to create a workflow. The workflow sets a newly created Link node as unpublished.

3 Administrators are notified when links are added 5 3 5 × 0.5 = 2.5

5 × 2 = 10 2.5 10

Workflow created with Rules, it sends an email to the webmaster once a link node is created.

191 147 271

Sum range high

Sum range low

Summary of ideal estimates

Summing up estimates

Page 128: Getting Early Estimates Right, DrupalCon Chicago 2011

Low uncertainty

Low0.8x

Idealestimate

High1.25x

Symmetrical uncertainty

Page 129: Getting Early Estimates Right, DrupalCon Chicago 2011

Low High0.25x 4x

Idealestimate

High uncertainty

Symmetrical uncertainty

Page 130: Getting Early Estimates Right, DrupalCon Chicago 2011

Asymmetrical uncertainty

Low High1x 4x

Idealestimate

Or: it can only get worse!

Page 131: Getting Early Estimates Right, DrupalCon Chicago 2011

PessimisticPessimisticPessimisticPessimistic OptimisticOptimisticOptimistic

SymmetricalSymmetrical AsymmetricalAsymmetrical SymmetricalSymmetrical AsymmetricalAsymmetrical

1 0.17 6 1 6 0.67 1.5 1 1.5

2 0.25 4 1 4 0.71 1.4 1 1.4

3 0.5 2 1 2 0.77 1.3 1 1.3

4 0.67 1.5 1 1.5 0.83 1.2 1 1.2

5 0.8 1.25 1 1.25 0.91 1.1 1 1.1

Page 132: Getting Early Estimates Right, DrupalCon Chicago 2011

PessimisticPessimisticPessimisticPessimistic OptimisticOptimisticOptimistic

SymmetricalSymmetrical AsymmetricalAsymmetrical SymmetricalSymmetrical AsymmetricalAsymmetrical

1 0.17 6 1 6 0.67 1.5 1 1.5

2 0.25 4 1 4 0.71 1.4 1 1.4

3 0.5 2 1 2 0.77 1.3 1 1.3

4 0.67 1.5 1 1.5 0.83 1.2 1 1.2

5 0.8 1.25 1 1.25 0.91 1.1 1 1.1

Page 133: Getting Early Estimates Right, DrupalCon Chicago 2011

PessimisticPessimisticPessimisticPessimistic OptimisticOptimisticOptimistic

SymmetricalSymmetrical AsymmetricalAsymmetrical SymmetricalSymmetrical AsymmetricalAsymmetrical

1 0.17 6 1 6 0.67 1.5 1 1.5

2 0.25 4 1 4 0.71 1.4 1 1.4

3 0.5 2 1 2 0.77 1.3 1 1.3

4 0.67 1.5 1 1.5 0.83 1.2 1 1.2

5 0.8 1.25 1 1.25 0.91 1.1 1 1.1

Page 134: Getting Early Estimates Right, DrupalCon Chicago 2011

PessimisticPessimisticPessimisticPessimistic OptimisticOptimisticOptimistic

SymmetricalSymmetrical AsymmetricalAsymmetrical SymmetricalSymmetrical AsymmetricalAsymmetrical

1 0.17 6 1 6 0.67 1.5 1 1.5

2 0.25 4 1 4 0.71 1.4 1 1.4

3 0.5 2 1 2 0.77 1.3 1 1.3

4 0.67 1.5 1 1.5 0.83 1.2 1 1.2

5 0.8 1.25 1 1.25 0.91 1.1 1 1.1

Symmetrical uncertainty

Page 135: Getting Early Estimates Right, DrupalCon Chicago 2011

PessimisticPessimisticPessimisticPessimistic OptimisticOptimisticOptimistic

SymmetricalSymmetrical AsymmetricalAsymmetrical SymmetricalSymmetrical AsymmetricalAsymmetrical

1 0.17 6 1 6 0.67 1.5 1 1.5

2 0.25 4 1 4 0.71 1.4 1 1.4

3 0.5 2 1 2 0.77 1.3 1 1.3

4 0.67 1.5 1 1.5 0.83 1.2 1 1.2

5 0.8 1.25 1 1.25 0.91 1.1 1 1.1

Asymmetrical uncertainty

Page 136: Getting Early Estimates Right, DrupalCon Chicago 2011

Use the UncertaintyFactors tab in your sheet to set factors and symmetry

Copy the above values into the APPLIED columns to

work with asymmetrical uncertainty

Page 137: Getting Early Estimates Right, DrupalCon Chicago 2011

It's easy to estimate what you know.

It's hard to estimate what you know you don't know.

It's very hard to estimate things that you don't know you don't know.

In the end

Page 138: Getting Early Estimates Right, DrupalCon Chicago 2011

Overhead time

Administration and project management 1.25x

Testing 1.15x

Page 139: Getting Early Estimates Right, DrupalCon Chicago 2011

COMPARE WITH GUESSTIMATE

??? hours

Page 140: Getting Early Estimates Right, DrupalCon Chicago 2011

Start big, reduce later

Page 141: Getting Early Estimates Right, DrupalCon Chicago 2011

Awareness of time

Page 142: Getting Early Estimates Right, DrupalCon Chicago 2011

Culture

Page 143: Getting Early Estimates Right, DrupalCon Chicago 2011

If unsure, ask an expert

Page 144: Getting Early Estimates Right, DrupalCon Chicago 2011
Page 145: Getting Early Estimates Right, DrupalCon Chicago 2011

Recommended reading

Page 146: Getting Early Estimates Right, DrupalCon Chicago 2011

What did you think?Locate this session on the DCC website:http://go.nodeone.se/estimates

Click the “Take the Survey” link.

Contact [email protected]

http://www.twitter.com/realsolipsist

http://drupal.org/user/37564