+ All Categories
Home > Documents > Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not...

Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not...

Date post: 23-May-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
74
www.construx.com Seven Diagrams Every Software Developer Should Understand
Transcript
Page 1: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

www.construx.com

Seven Diagrams Every

Software Developer

Should Understand

Page 2: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Also Known As

“How Not to be Surprised in

Software Development”

Page 3: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Copyright Notice

These materials are © 1996-2014 Construx Software Builders,

Inc.

All Rights Reserved. No part of the contents of this seminar

may be reproduced or transmitted in any form or by any

means without the written permission of Construx Software

Builders, Inc.

Page 4: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Introduction

Page 5: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

5 Construx®

How Not to Be Surprised in Software Development

My Background

300 books and articles?

600 books and articles!

Another 300 books

and articles!

Another ~1000 papers,

of which only 250

were publishable

<sigh>

Page 6: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

6 Construx®

I did not work as hard on my next book,

Software Project Survival Guide …

Page 7: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

A History of

Attempts to Explain

Software

Development

Page 10: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

10 Construx®

Why do we Need to Help Other People

Understand Software Engineering? (cont.)

“… they had just two weeks to test the site before all

the pieces from several contractors had to work

together the day of the launch.”

“We all know we were working under a compressed

time frame to launch this on Oct. 1”

“Determining many of the problems the system would

have after the various parts were integrated was

difficult until the site actually went online, Bataille

said. It was the agency’s responsibility to make sure

all the parts worked together.”

“According to one specialist, the Web site contains

about 500 million lines of software code. By

comparison, a large bank’s computer system is

typically about one-fifth that size.”

“The technology is there to do that. It just

requires foresight.”

Page 11: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

11 Construx®

Latest Attempt to Explain Software Development

Software

Engineering

Essentials Lecture Series

CxLearn.com

Page 12: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

12 Construx®

The Goal

Help software professionals develop mental

models and frameworks to understand and

improve their software projects, to understand

the context for current software practices,

and to evaluate new developments in

software engineering.

Page 13: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Talk Roadmap

Page 14: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

14 Construx®

Roadmap for This Talk

Introduce four core influences

Highlight seven key diagrams

Introduce many other diagrams

that are also informative

What’s the benefit of that? Candidate

Top 7 Diagram

Page 15: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Four Core Software

Influences

Page 16: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

16 Construx®

Four Core Influences

SIZE (diseconomy of scale; failure rate; specializations; mix of activities)

UNCERTAINTY (intellectual phases; cone of uncertainty; feature

staircase vs. feature buildup; risk management; effort vs. certainty curve)

DEFECTS (DCI, defect detection lag, defect removal techniques in

series, relationship to process stability)

HUMAN VARIATION (effect on research; effect on selection of

methods (familiar vs. unfamiliar); effect on team composition, team

cohesion, recruiting, and retention; focus on perfect execution vs. perfect

plans; implication for favoring robust methods)

Page 17: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Core Influence:

Size

Page 18: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

18 Construx®

Which “Size” Diagrams Are Most Informative?

We have many informative diagrams. Which really

explains the essence of Size in Software?

Team Size

Pro

du

ctiv

ity

1 ~7 ~50 ~250-350

Ou

tpu

t

Page 19: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

19

Diseconomy of Scale (Fred Brooks)

Efficiency is an N2 function of the number of

people on the project due to communication

paths: N*(N-1)/2

1 person =

0 paths

2 people =

1 path

3 people =

3 paths

4 people =

6 paths

5 people =

10 paths

Page 20: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

20

Diseconomy of Scale (Larry Putnam)

0

5

10

15

20

25

30

35

40

45

50

1.5-3 3-5 5-7 9-11 15-20

Team Size

Sc

he

du

le (

Mo

nth

s)

0

50

100

150

200

250

300

Eff

ort

(Sta

ff M

on

ths)

Schedule Effort

Adapted from Lawrence H. Putnam and Ware Myers, Five Core Metrics: The Intelligence

Behind Successful Software Management

