107
Construx ® Tools for Dealing with Uncertainty Succeeding with Software in a Complex, Chaotic World

Succeeding with Software in a Complex, Chaotic World · Construx® [email protected] Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300 Steve McConnell

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Construx®

Tools for Dealing with Uncertainty

Succeeding with Software in

a Complex, Chaotic World

Page 2: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Construx®

These presentation materials are © 1996-2018

Construx Software Builders, Inc.

All Rights Reserved. No part of the contents of this

presentation may be reproduced or transmitted in any

form or by any means without the written permission

of Construx Software Builders, Inc.

Copyright Notice

Page 3: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Construx®

[email protected]

Construx

10900 NE 8th Street, #1350

Bellevue, WA 98004

+1 (866) 296-6300

www.construx.com

Steve

McConnell

Page 4: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Introduction to

Uncertainty

Page 5: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

5 What Do I Mean by “Uncertainty”?

► Unknowns (more on this later)

► Variability (in individual productivity, team productivity, defect

rates, interpretation of functionality, etc.,etc.)

► Risk (financial definition of “Risk”)

► Literal “uncertainty”—“The state of not able to be relied on, not

definite”

Page 6: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

6 In other words,

Uncertainty ≈

Unknowns ≈ Variability ≈ Risk ≈ Unreliability

Page 7: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

7 A Case Study in Uncertainty

An Early Extreme

Programming

Project

Page 8: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

8 A major software products

company adopted XP very early

Team grew to 100+ people

Page 9: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

9 Project Characteristics

Onsite coaches

Onsite customer

Focus on always doing the “next

most important thing”

Short iterations

Delivery of working software

every iteration

Page 10: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

10 This was a Well-Run Project!

This was a highly disciplined,

rigorous, well-supported

Extreme Programming project

This project should have been

successful (in some sense)

Page 11: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

11 Project Result

After 18 months the project was

cancelled

Company wrote off $90 million

Company laid off 200 staff

The company said,

“We are never doing another

Extreme Programming project

again”

Page 12: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

12 Cause of Failure?

► The discipline of “always do the next most useful thing” was not

converging to a viable product

► After 18 months the team had failed to converge to anything the

company thought was coherent enough to sell

► The company ultimately lost confidence that the team would ever

produce a coherent product

Page 13: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

13 An Ineffective Approach to Uncertainty

► This is not a criticism of Extreme Programming,

per se

► It is a criticism of the way that uncertainty was addressed on this

particular project (especially in product concept & requirements)

Page 14: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

14 Variations on a Theme

► This basic pattern of projects failing because of mishandled

uncertainty has been repeated thousands of times on projects of

all kinds (Scrum, Kanban, Lean, Waterfall, Scrummerfall, etc.)

Page 15: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Software Projects are Beset by

Uncertainty From All Sides

Page 16: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

16 Example Sources of Uncertainty

Acquisitions

Additional customers

Changes in implementation

Architecture changes

Art requirements

Budget changes

Budget cuts

Bug fixes

Bugs being found during late

testing

Business crime (e.g., embezzlement)

Business logic / regulatary changes

Change in market requirements

Change in priorities

Change in quality criteria

Change in technology

Change in your company's credit rating

(i.e., staff size changes, resource

changes)

Changes due to scale (10 users =>

10,000 users)

Changes in clients or third parties

Changes in in-house or third-party tools

Changes in requirements

Changes in staffing

Page 17: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

17 Example Sources of Uncertainty

Changes to delivery time (i.e., the

deadline changes)

Changing customers

Changing graphics

Code drop from the vendor

Code reuse

Coding errors

Communication protocol changes

between client and server

Company culture changes (e.g., if

you get acquired)

Company direction

Competition features change

Compiler changes (toolset changes in

general)

Compliance changes

Cost reduction and scope reduction

Target customer changes

Dependencies change

Dependencies not fulfilling promises

Depracation of old libraries (client

software)

End of life for certain parts

Page 18: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

18 Example Sources of Uncertainty

End of life of system you're

working on

End or support contracts for

supported technologies

Environment (client

environment)

External APIs change

