The Power of Unknowns Harnessing what you don't know to estimate - - PowerPoint PPT Presentation

the power of unknowns
SMART_READER_LITE
LIVE PREVIEW

The Power of Unknowns Harnessing what you don't know to estimate - - PowerPoint PPT Presentation

The Power of Unknowns Harnessing what you don't know to estimate project duration John Keklak Software Development Institute john@keklak.com The Power of Unknowns Harnessing what you don't know to estimate project duration John Keklak


slide-1
SLIDE 1

The Power of Unknowns

Harnessing what you don't know to estimate project duration

John Keklak Software Development Institute john@keklak.com

slide-2
SLIDE 2

The Power of Unknowns

Harnessing what you don't know to estimate project duration

John Keklak Software Development Institute john@keklak.com

slide-3
SLIDE 3

About me

John Keklak Software Development Institute john@keklak.com

slide-4
SLIDE 4

About me

+ Software developer for >30 years

John Keklak Software Development Institute john@keklak.com

slide-5
SLIDE 5

About me

+ Software developer for >30 years + Taught software engineering at BU for 9 years

John Keklak Software Development Institute john@keklak.com

slide-6
SLIDE 6

About me

+ Software developer for >30 years + Taught software engineering at BU for 9 years + Still do a lot of software development

John Keklak Software Development Institute john@keklak.com

slide-7
SLIDE 7

About me

+ Software developer for >30 years + Taught software engineering at BU for 9 years + Still do a lot of software development + Privately mentor aspiring software developers

John Keklak Software Development Institute john@keklak.com

slide-8
SLIDE 8

About me

+ Software developer for >30 years + Taught software engineering at BU for 9 years + Still do a lot of software development + Privately mentor aspiring software developers = Software Development Institute

John Keklak Software Development Institute john@keklak.com

slide-9
SLIDE 9

Boston University CS411 Software Engineering

John Keklak Software Development Institute john@keklak.com

slide-10
SLIDE 10

BU CS411 Project Success

John Keklak Software Development Institute john@keklak.com

slide-11
SLIDE 11

BU CS411 Project Success The early years…

John Keklak Software Development Institute john@keklak.com

slide-12
SLIDE 12

BU CS411 Project Success Later years…

John Keklak Software Development Institute john@keklak.com

slide-13
SLIDE 13

BU CS411 Project Success Later years…

John Keklak Software Development Institute john@keklak.com

What changed?

slide-14
SLIDE 14

Focus on

John Keklak Software Development Institute john@keklak.com

slide-15
SLIDE 15

Focus on UNKNOWNS

John Keklak Software Development Institute john@keklak.com

slide-16
SLIDE 16

What's an "unknown"?

John Keklak Software Development Institute john@keklak.com

slide-17
SLIDE 17

What's an "unknown"? + What the customer wants

John Keklak Software Development Institute john@keklak.com

slide-18
SLIDE 18

What's an "unknown"? + What the customer wants + What the UI should look like

John Keklak Software Development Institute john@keklak.com

slide-19
SLIDE 19

What's an "unknown"? + What the customer wants + What the UI should look like + How to do various technical things

John Keklak Software Development Institute john@keklak.com

slide-20
SLIDE 20

What's an "unknown"? + What the customer wants + What the UI should look like + How to do various technical things "Things developers don't know"

John Keklak Software Development Institute john@keklak.com

slide-21
SLIDE 21

What's an "unknown"? For legacy projects, unknowns also include:

John Keklak Software Development Institute john@keklak.com

slide-22
SLIDE 22

What's an "unknown"? For legacy projects, unknowns also include: + What the existing code does

John Keklak Software Development Institute john@keklak.com

slide-23
SLIDE 23

What's an "unknown"? For legacy projects, unknowns also include: + What the existing code does + What causes a particular bug

John Keklak Software Development Institute john@keklak.com

slide-24
SLIDE 24

What's an "unknown"? For example:

John Keklak Software Development Institute john@keklak.com

slide-25
SLIDE 25

What's an "unknown"? For example: What I don't know is…