Page 21: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

21

Brooks’ Diseconomy of Scale Revisited

Efficiency is an N2 function of the number of

people on the project due to communication

paths: N*(N-1)/2

1 person =

0 paths

2 people =

1 path

3 people =

3 paths

4 people =

6 paths

5 people =

10 paths

50 people =

1225 paths

Page 22: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

22

Diseconomy of Scale: McConnell’s

Step Function

Team Size

Pro

du

ctiv

ity

1 ~7 ~50 ~250-350

Page 23: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

23

Diseconomy of Scale: McConnell’s

Step Function, Output

Team Size

Pro

du

ctiv

ity

1 ~7 ~50 ~250-350

Ou

tpu

t

Page 24: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

24 Construx®

Failure Rates by Size

Source: Adapted from Applied Software Measurement, 3rd Edition (Jones 2008), Estimating Software Costs (Jones 1998).

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

Pe

rce

nta

ge

Failed

Late

On Time

Early

Page 25: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

25 Construx®

Error Rate by Size? Productivity by Size?

-

5,000

10,000

15,000

20,000

25,000

30,000

1 KLOC 10KLOC

100KLOC

1,000KLOC

10,000KLOC

LOC

/ S

taff

Ye

ar

Productivity by Size

High LOC/Staff Year

Nominal

Low LOC/Staff Year

Notice the “High” here?

This implies that a 500 MLOC

healthcare.gov would

require at least

100,000 staff-years of effort

(all since 2010!)

-

20

40

60

80

100

120

<2 KLOC 2-16KLOC

16-64KLOC

64-512KLOC

512+KLOC

De

fec

ts /

KLO

C

Error Rate by Size

Low Error Rate

High Error Rate

Average Error Rate

Page 26: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

26 Construx®

Specializations by Organization Size

Page 27: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Cocomo Factors by

Size

Page 28: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

28 Construx®

Cocomo II’s View of Software Project

Influences

-27%

-24%

0%

-19%

-22%

-18%

-19%

-19%

-22%

-13%

0%

-19%

-10%

-18%

-16%

-5%

-14%

74%

42%

34%

63%

29%

22%

26%

23%

22%

17%

30%

46%

15%

15%

20%

28%

19%

14%

12%

24%

11%

-16%

-19%

-15%

-29%

Product Complexity

Requirements Analyst Capability

Programmer Capability (general)

Time Constraint

Personnel Continuity (turnover)

Multi-Site Development

Required Software Reliability

Extent of Documentation Required

Applications (Business Area) Experience

Use of Software Tools

Platform Volatility

Storage Constraint

Precedentedness

Process Maturity

Language and Tools Experience

Database Size

Platform Experience

Architecture and Risk Resolution

Development Flexibility

Developed for Reuse

Team Cohesion

Page 29: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

29 Construx®

Cocomo II’s View of Software Project

Influences

Page 30: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

30 Construx®

Cocomo II’s View of Software Project

Influences

Page 31: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

31 Construx®

Why Does This Matter?

(Implications of the Diagram)

Understanding the factors in the Cocomo model

and their relative importances goes a long way

toward explaining software project dynamics

overall

Many dynamics related to project size are implied

by Cocomo’s scaling factors

Many dynamics related to human variation are

implied in the Cocomo model

Page 32: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Activity Mix by Project

Size

Page 33: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

33 Construx®

Project Activity Mix by Project Size

Construction

is approx.

2/3

Construction

is approx.

1/3

Page 34: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

34 Construx®

Why Does This Matter?

(Implications of the Diagram)

Small project success does not prepare

organizations for large project success

Organizations must change focus as their projects

inevitably become larger

Organizations must build different/additional skill

sets as their projects become larger

There are numerous interactions between size,

uncertainty, defects, and human variation

Page 35: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Core Influence:

Uncertainty

Page 36: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

36 Construx®

Again, We Have Many Wonderful

“Uncertainty” Diagrams

Page 37: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

37

Effort vs. Knowledge Curve

Effort Expended