Facebook APIs change

Design approach fails

Financial benefit (need to

release a new version sooner

than expected for cash flow)

Funding changes

Infrastructure/framework changes

Integration changes (system integration)

Integration of acquired company's code

base to fit your standards and what not

Integration with another code base

Internationalization issues (language,

currency)

IP infringement

Lead developer resigns

Management changes

New research that can affect your existing

stuff

Page 19: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Where does Uncertainty come from?

It comes from developing software in our

complex, chaotic world.

Page 20: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Role of Uncertainty

Page 21: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

21 Role of Uncertainty

Uncertainty is a common blind spot—

Most projects don’t realize that Uncertainty

is a factor that needs to be addressed

Page 22: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

22 Uncertainty is Usually Not Addressed Well

Common responses to Uncertainty tend to be ineffective

► Plan everything! (Waterfall)

► Plan nothing! (Early Agile)

► Don’t have a plan! (Since the beginning of time)

These are caricatures, but too close to the truth for comfort

Page 23: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Talk Roadmap

Page 24: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

24 Understanding Software Projects Lectures

Page 25: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

25

Size Human

Variation

Defects Uncertainty

The Four Factors Lifecycle Model

Page 26: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

26 Talk Roadmap

► Introduction

► Categories of Uncertainty

► Tools for Dealing with Uncertainty

Uncertainty and Size

Uncertainty and Defects

Uncertainty and Human Variation

Uncertainty and the SLM

Uncertainty and the Four

Factors Lifecycle Model

► Conclusions

Page 27: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Categories of Uncertainty

Page 28: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Tool:

Categories of Uncertainty

Page 29: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

29 Categories of Uncertainty

Known Unknown

Knowable Unknowable

Static Situation Dynamic/Emergent Situation

Current State Future State

Common Cause Special Cause

Page 30: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

30 Categories of Uncertainty

Some categories of uncertainty are more problematic than others

Page 31: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

31 Categories of Uncertainty

Known Unknown

Knowable Unknowable

Static Situation Dynamic/Emergent Situation

Current State Future State

Common Cause Special Cause

Page 32: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

32 Categories of Uncertainty

Known Unknown

Knowable Unknowable

Static Situation Dynamic/Emergent Situation

Current State Future State

Common Cause Special Cause

Page 33: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

33 Categories of Uncertainty

Known Unknown

Knowable Unknowable

Static Situation Dynamic/Emergent Situation

Current State Future State

?

Common Cause Special Cause

Page 34: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

34 Categories of Uncertainty

Known Unknown

Knowable Unknowable

Static Situation Dynamic/Emergent Situation

Current State Future State

?

Common Cause Special Cause

Page 35: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

35 Categories of Uncertainty

Known Unknown

Knowable Unknowable

Static Situation Dynamic/Emergent Situation

Current State Future State

?

Common Cause Special Cause

Page 36: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

36 Summary of Categories of Uncertainty

Again, some categories of uncertainty (and combinations) are more

problematic than others

Page 37: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Tool:

Essential vs. Accidental Uncertainty

Page 38: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

38 Essential vs. Accidental Uncertainty

Adapting Fred Brooks’ distinction between Essential and Accidental,

“Essential” Uncertainty inherent in the problem we’re trying to

solve

“Accidental” Uncertainty created by our solution

Page 39: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

39 Examples of Accidental Uncertainty

We decide to hire new staff with unknown capabilities

We decide to develop functionality in an area where our users don’t

quite know what they want

We decide to try a new design approach

We decide to use a new programming language

We decide to use a new methodology

All the above, at the same time!

Page 40: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

40 Accidental Uncertainty

This is Uncertainty that we take on, through our decisions, and which

in many cases is discretionary

Page 41: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Tools for Dealing with

Uncertainty

Page 42: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

The Interaction Between

Uncertainty and Size

Human

Variation

Defects

Size

Uncertainty

Page 43: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

43 Uncertainty and Size

The larger the project is, the disproportionately larger impact

uncertainty will have

Page 44: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

44 Cocomo II and Uncertainty – Small Project

Cumulative Effect of

