Software Engineering

advertisement
Modern Software
Engineering
Current State, Ugh (i)
Some organizations are 10 (even 600) times more
productive than others(1)
Most Software Projects Fail
Some definitions for Failure:
Missed schedule
Missed functionality
Missed budget
Too fragile for usage demands
Defect rates too high once in production
(1) Steve McConnell, After the Gold Rush. Redmond, WA. Microsoft Press, 1999.
Ugh (ii)
In 1995, only 16% of software projects were
expected to finish on time and on budget.(1)
Projects completed by the largest US
organizations have only 42% of originally
proposed functions.(1)
An estimated 53% of projects will cost nearly
190% of their original estimates.(1)
In large companies, only 9% of projects will be
completed on time and on budget.(1)
(1) Standish Group International Report, “Chaos”, as reported in March ‘95 Open Computing. Copyright 1995 SPC.
Ugh (iii)
Canceled projects—$81 billion loss to US
in 1995(1)
Average MIS—1 year late, 100% over
budget(2)
(1) Standish Group International Report, “Chaos”, as reported in March ‘95 Open Computing. Copyright 1995 SPC.
(2) Capers Jones, Applied Software Measurement, McGraw-Hill, 1991.
Engineering vs. Science(1)…
Scientists:
Learn what is true
How to test hypotheses
How to extend knowledge
Engineers:
Learn what is true
Learn what is useful
Learn how to apply well-understood knowledge to
solve practical problems
(1) Steve McConnell, After the Gold Rush. Redmond, WA. Microsoft Press, 1999.
Ad Hoc Survey (i)
[and some answers from UML World attendees
via unscientific show of hands]
How Many have a SWE Degree? [0]
How many of you practice Software Engineering?
~10%
Think of the last year’s projects
3+ months, or
Project team size >= 5
Percent Successful Projects
1% 100%, __ >75%, __ >50%, __ <25%, __ 0%
Ad Hoc Survey (ii)
For failed projects, what went wrong?
•
•
•
•
•
•
•
•
•
•
•
•
Ill-defined requirements? [50%]
Ill-managed requirements changes? [30%]
Poor software development methodology? [25%]
Unrealistic schedule? [25%]
Poor project management? [20%]
Lack of user involvement?
Lack of stakeholder involvement?
Lack of qualified people?
Lack of tools?
Corporate politics get in the way?
Poor or no architecture?
Lack of measurements and controls?
Is this How It Should Be?
Why do we allow this to happen?
Would you like your next <item> built like this?
Item  car, home, airplane,
bridge, ICU monitoring s/w
Engineering and construction firms don’t build
things in the way most software gets built…
Why is software allowed to so often be done
without any engineering? Many Reasons…
Can we do anything about this? Yes!
Are there some better ways? Yes!!
Current Practices are Broke!
We can do better!
We must do it better!
We should employ engineering methods
Everyone can enjoy random
success, but one is advised
not to build a career on it!
-- Bicknell, 1993
The Core Triad for Success
People
Process
Technology
People + Process + Technology
Process is no substitute for synaptic activity
You still need to think and use common sense
And a lot of that is not a book or course-learning
exercise. It takes street smarts.
That’s where mentoring and consulting come in and
add significant value
S/W Evolution
People
• Position Descriptions of the 70s:
 Programmers
• 80s
 Programmer/analysts
• 90s
 Developer
 Architect
 Business Analyst
• 00s ?




