Upload
vokhanh
View
215
Download
0
Embed Size (px)
Citation preview
10 Keys to Successful Software Projects:An Executive Guide
www.construx.com
Copyright Notice
These class materials are © 2000-2008 Construx Software Builders, Inc.
All Rights Reserved. No part of the contents of this seminar maybe reproduced or transmitted in any form or by any means withoutthe written permission of Construx Software Builders, Inc.
Background
“Software Development Best Practices” 4
State of the Art vs. State of the Practice
“The gap between the best software engineering practice and the average practice is very wide–perhaps wider than in any other engineering discipline.”– Fred Brooks
“Software Development Best Practices” 5
Typical Project Outcomes
Source: Standish Group Chaos Report, 1994, 1996, 1998, 2000, 2002, 2004
Project Outcomes 1994-2004
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
1994 1996 1998 2000 2002 2004
Perc
enta
ge
Failed
Late / OverBudgetOn Time / OnBudget
“Software Development Best Practices” 6
Average Practice is Close to the Worst Practice
Effectiveness
% ofOrg’s Expected Distribution
Mean
Actual Distribution
Mean
“Software Development Best Practices” 7
Productivity Varies Significantly
10:1 variations in productivity between different companies working in the same industriesProductivity is a learned characteristic and can be changed
“Software Development Best Practices” 8
Most Common Sources of Cancellations and Overruns
1. Ill-defined or changing requirements2. Poor project planning/management3. Uncontrolled quality problems4. Unrealistic expectations/inaccurate
estimates5. Naive adoption of new technology
10 Keys to Success
Key #1Clear Vision
“Software Development Best Practices” 11
Clear Vision
Project teams work toward the goals you set for themToo many goals = no goalsGood vision statement describes what to leave out—prioritizesProduct vision affects achievement of business goals
“Software Development Best Practices” 12
Example:
What kind of Rapid Development do you want?
Speed orientedSchedule-risk orientedVisibility oriented
Without clear vision you can end up with a project outcome completely counter to your goals
“Software Development Best Practices” 13
Speed-Oriented Practices--Better Best Case ...
6 Months: Nominal Schedule
AverageProject
“Rapid”Project
“Software Development Best Practices” 14
…Worse Worst Case
6 Months: Nominal Schedule
Risk of Overrun
AverageProject
“Rapid”Project
“Software Development Best Practices” 15
Sometimes it’s Justified (sometimes not)
6 Months: Nominal Schedule
Risk of Overrun
AverageProject
“Rapid”Project
Competitor will release next version of their
product
Software needs to be ready for the holiday
sales season
Key #2Stable, Complete, Written Requirements
“Software Development Best Practices” 17
Requirements
Requirements change is the most common software project riskComprehensive, 100% stable requirements are usually not possible, but...Most requirements changes arise from requirements that were incompletely defined in the first place, not “changing markets” or other similar reasons
“Software Development Best Practices” 18
Techniques for Defining Stable Requirements
Requirements workshop User interface prototypingUser interviewUse casesUser manual as specUsability studiesIncremental deliveryRequirements reviews/inspections
Key #3Detailed User Interface Prototypes
“Software Development Best Practices” 20
User Interface Prototypes
Addresses the most common project risk–changing requirementsInvolves users with a “hot” mediumCorrelated with lower costs, shorter schedules, and higher user satisfactionSignificant skill required to develop prototypes successfully
Key #4Effective Project Management
“Software Development Best Practices” 22
Project Management
Poor planning/management is the second most common project riskProject planning/management is a high leverage areaSome people don’t appreciate the leverage of project management—they’ve never seen good project management!
“Software Development Best Practices” 23
Project Manager Responsibilities
Where do most project managers come from?What are they trained to do?Good software management require significant software-specific expertise
Scope estimationCost, effort & schedule computationLifecycle selectionQA planning
Technical staffingProject tracking Risk managementData collection
Key #5Accurate Estimates
“Software Development Best Practices” 25
Need for Accurate Estimates
Unrealistic/unjustified expectations are a major cause of project problemsState of the art is dramatically better than the state of the practiceFor example, the average project overruns its planned schedule by more than 100% (and many projects are much worse)
“Software Development Best Practices” 26
Typical Estimation Effectiveness
Without Historical Data Variance between -145% to +20%
(Mostly Level 1 and 2)
20%
0%
-145%
Ove
r/Und
er P
erce
ntag
ein
Effo
rt E
stim
ates
From 120 Projects in Boeing Information Systems
“Software Development Best Practices” 27
Improved Estimation
From 120 Projects in Boeing Information Systems
Without Historical Data Variance between -145% to +20%
(Mostly Level 1 and 2)
With Historical Data Variance between +20% to -20%
(Level 3)
20%
0%
-145%
Ove
r/Und
er P
erce
ntag
ein
Effo
rt E
stim
ates
“Software Development Best Practices” 28
Improved Estimation
From a set of U.S. Air Force projects
Project Performance Compared to Estimate
0%
100%
200%
300%
400%
500%
600%
0 1 2 3 4
SW-CMM Level
Actu
al R
esul
ts a
s a
Per
cent
age
of
Estim
ated
Res
ults
“Software Development Best Practices” 29
Effect of Estimation Accuracy
Linear impact due to Parkinson’s Law
Non-linear impact due to planning errors, upstream defects, high-risk practices
100% >100%< 100%
Target as a Percentage of Nominal Estimate
OverestimationUnderestimation
CostEffort
Schedule
“Software Development Best Practices” 30
Accurate Estimation
Estimation is a specialized technical skillTreat estimation as a mini-projectMore on this topic momentarily …
Key #6Two-Phase Budgeting
“Software Development Best Practices” 32
Product Design
Detailed Design
Detailed Requirements
Product Definition
Cone of Uncertainty and Estimate Refinement
0.67x
0.8x1.0x
0.5x
0.25x
2x
4x
1.5x
1.25x
Project Scope(effort, cost, or features)
Time
“Software Development Best Practices” 33
Good and Bad Budgeting
0.67x
0.8x1.0x
0.5x
0.25x
2x
4x
1.5x
1.25x
Project scope(effort, cost, features)
Time
Most estimates
and budgets are created
here
Reliable budgets
aren’t possible until
here
“Software Development Best Practices” 34
Two-Phase Budgeting
0.67x
0.8x1.0x
0.5x
0.25x
2x
4x
1.5x
1.25x
Project scope(effort, cost, features)
Time
Large, whole-project Budget
Small exploratory
budget
“Software Development Best Practices” 35
Benefits of 2-Phase Budgeting
Delays commitment until time when a commitment can be meaningfulForces activities that should occur upstream actually to occur upstream
Requirements, technical planning, quality planning, etc.
Helps set realistic expectations for all project stakeholdersImproves coordination with non-software groupsImproves execution by putting plans on more informed basis
Key #7A Focus on Quality
“Software Development Best Practices” 37
General Principle
Defect creation is a function of effortDefect detection is a function of QA activitiesGoal is to minimize gap between defect insertion and defect detection/correction
Time
CumulativeDefects
Risk of Extra Cost
Defect creationDefect removal
Typical Project Risk of Extra Cost
TimeExtra
Development Capacity
Well-Run Project
“Software Development Best Practices” 38
Defect Cost Increase (DCI)
Requirements
Architecture
Construction
System testRequirements Architecture Construction Post-Release
AverageCost toCorrect
Activity in which aDefect IsIntroduced
Activity in Which a Defect Is Detected
“Software Development Best Practices” 39
One Solution:
Fix Defects Earlier!
Requirements
Architecture
Construction
System testRequirements Architecture Construction Post-Release
AverageCost toCorrect
Activity in which aDefect IsIntroduced
Activity in Which a Defect Is Detected
Fix Here Don’t Wait to Fix Here
“Software Development Best Practices” 40
Another Solution:Reduce Defect Cost Increase!
Requirements
Architecture
Construction
System testRequirements Architecture Construction Post-Release
AverageCost toCorrect
Activity in which aDefect IsIntroduced
Activity in Which a Defect Is Detected
“Software Development Best Practices” 41
Why Focus on Quality?
For most projects, unplanned defect correction work is the largest cost driver (40-80% of total)Can focus on quality for sake of economics (as above)Can focus on quality for sake of quality (not needed nearly as often)Quality must be planned into the project; it can’t just be tacked onto the end
Key #8Technology Expertise
“Software Development Best Practices” 43
Technology Expertise
Many projects suffer because of poor adoption of new technology “New technology” = high riskGolf analogy
Technology as golf clubsBest practices as technique
Expertise in technology matters; software engineering technique matters much more
Key #9Active Risk Management
“Software Development Best Practices” 45
Role of Risk Management
About as many projects fail as are delivered on timeMore than 50% of projects show their problems during initial developmentAbout 25% show their problems during initial planningActive risk management keeps small problems from turning into big, project-killing problems
“Software Development Best Practices” 46
Relationship to Business Risk Taking
Perception is that high-energy companies take risksReality is that most companies are beset by risks from all sides—they aren’t choosing which risks they takeKey to success: Manage non-strategic risks so that you can take strategic risks
Key #10Remember, Software Is Created By Humans
“Software Development Best Practices” 48
Development FlexibilityTeam Cohesion
Developed for ReusePrecedentedness
Architecture and Risk ResolutionPlatform Experience
Database SizeLanguage and Tools Experience
Process Maturity
Cocomo II’s View of Software Project Influences
1.26
1.29
1.31
1.33
1.38
1.40
1.42
1.43
1.43
1.46
1.49
1.50
1.51
1.52
1.54
1.56
1.59
1.63
1.76
2.00
2.38
Storage ConstraintPlatform Volatility
Use of Software ToolsApplications Experience
Documentation Match to Lifecycle NeedsRequired Software Reliability
Multi-site DevelopmentPersonnel Continuity
Time ConstraintProgrammer Capability (general)
Analyst Capability (general)Product Complexity
“Software Development Best Practices” 49
Importance of Human Influences
Human Influences make a 14x difference in total project effort & cost, according to Cocomo IICapability factors alone make a 3.5x differenceExperience factors alone make a 3.0x differenceConsensus of studies is that similarly-experienced developers vary by about 20x in productivity and quality of work
“Software Development Best Practices” 50
Where do Variations Exist?
Researchers have found 20:1 variations in:Coding speedDebugging speedDefect-finding speedPercentage of defects foundBad-fix injection rateDesign qualityAmount of code generated from a designTeamworkEtc.
“Software Development Best Practices” 51
Some Implications
Success of Google, Amazon, Microsoft, etc.Matching workers and workstylesValue of retention programsImportance of staff development
Conclusion
“Software Development Best Practices” 53
Project Success
Success = Planning * Execution
Assign values between 0%-100% for Planning and Execution. Multiply to determine your chance of success.
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].
Seminar Schedule: www.construx.com/calendar
10900 NE 8th Street, Suite 1350Bellevue, WA 98004+1 (866) 296-6300www.construx.com