Uncertainty Factors:

5x

Page 45: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

45 Cocomo II and Uncertainty – Large Project

Cumulative Effect of

Uncertainty Factors:

8x

Page 46: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Tool:

Keep Projects Small

Page 47: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

47 Project Outcomes by Project Size

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

10 FP

500-1000 LOC

100 FP

5K-10K LOC

1,000 FP

50K-100K LOC

10,000 FP

500K-1M LOC

100,000 FP

5M-10M LOC

Perc

enta

ge

Failed

Late

On Time or Early

Data from Economics of Software Quality, Capers Jones, 2012

Page 48: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

48 Essential vs. Accidental Uncertainty and Size

Size is often an Essential

source of uncertainty, but

… sometimes …

it’s Accidental

Page 49: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

49 Final Word on Uncertainty and Size

High Uncertainty and Large Size is a Bad Combination

Page 50: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

50 Remember That Early XP Project?

Known Unknown

Knowable Unknowable

Static Situation Dynamic/Emergent Situation

Current State Future State

Now Add Large Size to This (200 Staff)

Common Cause Special Cause

Page 51: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

The Interaction Between

Uncertainty and Defects

Size Human

Variation

Defects Uncertainty

Page 52: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Tool:

Intellectual Phase Profile

Page 53: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

53 Intellectual Phase Profile for Projects

and Activities

Schedule

Focus

Discovery

(Requirements)

Invention

(Design) Construction

(Implementation)

Page 54: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

54 Intellectual Phase Profile

Overlap = Wicked Problem

Schedule

Focus

Discovery

(Requirements)

Invention

(Design) Construction

(Implementation)

“Wickedness”

(not just iteration)

Page 55: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

55 Intellectual Phase Profile

Schedule

Focus

Discovery

(Requirements)

Invention

(Design) Construction

(Implementation)

Overlap =

►Dependencies

► Potential for work

that will need to

be redone

► Potential for

defects

► Risk

►Uncertainty

Page 56: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

56 Intellectual Phase Profile and Defects

Overlap = Uncertainty = Defect Potential

Page 57: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

57 Uncertainty and Defects

Uncertainty handled badly Rework (aka Defects)

Plan wrong

Experiment wrong

Design wrong

Build wrong

Build wrong thing

Page 58: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

58 Uncertainty and Defects

Uncertainty Defects Extra Cost, Longer Schedules

This becomes a vicious circle, with

Extra unplanned work More uncertainty

Page 59: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

59 The Intellectual Phase Profile Provides

Key Questions to Ask

► How much uncertainty do I expect in requirements?

► How much uncertainty do I expect in design?

► How much interaction should I expect between requirements and

design, wrt uncertainty?

► How much uncertainty should I expect in construction?

► How much interaction should I expect between construction,

requirements and design, wrt uncertainty?

Page 60: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

60 Variations in Sources of Uncertainty-

Concentrate on High Focus Areas

Page 61: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

61 Expect More Defects!

Expect more defects in the

areas of high uncertainty

Focus

High Focus

Area

High Activity

Overlap

(wickedness) in a

High Focus Area

= High Defect

Potential

Page 62: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

62 Ask About Essential vs. Accidental Uncertainty

How much Uncertainty is inherent in Discovery, Invention, and

Construction (“Essential”) vs. how much is being created by your

team’s solution? (“Accidental”)?

Avoid Accidental Uncertainty

Page 63: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

63 An Example of Accidental Uncertainty

Related to Defects

“Defect Detection Gap”

Defect creation

Defect removal

Well-Run Project

Time Time

Cumulative

Defects

Typical Project

This area is

accidental

uncertainty This is too,

but better

controlled

Page 64: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

The Interaction Between

Uncertainty and Human Variation

Size

Defects

Human

Variation

Uncertainty

Page 65: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

65 Uncertainty and Human Variation

How much uncertainty can you safely take on?

Page 66: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Tool:

MSF Risk Offset

Page 67: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

67 MSF =

Motorcycle Safety

Foundation

Page 68: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

68 MSF Risk

Offset Tool

Page 69: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