UI Designer
Bean Provider
Assembler
Deployer
+ Architect
+ Modeler
+ Implementer
+ Project Manager
+ System Analyst
+ Config. Mgr.
+ System Tester
+ Test Designer
Software Evolution (ii)
Processes
Ad Hoc
Waterfall
Spiral
Incremental
Iterative
RAD/JAD
Unified Process
Extreme Programming (XP)
Feature-Driven Development
Software Evolution (iii)
Technology
Languages: Assembler , Procedural, Structured,
Object-Oriented
3GL/4GL/CASE
Life Cycle Tools
•
•
•
•
Requirements, Architecting, Building, Testing
Configuration Management/Version Control
Round-trip Engineering (manual steps)
Simultaneous round-trip tools
Modeling:
• Structured, DFD,
• Coad, OMT, Booch,
• UML
Software Evolution (iv)
Still facing same problems as the last 25+ years
Ill-defined requirements
Demanding schedules
Fast-moving technology
Fast-moving business needs
Large-scale projects
Not much widespread improvement
But there is hope…
The Venerable Waterfall Process
Postpones Confronting Risk
Late Design Breakage
Maintenance
Testing
Implementation
Design
Analysis
Can work on
well-defined efforts
Can work in smaller efforts
Great for reporting apparent progress
SCRUM
Scrum
Scrum – an activity that occurs during a
rugby match.
Scrum—distinguishing features
Development work is partitioned into “packets”
Testing and documentation are on-going as the
product is constructed
Work occurs in “sprints” and is derived from a
“backlog” of existing requirements
Meetings are very short and sometimes
conducted without chairs
“demos” are delivered to the customer with the
SCRUM – Why?
The Standish Group’s The CHAOS Report, in 1994:
31.1% of projects will be canceled early
52.7% of projects will be over budget by an average of 189%
83.8% of projects will fail
Of the 16.2% of successful projects delivered on time and on budget, on
average, they get delivered with only 42% of their original features.
Source: The Standish Group, 1994. The CHAOS Report. http://www.pm2go.com/sample_research/chaos_1994_1.php
(C) 2002 Kevin Aguanno.
SCRUM – History
First coined by Ikujiro Nonaka and Hirotaka Takeuchi in "The New New Product
Development Game" (Harvard Business Review 86116:137-146, 1986) and
later elaborated in The Knowledge Creating Company (Oxford University Press,
1995) to refer to agile development. Adapted from the sport of rugby, the term
refers to the process used to get a ball back into play. As applied to software
development, it refers to the organization and management technique used to
successfully deliver software development projects in a chaotic environment.
Further developed with the assistance of the DuPont Advanced Research
Facility and presented to the Object Management Group in 1995. Key
developers and promoters of SCRUM are Jeff Sutherland, Ken Schwaber, and
Mike Beedle.
Now widely used around the world.
(C) 2002 Kevin Aguanno.
SCRUM – How It Differs
Traditional software development models (such as Waterfall) are based upon a
defined methodology which attempts to define requirements up front, logically
break down the work, estimate, plan, then begin development, while trying to
limit/control change which will threaten the plan. These are based upon Defined
Process Model theory which was adopted from manufacturing and applied to
software development.
Document System Concept
System Requirements
Architectural Design
Detailed Design
Code, Debug, Unit Test
System Test
Deploy & Operate
Ready.
Aim.
(C) 2002 Kevin Aguanno.
Fire!
SCRUM – How It Differs
SCRUM assumes that baselines will change significantly during the project.
In such an unpredictable environment, empirical methods should be used to
monitor progress and change, rather than using definitive methods to try and
predict progress and stop change.
SCRUM looks forward to change, as it means the end result will be a product
which more closely meets the customer's needs at the end of development.
SCRUM is not, however, without its own structure and control mechanisms...
Ready.
Fire! Correct Course. Recorrect Course...
(C) 2002 Kevin Aguanno.
SCRUM – Basic Principles
SCRUM is founded upon two basic principles:
Team Empowerment. The project team is divided into self-managing multifunction units called Sprint Teams consisting of up to six or seven people. The
team is empowered to use whatever development methods or tools they think
best to prepare their deliverables.

Iterative Development. The project deliverables are built over several iterative
development cycles, each adding additional features, and each resulting in
demonstratable results: working code, written documentation, viewable designs,
etc.

