seven diagrams every software developer should understand€¦ · small project success does not...
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/7.jpg)
A History of
Attempts to Explain
Software
Development
![Page 8: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/8.jpg)
8 Construx®
A Long Line of Attempts to Explain
Software Development
![Page 9: Seven Diagrams Every Software Developer Should Understand€¦ · Small project success does not prepare organizations for large project success Organizations must change focus as](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/9.jpg)
9 Construx®
Why do we Need to Help People
Understand Software Engineering?
![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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/47.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/48.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/49.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/50.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/51.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/52.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/53.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/54.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/55.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/56.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/57.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/58.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/59.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/60.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/61.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/62.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/63.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/64.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/65.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/66.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/67.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/68.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/69.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/70.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/71.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/72.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/73.jpg)
Construx Software is committed to helping
individuals and organizations improve their
software development practices. For information
about our training and consulting services, contact
+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](https://reader034.vdocuments.site/reader034/viewer/2022042300/5ecb78de0746fe023043add1/html5/thumbnails/74.jpg)
END