69

Resu

lt

What is Your Risk Offset?

Skill Scale:

High

Skill Scale:

Low

Risk Scale:

High

Risk Scale:

Low

Page 70: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

70

Resu

lt

What is Your Risk Offset?

Skill Scale:

High

Skill Scale:

Low

Average Risk with Higher Skill:

Good Result

Average Risk with Average

Skill: Average Result

Average Risk with Lower Skill:

Bad Result

Average Risk with Lower Skill:

Worse Result

Low Risk with Higher Skill:

Best Result Risk Scale:

High

Risk Scale:

Low

Page 71: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

71 What Are The

Software

Implications

of the MSF

Risk Offset

Tool?

Page 72: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

72

Resu

lt

Software Implications: All These Apply!

Average Uncertainty with

Higher Skill: Good Result

Average Uncertainty with

Average Skill: Average Result

Average Uncertainty with

Lower Skill: Bad Result

Average Uncertainty with

Lower Skill: Worse Result

Low Uncertainty with Higher

Skill: Best Result Skill:

High

Skill:

Low

Uncertainty:

High

Uncertainty:

Low

Page 73: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

73

Skill:

High

Skill:

Low

Uncertainty:

High

Uncertainty:

Low

Resu

lt

Software Implications

Typical Result With an Average Skill Level?

Average Result ?

Page 74: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

74

Skill:

High

Skill:

Low

Uncertainty:

High

Uncertainty:

Low

Resu

lt

Software Implications

Best Result With an Average Skill Level?

Good Result

?

Best Result is Not Attainable at

this Skill Level

Page 75: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

75

Skill:

High

Skill:

Low

Uncertainty:

High

Uncertainty:

Low

Resu

lt

Software Implications

Result With a High Skill Level?

Best Result is Readily

Attainable at this Skill Level

Good Result is Attainable

Even With High Risk ?

Page 76: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

76

Skill:

High

Skill:

Low

Uncertainty:

High

Uncertainty:

Low

Resu

lt

Software Implications

Best Result with a High Risk/Uncertainty Level?

Good Result ?

Bad Result

Best Result is Not Attainable at

this Risk/Uncertainty Level

Page 77: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

77

Skill:

High

Skill:

Low

Uncertainty:

High

Uncertainty:

Low

Resu

lt

Software Implications

Best Result with a Low Skill Level?

Bad Result

Bad Result (Best Possible

Result with Low Skill Level) ?

Page 78: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

78

Skill:

High

Skill:

Low

Uncertainty:

High

Uncertainty:

Low

Resu

lt

XP Case Study

Bad Result

?

?

Page 79: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

79

Skill:

High

Skill:

Low

Uncertainty:

High

Uncertainty:

Low

Resu

lt

XP Case Study

?

?

Even Worse Result

Page 80: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Extending the MSF Tool

Page 81: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

81

Resu

lt

Uncertainty and Size

Size:

Small

Size:

Large

Average Uncertainty with

Small Size: Good Result

Average Uncertainty with

Average Size: Average Result

Average Uncertainty with

Med-Large Size: Bad Result

High Uncertainty with

Med-Large Size: Worse Result

Low Uncertainty with

Small-Medium Size: Best Result Uncertainty:

High

Uncertainty:

Low

Page 82: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

82 Extending the MSF Tool

We can create analogous diagrams with any pair of factors from the

Four Factors Lifecycle Model

Size Human

Variation

Defects Uncertainty

Page 83: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

The Interaction Between

Uncertainty and the SLM

Size Human

Variation

Defects Uncertainty

Page 84: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

84 Interaction Between Uncertainty and the SLM

► More uncertainty calls for tighter feedback loops, i.e., more

iteration

► Briefly, …

Page 85: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

85 The Lifecycle Building Block

Require-

ments

Archi-

tecture

Construction System

Test

Page 86: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

86 Variation: Length of Iteration

Page 87: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

87 Variation: Iterating Within an Activity

Page 88: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

88 Variation: Iterating Across Activities

Page 89: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

89 Interaction Between Uncertainty and the SLM