(C) 2002 Kevin Aguanno.
Scrum Principles
Small working teams used to maximize communication
and minimize overhead
Process must be adaptable to both technical and business
challenges to ensure best product produced
Process yields frequent increments that can be inspected,
adjusted, tested, documented and built on
Development work and people performing it are
partitioned into clean, low coupling partitions
Testing and documentation is performed as the product is
built
Ability to declare the product done whenever required
Scrum - 1
Backlog
prioritized list of requirements or features the provide
business value to customer
items can be added at any time)
Sprints
work units required to achieve one of the backlog items
must fit into a predefined time-box
affected backlog items frozen
Scrum - 2
Scrum meetings
15 minute daily meetings
what was done since last meeting?
what obstacles were encountered?
what will be done by the next meeting?
Demos
deliver software increment to customer for
evaluation
SCRUM – Project Structure
SCRUM Structure
Initial List
of Features
Grouped List
of Features
Feature 1
Feature 1
Feature 3
Feature 7
Feature 3
Feature 4
Feature 5
Feature 6
Feature 7
Sprint #1
Planning
Feature 2
Feature 4
Sprint #2
Feature 5
Feature 6
Product Backlog
By Kevin Aguanno. (C) 2002 Element K Journals.
Integrated
Demonstration
Feature 2
Closure
SCRUM – Management Controls
SCRUM projects are not "Out of Control" and, in fact, have several good
management and control elements:
Daily SCRUM Meeting. This is a daily meeting attended by all team members
for a Sprint. The call is generally very brief (15 mins.), the purpose of which is to
update the project manager and other team members on progress and to raise
any issues that the project manager or other team members can assist with.
Three questions are answered by each participant:
 What did I do in the last 24 hours?
 What do plan to do in the next 24 hours?
 What obstacles are standing in my way?
Visible Progress Demonstration. At the end of each Sprint, the customer and
all project team members get to see a visual demonstration of progress to date.
Customer feedback can be obtained early in the process this way, and avoid
costly changes late in the project lifecycle. Overall project progress is very
visible and very easy to track in this way via a function/feature checklist, function
points, or other similar means.
(C) 2002 Kevin Aguanno.
SCRUM – Management Controls
Sprint Burndown Charts. During a Sprint, the team provides an updated
estimate on the number of hours/days to complete their work during the daily
SCRUM meetings. The project manager can use this data to build a Sprint
Burndown Chart showing the progress within a Sprint. The total projected
number of hours for a Sprint usually increases in the early days of the Sprint as
nuances and additional work are uncovered, but then rapidly decline as work
gets underway.
Text (C) 2002 Kevin Aguanno. Chart (C) 1997 Advanced Development Methods Inc.
SCRUM – Management Controls
Accelerated Customer Approval. Because the customer reviews visible
deliverables at the end of each Sprint and provides feedback at that time,
coupled with the fact that subsequent Sprints build upon the work of earlier
Sprints, the final output should not contain any surprises to the customer and will
already include the bulk of his feedback. This should allow for a faster final
customer approval/acceptance of the deliverables.
(C) 2002 Kevin Aguanno.
SCRUM – Case Study
XYZ is a television broadcasting company that was seeking to replace its ad
sales and traffic system, a core business and operational system for
broadcasters touching nearly all aspects of the business. XYZ had been using
their current system for over a decade and the company had structured itself
around the features and limitations of the current system. In addition, the current
system was highly customized to meet the unique business requirements. The
existing system could no longer grow to meet demand and XYZ could not modify
it to meet new customer requirements. XYZ needed a new system.
XYZ hired IBM to analyze their existing and new requirements to uncover the
core functional requirements of the new system and build a request for proposal
(RFP), which would be issued to vendors of ad sales and traffic systems, and
also an evaluation tool for scoring vendor responses. IBM needed to interview
key stakeholders from nearly all areas of the business in over 50 interview
sessions and document their (sometimes conflicting) requirements, rationalize
any discrepancies, prioritize them, and prepare a high-level "to be" picture of how
the new system should look.
(C) 2002 Kevin Aguanno.
SCRUM – Case Study
The IBM project manager used SCRUM as the project management method. Bidaily SCRUM Meetings were held with the project team which included two key
customer representatives and limited to 30 minutes' duration at the start,
diminishing to fifteen minutes' duration later in the project as the project neared
completion and fewer issues arose. The RFP was broken down into several
Sprints each adding more content to the RFP and incorporating stakeholder
feedback: a rough draft Sprint, a first full draft Sprint, a final draft Sprint, a final
release version Sprint, and two parallel Sprints to produce the vendor response
evaluation tool (draft and final).
The results clearly showed the applicability to SCRUM in a consulting
environment. The project was delivered within target budget and timeline
ranges, and XYZ was delighted with the quality of the deliverables. In fact, the
project team was able to over-deliver in some areas that were identified as being
important to key stakeholders, smoothing the approval process for the final
deliverables.
(C) 2002 Kevin Aguanno.
SCRUM – Methodology Alignment
As SCRUM is not really a software development methodology, but more of a
development project management methodology, it does not dictate specific
software development practices (such as daily builds, OO design and modeling,
etc.) which means that most software development methods may be managed
using SCRUM without major conflicts.
(C) 2002 Kevin Aguanno.
SCRUM – When NOT to Use It
SCRUM is not appropriate for all situations, especially:

Large teams,

Complex team organizational structures,

Geographically-scattered teams, and

Life- or mission-critical applications.
(C) 2002 Kevin Aguanno.
A Solution
Feature-Driven Development
Client-centric
Architecture-centric
Repeatable process
Pragmatic, livable methodology
Great for developers
Great for managers
Great for the application!
Feature Driven Development
Practical process model for OO SW engineering.
Applicable to moderate sized and larger SW projects.
FDD—distinguishing features
Emphasis is on defining “features”
• a feature “is a client-valued function that can be implemented in two
weeks or less.”
Uses a feature template
• <action> the <result> <by | for | of | to> a(n) <object>
A features list is created and “plan by feature” is conducted
Design and construction merge in FDD
FDD puts a greater emphasis on project management
guidelines and techniques than many other agile methods.
Defines 6 milestones during the design and implementation of
a feature
design walkthrough, design, design inspection, code, code inspection,
promote to build.
Feature Driven Philosophy
Emphasizes collaboration among team members
Manages problem and project complexity using featurebased decomposition followed integration of software
increments
Technical communication using verbal, graphical, and
textual means
Software quality encouraged by using incremental
development, design and code inspections, SQA audits,
metric collection, and use of patterns (analysis, design,
construction)
Feature Driven Design - 1
Develop overall model
contains set of classes depicting business model of application to
be built
Build features list
features extracted from domain model
features are categorized and prioritized
work is broken up into two week chunks
Plan by feature
features assessed based on priority, effort, technical issues,
schedule dependencies
Feature Driven Design - 2
Design by feature
classes relevant to feature are chosen
class and method prologs are written
preliminary design detail developed
owner assigned to each class
owner responsible for maintaining design document for his or her
own work packages
Build by feature
class owner translates design into source code and performs unit
testing
integration performed by chief programmer
FDD and Software Engineering
Processes:
People:
• FDD
• Testing
• SQA
• Project Mgt
• Class Owners
• Chief Programmers
• Feature Teams
Tools:
• Together® (Model+)
• “Parking Lot” Reports
• Version Control
• Build Management
• UI Builders
FDD terms are in RED
Why the FDD Process?
To enable and enforce
the repeatable delivery of
working software in a
timely manner with
highly accurate and meaningful reporting to
all key stakeholders inside and outside a
project.
The FDD Process in Brief
5 Major Steps/Activities
FDD #1
Develop
an
Overall
Model
FDD #2
Build
a
Features
List
Requirements
& Design
FDD #3
FDD #4
FDD #5
Build
Plan
by
Feature
Design
by
Feature
Build
by
Feature
Promote
to
Build
Sched.
&
$$ Est.
Design, Code,
Some
Initial
Code Testing
Test
& Put
in Build
FDD & Typical SDLC Phases
Maintenance
#1 & #2 are Reqt’s & Design through
Modeling/Coding/ Prototyping
to get it right
Testing
#4 is very granular Detailed
Design/Code
#4
Implementation
#2
#1
#5
Design
Analysis
#5 is Detailed Code
and Test in very,very granular
chunks of client-valued functionality
Reminder:
Why FDD #1 & #2 Processes’ Emphasis on
Requirements & Design?
Studies have shown conclusively that it pays to do
things right the first time
Unnecessary changes are expensive
TRW: a change in requirements-analysis cost 50-200
times less than same change later in the cycle
(construction-maintenance). Boehm, Parpaccio 1988
IBM: removing an error by the start of design, code or
unit test allows rework to be done 10-100 times less
expensively than during unit test or functional test. Fagan
1976
A S/W Eng. View of FDD
FDD #1 & #2
Look at the larger scope
Determine tools and architecture needed to get the job
done as simply and as soon as possible
Eschew the “Code-and-Fix(1)” Approach
Emphasize planning and process up front
• While simultaneously focusing on client needs
• And reducing the need for lots of rework
Conforms to good Engineering Practices
(1) Steve McConnell, After the Gold Rush. Redmond, WA. Microsoft Press, 1999.
An XP View of FDD
FDD #1 & #2
Work with domain experts to elicit requirements
Record (at least) in the form of an object model
• With Together® true round-trip engineering, this means real
source code
Confront riskier sections of domain with deeper coding
as required
Demands using your head, knowing when to stop, retrace steps, and go down new path
Re-architect as required to adapt to requirements
Fits in with XP philosophy
XP Basic Principles(1) & FDD
XP
Rapid Feedback
Tangible, working results,
testable, know if it works
Assume
Simplicity
Focus on big picture, detailed
view driven by client-valued
features, pragmatism rules
Frequent, fine-grained iteration
through reqts to coding and back
Incremental
Change
(1)
FDD
Beck, Kent. Extreme Programming Explained. Reading, MA. Addison Wesley Longman, 2000.
XP Basic Principles & FDD (ii)
XP
Embracing
Change
Quality Work
FDD
Work with running system
sooner, soliciting early client
feedback, encouraging future
feature discussions
Frequent, working results are
non-ambiguous. Razor sharp
reporting of being “done” leads
to habits of being successful.
Working in teams, peer reviews
help to ensure quality.
Typical Iterative Development
ENGINEERING
PRODUCTION
Requirements
Analysis
Design
Coding
Testing
Inception
Elaboration
Construction
Iterations (1-n)
Transition
Fitting UML into Development
Where/how does it fit into s/w development
practices
In modern software development methodologies, there
is a large degree of iterative development.
Productive modeling environments automatically
synchronize source code and class diagrams
This implies that you take successive passes at the
system, adding new information and capability along
the way.
Inception
Iterative
Elaboration
Iterative
Construction
Transition
The Utility of UML
Helps to promote standard communication
But does not supplant human contact!
Class Diagrams are very useful
Sequence and Activity help with dynamics
Use Cases
Useful if your organization has meaningful way to
apply them—no silver bullet
Can be replaced by other means of capturing
features/requirements
FDD Artifacts
FDD
#1 
FDD
#2 
FDD
#3 
S/W Artifacts
Mgt Artifacts
Breadth of App:
List of
Class Diagram,
hi-level
w/out
features
much content
Class Diagram
w/ more shape;
greater domain
understanding
People
Architects,
Domain
Experts
List of
prioritized
features
Architects,
Dom.Exp’ts,
Chief
Prog’rs (CP)
Initial Plan
plus
Reports
Assign CPs
choose class
“owners”
FDD Artifacts (ii)
FDD
#4 
FDD
#5 
S/W Artifacts
Model gets more
content. Detailed
design in code.
Add Seq. Diags.
Model gets
built, feature
by feature.
Promote to build,
release…
Mgt Artifacts
People
Detailed
Form
Models,
Feature
Seq. Diag.
Teams
As req’d
Running
Code &
Tests
Build
and
Test
FDD “Engineering” Outputs
FDD #1
Develop
an
Overall
Model
FDD #2
Build
a
Features
List
FDD #3
FDD #4
FDD #5
Plan
by
Feature
Design
by
Feature
Build
by
Feature
An object
model
(more shape
than content)
A
categorized
list of
features
A Development Plan
FDD “Construction” Outputs
FDD #1
Develop
an
Overall
Model
FDD #2
Build
a
Features
List
FDD #3
FDD #4
FDD #5
Plan
by
Feature
Design
by
Feature
Build
by
Feature
An object
model
(more shape
than content)
A
categorized
list of
features
A Development Plan
A design package (sequences)
(more content
than shape)
A clientvalued
function
FDD UML Extensions
Report progress to management and clients
Very high level (major feature sets)
JK
MS-R
<<major feature set>>
<<major feature set>>
Product Sale Management
Cash Sale Management
Selling Products
Creating Cash Sales
Shipping Products
Delivering Cash Sales
Delivering Products
Accepting Payments
Ordering Products
Creating Orders
(6)
22%
Dec 1999
(2)
27%
Dec 1999
• These reflect UML extensions
made in Together®
FDD UML Extensions (ii)
Chief
Programmer
Next level down (feature sets)
Marty
Mike
Ed
<<feature set>>
<<feature set>>
Selling Products
Shipping Products
Delivering Products
Calculate the Total (12)
of a Sale
UseCase1 (4)
UseCase1
(8)
Asses the Fulfillment27%
Timeliness of a Sale
UseCase2 22%
UseCase2
100%
# Features
Feature1
UseCase3
Dec 1999
Feature2
UseCase4
Jan 2000
Overdue!
Feature3
<<feature set>>
% Complete
UseCase3
(color too)
UseCase4Aug 1999
UseCase5
Feature4
UseCase6
Feature5
UseCase7
Feature6
UseCase8
Doug
Feature7
Freedy
Jon
UseCase1
<<feature set>>
Feature8
<<feature set>>
<<feature set>>
Ordering Products
Feature9
Accepting Payments
Creating Orders
UseCase1 (16)
Feature10
Feature1
(2)
UseCase1(1)
Feature2
22%
UseCase2
0%
UseCase3
Dec 2002
UseCase4
Jan 1999
%
Due Date
FDD UML Extensions (iii)
CP-1
Overall Status:
Work in progress
Attention (ie, Behind)
Completed
Making
Product
Assessments
(14)
Example:
Feature Set:
Making Product Assess’ts –
Work in Progress
Not yet started
Completion Percentage:
75%
(14) there are fourteen features that make
up this feature set
Progress bar
Completion Status:
Completed
MY Targeted Completion Month
CP-1 is the Chief Programmer’s initials
Dec 2001
75% Feature Set is 75% complete
Target is to complete in Dec 2001
FDD Sample Feature Sets
Product Sale Management (PS)
CP-1
CP-1
CP-3
CP-1
Selling
Products
Shipping
Products
Delivering
Products
Invoicing
Sales
(22)
(19)
(10)
(33)
99%
10%
30%
3%
Nov 2001
Dec 2001
Dec 2001
Dec 2001
CP-2
Setting up
Product
Agreements
(13)
CP-2
Inventory Mgmt (IM)
CP-2
CP-3
Opening
New
Accounts
(11)
Logging
Account
Transactions
(30)
Establishing
Storage Units
95%
100%
82%
Oct 2001
Oct 2001
Work In Progress
Dec 2001
Dec 2001
Evaluating
Account
Applications
(23)
KEY:
Making
Product
Assessments
(14)
75%
Customer A/C Mgmt (CA)
CP-2
CP-1
Nov 2001
Attention
CP-3
CP-3
Moving
Content
(26)
Accepting
Movement
Requests
(18)
100%
97%
82%
Nov 2001
Nov 2001
Completed
Progress Bar
(19)
Nov 2001
Not Started
Milestones
“Milestones must be concrete, specific, measurableevents defined with a knife-edge sharpness”
“A programmer will rarely lie about milestone
progress, if the milestone is so sharp he can’t
deceive himself”
“Getting the status is hard since subordinate
managers have every reason not to share it”
Fred Brooks
Milestones (ii)
Domain
Walkthrough
Design
Plan
Plan
Actual
1%
Actual
40%
Design
Inspection
Code
Plan
Plan
Actual
3%
Actual
45%
Code
Inspection
Promote to
Build
Plan
Plan
Actual
10%
Actual
1%
Assigning % permits accurate reporting
A feature that is still being coded is 44% complete
Domain walkthrough 1% + Design 40% + Design
inspection 3% = 44%
Milestones (iv)
The Plan and Actual dates are completion
dates
An entry in the actual column for a
milestone signifies that milestone has been
achieved
This triggers the percentage calculations for
that feature, its feature set and so on
Intervals aren’t recorded – but they could be
FDD Tracking
Granular level of a feature
with planning and
tracking properties used
to calculate %complete
<<feature>>
Accept cash payments
<<feature>>
Accept credit/debit payments
• These reflect UML extensions
made in Together®
FDD Plan View
FDD Feature View
FDD Weekly Summary
FDD Weekly Summary (ii)
FDD Trend Reporting
FDD’s Contribution to S/W
Project Success Factors*
Accurate s/w measurement
Tracks completion by feature
Use of estimating tools
Plan/estimate by feature
Continuous planning
Continuously adjust estimates if required
Formal progress reporting
Formal risk management
Granular and summary (roll-up)
reporting
Object model architecture (shape) is key
part of process
Yes, for modeling/building, FDD doesn’t
cover testing
Informal thru continuous integration
Automated config. control
Not the mission of FDD
<10% requirements creep
 Process works to minimize creep