John Keklak Software Development Institute john@keklak.com

slide-26
SLIDE 26

What's an "unknown"? For example: What I don't know is… ...how to save data in a MySQL database.

John Keklak Software Development Institute john@keklak.com

slide-27
SLIDE 27

What's an "unknown"? Unknowns can be abbreviated as…

John Keklak Software Development Institute john@keklak.com

slide-28
SLIDE 28

What's an "unknown"? Unknowns can be abbreviated as…

WIDKI...

John Keklak Software Development Institute john@keklak.com

slide-29
SLIDE 29

What's an "unknown"? Unknowns can be abbreviated as…

WIDKI...

"What I don't know is..."

John Keklak Software Development Institute john@keklak.com

slide-30
SLIDE 30

What's an "unknown"? Unknowns can be abbreviated as…

WIDKI...

"What I don't know is..."

John Keklak Software Development Institute john@keklak.com

slide-31
SLIDE 31

UNKNOWNS are... For example:

John Keklak Software Development Institute john@keklak.com

slide-32
SLIDE 32

UNKNOWNS are... For example:

WIDKI...

John Keklak Software Development Institute john@keklak.com

slide-33
SLIDE 33

UNKNOWNS are... For example:

WIDKI...

...how to save data in a MySQL database.

John Keklak Software Development Institute john@keklak.com

slide-34
SLIDE 34

My students were much more successful when they focused on unknowns!

John Keklak Software Development Institute john@keklak.com

slide-35
SLIDE 35

Last year's talk provides an overview of unknowns

John Keklak Software Development Institute john@keklak.com

slide-36
SLIDE 36

Last year's talk provides an overview of unknowns + Video of presentation is on YouTube

  • - search for "The Power of Unknowns"

John Keklak Software Development Institute john@keklak.com

slide-37
SLIDE 37

Last year's talk provides an overview of unknowns + Video of presentation is on YouTube

  • - search for "The Power of Unknowns"

+ PDF is on http://boston-spin.org

  • - look in "Library" page

John Keklak Software Development Institute john@keklak.com

slide-38
SLIDE 38

Last year's talk provides an overview of unknowns + Email me for a PDF of a related article

John Keklak Software Development Institute john@keklak.com

slide-39
SLIDE 39

Estimating with Unknowns

John Keklak Software Development Institute john@keklak.com

slide-40
SLIDE 40

Estimating with Unknowns

Get project assignment

John Keklak Software Development Institute john@keklak.com

slide-41
SLIDE 41

Estimating with Unknowns

Get project assignment Identify what you don't know

John Keklak Software Development Institute john@keklak.com

slide-42
SLIDE 42

Estimating with Unknowns

Get project assignment Identify what you don't know