► Overall, iteration is a powerful tool for addressing Uncertainty

► This is covered extensively in the USP Lecture series

Page 90: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Uncertainty and the Whole Four

Factors Software Lifecycle Model

Size Human

Variation

Defects Uncertainty

Page 91: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Tool: Four Factors Lifecycle Model Radar Chart

Page 92: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

92 Four Factors Lifecycle Model Radar Chart

The kind of Uncertainty we’re talking about here is the Uncertainty

of, “Should we do this project?”

Page 93: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

93 Four Factors

Lifecycle Model

Radar Chart

Size

Defects

(Defect Potential)

Uncertainty Human

Variation

4

3

2

1

Page 94: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

94 Proposed Radar

Chart Scale (Draft)

15+ Green

13-14 Yellow

11-12 Orange

≤10 Red

Defects

(Defect Potential)

Uncertainty Human

Variation

Size

4

3

2

1

Page 95: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

95

4

3

2

1

Ideal Project

Score: 16, Green

Size

Defects

(Defect Potential)

Uncertainty Human

Variation

Page 96: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

96

4

3

2

1

Worst Possible

Project

Score: 4, Red

Defects

(Defect Potential)

Uncertainty Human

Variation

Size

Page 97: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

97

4

3

2

1

Best Possible

Project With High

Uncertainty

Score: 13,

Yellow

Defects

(Defect Potential)

Uncertainty Human

Variation

Size

Page 98: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

98

4

3

2

1

Best Possible

Project With

Large Size

Score: 13,

Yellow

Defects

(Defect Potential)

Uncertainty Human

Variation

Size

Page 99: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

99

4

3

2

1

Best Possible Project

With Both High

Uncertainty and

Large Size

Score: 10,

Red

Defects

(Defect Potential)

Uncertainty Human

Variation

Size

Page 100: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

100

4

3

2

1

XP Case Study

Project

Score: ~10, Red

Defects

(Defect Potential)

Uncertainty Human

Variation

Size

New methodology

New product

Lots of requirements

volatility

200 staff

>18 months

Large team

(regression to

mean)

Team new to XP

Extensive

coaching

Disciplined use of XP’s

quality practices

Page 101: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

101

4

3 2

1

What Do We Do With Our Score?

Suggested actions

Green Proceed!

Yellow Take steps to reduce the

score, if possible

Orange Proceed only if reducing

the score to yellow or green

is possible

Red Proceed only if reducing

the score to yellow or green

is possible

Defects

(Defect Potential)

Uncertainty Human

Variation

Size

3

2

1

Page 102: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Conclusions

Page 103: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

103 Summary

► Software projects with high uncertainty are common

► Software projects with high uncertainty are difficult

► Numerous tools exist to help understand and deal with

uncertainty

Page 104: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

104 These Tools Help Understand Uncertainty

► Categories of Uncertainty

► Essential vs. Accidental Uncertainty

► Project Size and Cocomo II’s Uncertainty-Related Factors

► Defects and Intellectual Phase Profiles

► Human Variation and MSF Uncertainty Offset Tool

► Software Lifecycle Model and focused iteration

► Four Factors Lifecycle Model Radar Chart

Page 105: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

105 These Additional Tools Can Help Too

► Hardest Part First

► Cone of Uncertainty

► Cynefin

► Feature Build Up

► Prototyping

► Spikes

► Defect Detection Gap

Size Human

Variation

Defects Uncertainty

And Much More!

Page 106: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

106 See Much More Detail in the Understanding

Software Projects Lectures!

Page 107: Succeeding with Software in a Complex, Chaotic World · Construx® stevemcc@construx.com Construx 10900 NE 8th Street, #1350 Bellevue, WA 98004 +1 (866) 296-6300  Steve McConnell

Construx®

[email protected]

Construx

10900 NE 8th Street, Suite 1350

Bellevue, WA 98004

+1 (866) 296-6300

www.construx.com

We believe that each and every software

project can be successful.

We believe that developing the professional

skills of companies, teams, and individuals is

the best way to make software projects

more successful.

For information about our training and

consulting services, contact

[email protected].