Formal architecture planning
Formal development methods
Patterns of Software Systems Failure and Success (Jones 1996)
FDD’s Contribution (ii)
Formal design reviews
Part of the process, a milestone
Formal code inspections
Part of the process, a milestone
Formal testing
Automated design and specs
No. Relies partially on process to build
in quality and frequent builds to test
 Not part of FDD, but part of tool
Use of suitable languages
 Not part of FDD, but part of tool
Controlled and measured
complexity
Significant reuse
Part of process to glean granular enough
features and model to a sufficient depth
Informal thru architect
Formal database planning
Not the mission of FDD
Patterns of Software Systems Failure and Success (Jones 1996)
FDD’s Contribution (iii)
Realistic Schedules
 Plan/estimate by feature
Exec understanding of est.
FDD presents clear picture of needs,
should help ensure understanding
Part of the modeling process: involve
client early and often.
Not the mission of FDD
Cooperation with clients
Congruent Mgt. Goals
Team communications
Experienced Sr. Execs
Capable project management
Capable project staff
Use specialists
FDD process covers team collaboration
and radically improves communication
Not the mission of FDD
FDD should help to make project
managers more successful
 FDD team collaboration links lead
developers with junior developers
Not the mission of FDD
Patterns of Software Systems Failure and Success (Jones 1996)
Defect Removal Efficiency
80%—Formal structured peer reviews (e.g., Fagan
inspections) (1)
60%—Code walkthroughs (2)
36%—Integration test
"Formal design and code inspections have the
highest defect removal efficiency of any technique
yet noted, and average about twice as efficient as
most forms of testing." (3)
(1) US Army Information Systems Command, "Software Quality and Testing: What DoD Can Learn From Commercial Practices",
AIRMICS Report # ASQB-GI-92-012, 8/31/1992, p10
(2) Boehm, Barry, Industrial software metrics top 10 list, IEEE Software, Sept. 87
(3) Jones, Capers, Patterns of Software Systems Failure and Success, Thompson, 1996, p129
Further Info
Coad, De Luca, Lefebvre. Java Modeling in Color with
UML. Upper Saddle River, NJ. Prentice Hall, 1999.
Royce, Walker. Software Project Management.
McConnell , Steve. After the Gold Rush. Redmond, WA.
Microsoft Press, 1999.
Jones, Capers. Applied Software Measurement. McGrawHill, 1991.
Beck, Kent. Extreme Programming Explained. Reading,
MA. Addison Wesley Longman, 2000.
Many other assorted articles
Contact: Jon Kern (jk@TogetherSoft.com)
Download