If you can't read please download the document
Upload
ivanbah
View
247
Download
2
Embed Size (px)
DESCRIPTION
Some interesting diagrams
Citation preview
www.construx.com
Seven Diagrams Every
Software Developer
Should Understand
Also Known 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.
Introduction
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
6 Construx
I did not work as hard on my next book,
Software Project Survival Guide
A History of
Attempts to Explain
Software
Development
8 Construx
A Long Line of Attempts to Explain
Software Development
http://www.computer.org/web/swebok/https://www.google.com/url?sa=i&rct=j&q=&esrc=s&frm=1&source=images&cd=&cad=rja&docid=GLKR9ZGluCKhwM&tbnid=_6H1hCPzzz_n6M:&ved=0CAUQjRw&url=https://www.computer.org/portal/web/certification/96&ei=q7h-Uu-xKeS6iwLLqoCwBA&bvm=bv.56146854,d.cGE&psig=AFQjCNEJFhr34SQZlJuyNlQNCjZbdOP9UQ&ust=1384122921575253http://www.google.com/url?sa=i&rct=j&q=&esrc=s&frm=1&source=images&cd=&cad=rja&docid=D5aqBEUOo6xCMM&tbnid=EOSqWkQsIw3cnM:&ved=0CAUQjRw&url=http://www.canyons.org/SubTabGeneric.jsp?team=sccac&_stabid_=49518&ei=N7l-UqaIHefTiwKM8IGgCw&bvm=bv.56146854,d.cGE&psig=AFQjCNH6EQW9-xYqVkG4dMBzgmq-lVrO9A&ust=13841230585098309 Construx
Why do we Need to Help People
Understand Software Engineering?
http://www.google.com/url?sa=i&rct=j&q=&esrc=s&frm=1&source=images&cd=&cad=rja&docid=D5aqBEUOo6xCMM&tbnid=EOSqWkQsIw3cnM:&ved=0CAUQjRw&url=http://www.canyons.org/SubTabGeneric.jsp?team=sccac&_stabid_=49518&ei=N7l-UqaIHefTiwKM8IGgCw&bvm=bv.56146854,d.cGE&psig=AFQjCNH6EQW9-xYqVkG4dMBzgmq-lVrO9A&ust=138412305850983010 Construx
Why do we Need to Help Other People
Understand Software Engineering? (cont.)
the pieces from several contractors had to work
have after the various parts were integrated was
difficult until the site actually went online, Bataille
about 500 million lines of software code. By
typically about one-
11 Construx
Latest Attempt to Explain Software Development
Software
Engineering
Essentials Lecture Series
CxLearn.com
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 .
Talk Roadmap
14 Construx
Roadmap for This Talk
Introduce four core influences
Highlight seven key diagrams
Introduce many other diagrams
that are also informative
Candidate
Top 7 Diagram
Four Core Software
Influences
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)
Core Influence:
Size
18 Construx
We have many informative diagrams. Which really
explains the essence of Size in Software?
Team Size
Pro
ductivity
1 ~7 ~50 ~250-350
Outp
ut
19
Diseconomy of Scale (Fred Brooks)
Efficiency is an N 2 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
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
Sch
ed
ule
(M
on
ths)
0
50
100
150
200
250
300
Eff
ort
(S
taff
Mo
nth
s)
Schedule Effort
Adapted from Lawrence H. Putnam and Ware Myers , Five Core Metrics: The Intelligence
Behind Successful Software Management
21
Efficiency is an N 2 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
22
Step Function
Team Size
Pro
du
ctivity
1 ~7 ~50 ~250-350
23
Diseconomy of Scale:
Step Function, Output
Team Size
Pro
du
ctivity
1 ~7 ~50 ~250-350
Outp
ut
24 Construx
Failure Rates by Size
Source: Adapted from Applied Software Measurement, 3 rd 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
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
LO
C /
Sta
ff Y
ea
r
Productivity by Size
High LOC/Staff Year
Nominal
Low LOC/Staff Year
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
26 Construx
Specializations by Organization Size
Cocomo Factors by
Size