(there's lots; be as thorough as you can)

John Keklak Software Development Institute john@keklak.com

slide-43
SLIDE 43

Estimating with Unknowns

Get project assignment Identify what you don't know

(there's lots; be as thorough as you can)

Estimate the time needed to resolve each unknown

John Keklak Software Development Institute john@keklak.com

slide-44
SLIDE 44

Estimating with Unknowns

Get project assignment Identify what you don't know

(there's lots; be as thorough as you can)

Estimate the time needed to resolve each unknown

(decompose if you can't comfortably estimate)

John Keklak Software Development Institute john@keklak.com

slide-45
SLIDE 45

Estimating with Unknowns

Get project assignment Identify what you don't know

(there's lots; be as thorough as you can)

Estimate the time needed to resolve each unknown

(decompose if you can't comfortably estimate)

Add up your estimates

John Keklak Software Development Institute john@keklak.com

slide-46
SLIDE 46

How do you estimate the time required for an unknown?

John Keklak Software Development Institute john@keklak.com

slide-47
SLIDE 47

How do you estimate the time required for an unknown?

+ Reduce an unknown to tasks

John Keklak Software Development Institute john@keklak.com

slide-48
SLIDE 48

How do you estimate the time required for an unknown?

+ Reduce an unknown to tasks + Estimate time for each task

John Keklak Software Development Institute john@keklak.com

slide-49
SLIDE 49

How do you estimate the time required for an unknown?

+ Reduce an unknown to tasks + Estimate time for each task + Add up the total time

John Keklak Software Development Institute john@keklak.com

slide-50
SLIDE 50

How do you estimate the time required for an unknown?

An example:

John Keklak Software Development Institute john@keklak.com

slide-51
SLIDE 51

How do you estimate the time required for an unknown?

An example: Unknown: "WIDKI how to send an email with a PHP script."

John Keklak Software Development Institute john@keklak.com

slide-52
SLIDE 52

How do you estimate the time required for an unknown?

An example: Unknown: "WIDKI how to send an email with a PHP script." Tasks: ??

John Keklak Software Development Institute john@keklak.com

slide-53
SLIDE 53

How do you estimate the time required for an unknown?

An example: Unknown: "WIDKI how to send an email with a PHP script." Tasks: ?? Time required for each task: ??

John Keklak Software Development Institute john@keklak.com

slide-54
SLIDE 54

Types of tasks for resolving unknowns

John Keklak Software Development Institute john@keklak.com

slide-55
SLIDE 55

Types of tasks for resolving unknowns

Talking to customers

John Keklak Software Development Institute john@keklak.com

slide-56
SLIDE 56

Types of tasks for resolving unknowns

Talking to customers Iterating through UI designs

John Keklak Software Development Institute john@keklak.com

slide-57
SLIDE 57

Types of tasks for resolving unknowns

Talking to customers Iterating through UI designs "on paper"

John Keklak Software Development Institute john@keklak.com

slide-58
SLIDE 58

Types of tasks for resolving unknowns

Talking to customers Iterating through UI designs "on paper" Creating lots of little programs to develop programming skills

John Keklak Software Development Institute john@keklak.com

slide-59
SLIDE 59

Types of tasks for resolving unknowns

Talking to customers Iterating through UI designs "on paper" Creating lots of little programs to develop programming skills (like how to send an email with a PHP script)

John Keklak Software Development Institute john@keklak.com

slide-60
SLIDE 60

Types of tasks for resolving unknowns

Talking to customers Iterating through UI designs "on paper" Creating lots of little programs to develop programming skills Getting fluent with existing code

John Keklak Software Development Institute john@keklak.com

slide-61
SLIDE 61

Types of tasks for resolving unknowns

Talking to customers Iterating through UI designs "on paper" Creating lots of little programs to develop programming skills Getting fluent with existing code Expect to do a lot of such tasks

John Keklak Software Development Institute john@keklak.com

slide-62
SLIDE 62

Types of tasks for resolving unknowns

***Does NOT involve writing final product code***

John Keklak Software Development Institute john@keklak.com

slide-63
SLIDE 63

Types of tasks for resolving unknowns

***Does NOT involve writing final product code***

John Keklak Software Development Institute john@keklak.com

slide-64
SLIDE 64

All tasks are intended for gathering knowledge

John Keklak Software Development Institute john@keklak.com

slide-65
SLIDE 65

All tasks are intended for gathering knowledge

What does it mean to "gather knowledge"?

John Keklak Software Development Institute john@keklak.com

slide-66
SLIDE 66

All tasks are intended for gathering knowledge

What does it mean to "gather knowledge"? + To learn what the customer wants

John Keklak Software Development Institute john@keklak.com

slide-67
SLIDE 67

All tasks are intended for gathering knowledge

What does it mean to "gather knowledge"? + To learn what the customer wants + To learn what the UI should look like

John Keklak Software Development Institute john@keklak.com

slide-68
SLIDE 68

All tasks are intended for gathering knowledge

What does it mean to "gather knowledge"? + To learn what the customer wants + To learn what the UI should look like + To learn how code and data should be structured

John Keklak Software Development Institute john@keklak.com

slide-69
SLIDE 69

All tasks are intended for gathering knowledge

What does it mean to "gather knowledge"? + To learn what the customer wants + To learn what the UI should look like + To learn how code and data should be structured + To learn how existing code and data are structured

John Keklak Software Development Institute john@keklak.com

slide-70
SLIDE 70

So let's get started...

John Keklak Software Development Institute john@keklak.com

slide-71
SLIDE 71

The project I have in mind

John Keklak Software Development Institute john@keklak.com

slide-72
SLIDE 72

The project I have in mind

A facelift for...

John Keklak Software Development Institute john@keklak.com

slide-73
SLIDE 73

The project I have in mind

A facelift for... ...our very own boston-spin.org web site!

John Keklak Software Development Institute john@keklak.com

slide-74
SLIDE 74

The project I have in mind

A facelift for... ...our very own boston-spin.org web site! + Give it a modern appearance

John Keklak Software Development Institute john@keklak.com

slide-75
SLIDE 75

The project I have in mind

A facelift for... ...our very own boston-spin.org web site! + Give it a modern appearance + Clean it up / reorganize

John Keklak Software Development Institute john@keklak.com

slide-76
SLIDE 76

The project I have in mind

A facelift for... ...our very own boston-spin.org web site! + Give it a modern appearance + Clean it up / reorganize + Add some features

John Keklak Software Development Institute john@keklak.com

slide-77
SLIDE 77

The project I have in mind

A facelift for... ...our very own boston-spin.org web site! + Give it a modern appearance + Clean it up / reorganize + Add some features + To be performed by Boston SPIN members!

John Keklak Software Development Institute john@keklak.com

slide-78
SLIDE 78

No need for panic!

John Keklak Software Development Institute john@keklak.com

slide-79
SLIDE 79

No need for panic!

All we will do right now is…

John Keklak Software Development Institute john@keklak.com

slide-80
SLIDE 80

No need for panic!

All we will do right now is… ...estimate the time required for the project.

John Keklak Software Development Institute john@keklak.com

slide-81
SLIDE 81

What should we do?

John Keklak Software Development Institute john@keklak.com

slide-82
SLIDE 82

What should we do?

Identify what we don't know

John Keklak Software Development Institute john@keklak.com

slide-83
SLIDE 83

What should we do?

Identify what we don't know

(there's lots; let's be as thorough as we can)

John Keklak Software Development Institute john@keklak.com

slide-84
SLIDE 84

Let's make a list...

John Keklak Software Development Institute john@keklak.com

slide-85
SLIDE 85

Let's make a list… ...of WIDKI's.

John Keklak Software Development Institute john@keklak.com

slide-86
SLIDE 86

Let's make a list of WIDKI's Categories:

John Keklak Software Development Institute john@keklak.com

slide-87
SLIDE 87

Let's make a list of WIDKI's Categories: + What the customer wants

John Keklak Software Development Institute john@keklak.com

slide-88
SLIDE 88

Let's make a list of WIDKI's Categories: + What the customer wants / what features the website currently has

John Keklak Software Development Institute john@keklak.com

slide-89
SLIDE 89

Let's make a list of WIDKI's Categories: + What the customer wants / what features the website currently has / what should be added

John Keklak Software Development Institute john@keklak.com

slide-90
SLIDE 90

Let's make a list of WIDKI's Categories: + What the customer wants / what features the website currently has / what should be added + What the UI should look like

John Keklak Software Development Institute john@keklak.com

slide-91
SLIDE 91

Let's make a list of WIDKI's Categories: + What the customer wants / what features the website currently has / what should be added + What the UI should look like + How code and data should be structured

John Keklak Software Development Institute john@keklak.com

slide-92
SLIDE 92

Let's make a list of WIDKI's Categories: + What the customer wants / what features the website currently has / what should be added + What the UI should look like + How code and data should be structured

John Keklak Software Development Institute john@keklak.com

slide-93
SLIDE 93

To be continued...

John Keklak Software Development Institute john@keklak.com

slide-94
SLIDE 94

To be continued...

...over the course of the year.

John Keklak Software Development Institute john@keklak.com

slide-95
SLIDE 95

To be continued...

...over the course of the year. To find out more, fill out a form and leave it with me.

John Keklak Software Development Institute john@keklak.com

slide-96
SLIDE 96

So why do you think unknowns produce reliable estimates?

John Keklak Software Development Institute john@keklak.com

slide-97
SLIDE 97

So why do you think unknowns produce reliable estimates?

+ Hint:

John Keklak Software Development Institute john@keklak.com

slide-98
SLIDE 98

So why do you think unknowns produce reliable estimates?

+ Hint: Programmers spend about 2% of their time writing new code,

John Keklak Software Development Institute john@keklak.com

slide-99
SLIDE 99

So why do you think unknowns produce reliable estimates?

+ Hint: Programmers spend about 2% of their time writing new code, less than 10% of their time modifying existing code,

John Keklak Software Development Institute john@keklak.com

slide-100
SLIDE 100

So why do you think unknowns produce reliable estimates?

+ Hint: Programmers spend about 2% of their time writing new code, less than 10% of their time modifying existing code, and 80+% of their time figuring out what the customer wants, what a UI should look like, how to organize data, how to structure code, how to use API's, how code should do things, how existing code works, and what is causing a particular bug.

John Keklak Software Development Institute john@keklak.com

slide-101
SLIDE 101

So why do unknowns produce reliable estimates?

+ An estimate based on unknowns

John Keklak Software Development Institute john@keklak.com

slide-102
SLIDE 102

So why do unknowns produce reliable estimates?

+ An estimate based on unknowns is based on what actually goes

  • n in a software project.

John Keklak Software Development Institute john@keklak.com

slide-103
SLIDE 103

Other benefits of unknowns we don't have time to get into tonight

John Keklak Software Development Institute john@keklak.com

slide-104
SLIDE 104

Other benefits of unknowns we don't have time to get into tonight

+ Much more effective communication with developers and other stakeholders

John Keklak Software Development Institute john@keklak.com

slide-105
SLIDE 105

Other benefits of unknowns we don't have time to get into tonight

+ Much more effective communication with developers and other stakeholders + Developers embrace the approach

John Keklak Software Development Institute john@keklak.com

slide-106
SLIDE 106

Other benefits of unknowns we don't have time to get into tonight

+ Much more effective communication with developers and other stakeholders + Developers embrace the approach (enormously valuable!)

John Keklak Software Development Institute john@keklak.com

slide-107
SLIDE 107

How to find out about these other benefits

John Keklak Software Development Institute john@keklak.com

slide-108
SLIDE 108

How to find out about these other benefits

I will give continuing talks on using unknowns,

John Keklak Software Development Institute john@keklak.com

slide-109
SLIDE 109

How to find out about these other benefits

I will give continuing talks on using unknowns, in particular on: + communicating with developers and customers

John Keklak Software Development Institute john@keklak.com

slide-110
SLIDE 110

How to find out about these other benefits

I will give continuing talks on using unknowns, in particular on: + communicating with developers and customers, and + managing projects.

John Keklak Software Development Institute john@keklak.com

slide-111
SLIDE 111

How to find out about these other benefits

I will give continuing talks on using unknowns, in particular on: + communicating with developers and customers, and + managing projects. Email me at john@keklak.com to find out when and where.

John Keklak Software Development Institute john@keklak.com

slide-112
SLIDE 112

To get involved in the Boston SPIN website facelift,

John Keklak Software Development Institute john@keklak.com

slide-113
SLIDE 113

To get involved in the Boston SPIN website facelift, fill out a form

John Keklak Software Development Institute john@keklak.com

slide-114
SLIDE 114

To get involved in the Boston SPIN website facelift, fill out a form

  • r

email me at john@keklak.com

John Keklak Software Development Institute john@keklak.com

slide-115
SLIDE 115

The Power of Unknowns

Thank you for your time and attention!

John Keklak Software Development Institute john@keklak.com

slide-116
SLIDE 116

The Power of Unknowns Questions?

John Keklak Software Development Institute john@keklak.com

slide-117
SLIDE 117

John Keklak Software Development Institute john@keklak.com

slide-118
SLIDE 118

John Keklak Software Development Institute john@keklak.com