54
10 Keys to Successful Software Projects: An Executive Guide www.construx.com

10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

  • Upload
    vokhanh

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

10 Keys to Successful Software Projects:An Executive Guide

www.construx.com

Page 2: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

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.

Page 3: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

Background

Page 4: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 5: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 6: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“Software Development Best Practices” 6

Average Practice is Close to the Worst Practice

Effectiveness

% ofOrg’s Expected Distribution

Mean

Actual Distribution

Mean

Page 7: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 8: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 9: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

10 Keys to Success

Page 10: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

Key #1Clear Vision

Page 11: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 12: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 13: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“Software Development Best Practices” 13

Speed-Oriented Practices--Better Best Case ...

6 Months: Nominal Schedule

AverageProject

“Rapid”Project

Page 14: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“Software Development Best Practices” 14

…Worse Worst Case

6 Months: Nominal Schedule

Risk of Overrun

AverageProject

“Rapid”Project

Page 15: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 16: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

Key #2Stable, Complete, Written Requirements

Page 17: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 18: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“Software Development Best Practices” 18

Techniques for Defining Stable Requirements

Requirements workshop User interface prototypingUser interviewUse casesUser manual as specUsability studiesIncremental deliveryRequirements reviews/inspections

Page 19: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

Key #3Detailed User Interface Prototypes

Page 20: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 21: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

Key #4Effective Project Management

Page 22: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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!

Page 23: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 24: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

Key #5Accurate Estimates

Page 25: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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)

Page 26: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 27: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 28: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 29: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 30: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“Software Development Best Practices” 30

Accurate Estimation

Estimation is a specialized technical skillTreat estimation as a mini-projectMore on this topic momentarily …

Page 31: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

Key #6Two-Phase Budgeting

Page 32: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 33: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 34: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 35: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 36: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

Key #7A Focus on Quality

Page 37: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 38: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 39: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 40: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 41: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 42: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

Key #8Technology Expertise

Page 43: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 44: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

Key #9Active Risk Management

Page 45: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 46: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 47: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

Key #10Remember, Software Is Created By Humans

Page 48: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 49: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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

Page 50: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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.

Page 51: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“Software Development Best Practices” 51

Some Implications

Success of Google, Amazon, Microsoft, etc.Matching workers and workstylesValue of retention programsImportance of staff development

Page 52: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

Conclusion

Page 53: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

“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.

Page 54: 10 Keys to Successful Software Projects: An Executive · PDF file10 Keys to Successful Software Projects: ... No part of the contents of this seminar may ... Cocomo II’s View of

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