Knowledge /

Understanding

0%

100%

50%

25%

75%

Page 38: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

38 Construx®

Waste

Feature Build Down

(The Feature Staircase)

Release

Plan

Page 39: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

39

Cost

Feature Build Up

Diminishing returns when functionality is

delivered in priority order

Time

Opportunity to Add More

Value

Value /

Functionality

Page 40: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

40

Risk Management: Relationship between

Planned and Unplanned Work

Planned Work

Planned

“Overhead”

Unplanned,

Variable Work

Page 41: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Cone of Uncertainty

vs. Cloud of

Uncertainty

Page 42: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

42

Cone of Uncertainty vs. Cloud of Uncertainty

0.67x

0.8x

1.0x

0.5x

0.25x

2x

4x

1.5x

1.25x

Project

schedule

0.85x

0.9x

1.0x

0.8x

0.6x

1.25x

1.6x

1.15x

1.1x

Project scope

(effort, size, features)

Initial

product

definition Approved

product

definition

Requirements

Product

design

Detailed

design

Product

complete

Page 43: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

43 Construx®

Why Does This Matter?

(Implications of the Diagram)

Explains why perfect estimation on Day 1 of a

project is not possible

Explains why reestimation is necessary if you want

accurate estimates

Explains why actively attacking uncertainty is

essential

Page 44: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Intellectual Phases

Page 45: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

45

Intellectual Phases

Schedule

Focus

Discovery Invention Construction

This figure is adapted from Grady Booch, Object Solutions: Managing

the Object-Oriented Project, Reading, Mass: Addison Wesley 1996

Page 46: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

46 Construx®

Schedule

Focus

Discovery Invention Construction

Intellectual Phases

Cost of Overlap

Overlap = Dependencies

Uncertainty

Risk

Rework

Higher costs

Longer

schedules

Lower quality

Page 47: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

47 Construx®

Intellectual Phases

Degree of Overlap

Time

Focus

Discovery Invention Construction

Time

Discovery Invention Construction

Time

Discovery Invention Construction

Page 48: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

48 Construx®

Intellectual Phases

Variations in Sources of Project Challenges

Discovery Invention Construction

Focus

Page 49: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

49 Construx®

Why Does This Matter?

(implications of the diagram)

Many project failures are caused by treating uncertainties as

though they are certain

Additional inefficiencies are

created by treating uncertainties as if they were certain

Inefficiencies are also created by

treating certainties as if they were

uncertain

Software’s intangibility

exacerbates this phenomenon

Diagram provides a framework

for identifying uncertainty and planning appropriately

Pro

jec

t is

Tre

ate

d A

s

Project Is

Ce

rta

in

Un

ce

rta

in

Certain Uncertain

Effective

Effective

Risks Failure

Inefficient

Page 50: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Core Influence:

Defects

Page 51: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

51 Construx®

Defect Cost Increase (DCI)

Requirements

Architecture

Construction

System test Requirements Architecture Construction Post-Release

Average

Cost to

Correct

Activity in which a

Defect Is

Introduced

Activity in Which a Defect Is Detected

Page 52: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

52 Construx®

Fix More Defects Earlier!

Requirements

Architecture

Construction

System test Requirements Architecture Construction Post-Release

Average

Cost to

Correct

Activity in which a

Defect Is

Introduced

Activity in Which a Defect Is Detected

Fix Here Don’t Wait

to Fix Here

Page 53: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

53 Construx®

Reduce Defect Cost Increase!

Requirements

Architecture

Construction

System test Requirements Architecture Construction Post-Release

Average

Cost to

Correct

Activity in which a Defect Is Introduced

Activity in Which a Defect Is Detected

Page 54: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

54 Construx®

Effort/ Cost/

Schedule

Percentage of Defects

Removed Before Release

~95% 100%

Quality is an Accelerator

Quality improvement motivated primarily by economics

(quality is free)

Quality improvement motivated by quality, per se

(quality costs more)

Most Org’s

are Here

Page 55: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Gap Between Defect

Insertion and Defect

Detection

Page 56: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

56 Construx®

Minimize Gap Between Defect

Insertion and Defect Detection

Time

Cumulative Defects

Risk of Extra Cost

Risk of Extra Cost

Time

Defect creation

Defect removal

Schedule / Cost

Savings

Typical Project Well-Run Project

Page 57: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

57 Construx®

Why Does This Matter?

Practices that increase gaps between defect

insertion and defect detection will increase project

costs and project risk

Practices that minimize gaps between defect

insertion and defect detection will reduce project

costs and project risks

Understanding this diagram fully will lead to

basically same conclusions as understanding the

other diagrams

Page 58: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Core Influence:

Human

Variation

Page 59: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

59 Construx®

Note

This is not just

general “humans

develop software.” This is specifically

about variation

across different

humans.

Human Beings Exhibit the Same

Variations in Performance That

Programmers Do!

Wednesday May 21 2009

Page 60: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

60 Construx®

Cocomo II’s View of Software Project

Influences

-24%

-19%

-19%

-14%

42%

34%

29%

22%

20%

19%

11%

-16%

-15%

-29% Requirements Analyst Capability

Programmer Capability (general)

Personnel Continuity (turnover)

Applications (Business Area) Experience

Language and Tools Experience

Platform Experience

Team Cohesion

373% -78% Cumulative Effect of Personnel Factors

Page 61: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Human Variation vs.

Process-or-Practice

Variation

Page 62: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

62 Construx®

Differences in Productivity

Productivity

Productivity of Team A A

B Productivity of Team B

Page 63: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

63 Construx®

Differences in Methods

Productivity

Team A Used

Pair Programming A

B Team B Used

Formal Inspections

Which

method is

better?

Page 64: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

64 Construx®

Differences in Capability

Productivity

Team A Had

Star Performers A

B Team B Had

Average Performers

Now

which

method is

better?

Page 65: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

65 Construx®

Process Variation vs. Human Variation

Productivity

Typical Variation in

Method Productivity (~20%)

Typical Variation in

Individual Productivity (20:1) and

Team Productivity (3-10:1)

Page 66: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

66 Construx®

Effect of Variations in Human Productivity

Productivity

Typical Variation in

Method Productivity (~20%)

Typical Variation in

Individual Productivity (20:1) and

Team Productivity (3-10:1)

Is the observed productivity difference between A and B

due to method differences or to differences

in individual capability or team capability?

A

B

Page 67: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

67 Construx®

Example:

Chrysler C3 Extreme Programming Project

Productivity

Range that Kent Beck and

Ron Jeffries would perform using

any methods whatsoever

Kent and Ron’s performance on

Chrysler C3 project (speculation)

Range that average personnel will perform in, with or without

Extreme Programming

So, what is the effect of

Extreme Programming?

Page 68: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

68 Construx®

Why Does This Matter?

Academic research on process effectiveness must

account for human variation to be meaningful (and

most does not)

Evaluation of pilot projects in organizations must

account for human variation to evaluate new

methods (and most does not)

The most effective approaches to software

development are capability based rather than

process based

Page 69: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Summary

Human

Variation Defects

Uncertainty Size

Page 70: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

70 Construx®

Four Core Influences

Human

Variation Defects

Uncertainty Size

Page 71: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

71 Construx®

Why Does This Matter?

Each influence is important in itself

Each influence interacts with each other influence,

and the interactions are significant

Goal: Help software professionals develop a mental

model / framework for understanding current

practices and new developments in software

engineering

Page 72: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

72 Construx®

Latest Attempt to Explain Software Development

Software

Engineering

Essentials Lecture Series

CxLearn.com

Check it out now!

Page 73: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

Construx Software is committed to helping

individuals and organizations improve their

software development practices. For information

about our training and consulting services, contact

[email protected]

+1(425)636-0100

10900 NE 8th Street, Suite 1350

Bellevue, WA 98004

+1 (866) 296-6300

www.construx.com

Page 74: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as

END


Recommended