10 Keys to Successful Software Projects

50
10 Keys to Successful 10 Keys to Successful Software Projects Software Projects An Executive Guide An Executive Guide © 2000 Construx Software Builders, Inc. © 2000 Construx Software Builders, Inc. All Rights Reserved. All Rights Reserved. www. www. construx construx .com .com Construx Construx Del ivering Software Project Success Del ivering Software Project Success

description

Good book for project management

Transcript of 10 Keys to Successful Software Projects

Page 1: 10 Keys to Successful Software Projects

10 Keys to Successful10 Keys to SuccessfulSoftware ProjectsSoftware ProjectsAn Executive GuideAn Executive Guide

© 2000 Construx Software Builders, Inc.© 2000 Construx Software Builders, Inc.All Rights Reserved.All Rights Reserved.

www.www.construxconstrux.com.com

ConstruxConstruxD elivering Software Project SuccessD elivering Software Project Success

Page 2: 10 Keys to Successful Software Projects

BackgroundBackground

Page 3: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 3

State of the Art State of the Art vsvs. State of. State ofthe Practicethe Practice

“The gap between the best software“The gap between the best softwareengineering practice and the averageengineering practice and the averagepractice is very wide–perhaps wider thanpractice is very wide–perhaps wider thanin any other engineering discipline.”in any other engineering discipline.”– Fred Brooks– Fred Brooks

Page 4: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 4

Productivity VariesProductivity VariesSignificantlySignificantly

vv 10:1 variations in productivity between10:1 variations in productivity betweendifferent companies working in the samedifferent companies working in the sameindustriesindustries

vv Productivity is a learned characteristicProductivity is a learned characteristicand can be changedand can be changed

Page 5: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 5

Typical Project OutcomesTypical Project Outcomes

Cancelled29%

On-Time26%

21-50% Late8%

51-100% Late9%

101-200% Late16%

More than 200% Late

6%

Less than 20% Late

6%

Source: Standish Group Survey, 1999 (from a survey of 8000 business systems projects)

Page 6: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 6

Most Common Sources ofMost Common Sources ofCancellations and OverrunsCancellations and Overruns

1. Ill-defined or changing requirements1. Ill-defined or changing requirements2. Poor project planning/management2. Poor project planning/management3. Uncontrolled quality problems3. Uncontrolled quality problems4. Unrealistic expectations/inaccurate4. Unrealistic expectations/inaccurate

estimatesestimates5. Naive adoption of new technology5. Naive adoption of new technology

Page 7: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 7

Project SuccessProject Success

Success = Planning * ExecutionSuccess = Planning * Execution

Assign values between 0%-100% forAssign values between 0%-100% forPlanning Planning and and Execution. Execution. Multiply toMultiply todetermine your chance of success.determine your chance of success.

Page 8: 10 Keys to Successful Software Projects

PlanningPlanning

Page 9: 10 Keys to Successful Software Projects

Key #1Key #1Clear VisionClear Vision

Page 10: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 10

Clear VisionClear Vision

vv Project teams work toward the goals youProject teams work toward the goals youset for themset for them

vv Too many goals = no goalsToo many goals = no goalsvv Good vision statement describes Good vision statement describes what towhat to

leave outleave out— prioritizes— prioritizesvv Product vision affects achievement ofProduct vision affects achievement of

business goalsbusiness goals

Page 11: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 11

Example:Example:

vv What kind of Rapid Development do youWhat kind of Rapid Development do youwant?want?uu Speed orientedSpeed orienteduu Schedule-risk orientedSchedule-risk orienteduu Visibility orientedVisibility oriented

vv Without clear vision you can end up with aWithout clear vision you can end up with aproject outcome completely counter toproject outcome completely counter toyour goalsyour goals

Page 12: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 12

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

6 Months: Nominal Schedule

AverageProject

“Rapid”Project

Page 13: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 13

… Worse Worst Case… Worse Worst Case

6 Months: Nominal Schedule

Risk of Overrun

AverageProject

“Rapid”Project

Page 14: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 14

Sometimes it’s JustifiedSometimes it’s Justified(sometimes not)(sometimes not)

6 Months: Nominal Schedule

Competitor will releasenext version of their

product

Risk of Overrun

AverageProject

“Rapid”Project

Page 15: 10 Keys to Successful Software Projects

Key #2Key #2Stable, Complete,Stable, Complete,

Written RequirementsWritten Requirements

Page 16: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 16

RequirementsRequirements

vv Requirements change is the mostRequirements change is the mostcommon software project riskcommon software project risk

vv Comprehensive, 100% stableComprehensive, 100% stablerequirements are usually not possible,requirements are usually not possible,but...but...

vv Most requirements changes arise fromMost requirements changes arise fromrequirements that were incompletelyrequirements that were incompletelydefined in the first place, not “changingdefined in the first place, not “changingmarkets” or other similar reasonsmarkets” or other similar reasons

Page 17: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 17

Techniques for DefiningTechniques for DefiningStable RequirementsStable Requirements

vv Requirements workshopRequirements workshopvv User interface prototypingUser interface prototypingvv User interviewUser interviewvv Use casesUse casesvv User manual as specUser manual as specvv Usability studiesUsability studiesvv Incremental deliveryIncremental deliveryvv Requirements reviews/inspectionsRequirements reviews/inspections

Page 18: 10 Keys to Successful Software Projects

Key #3Key #3Detailed User InterfaceDetailed User Interface

PrototypesPrototypes

Page 19: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 19

User Interface PrototypesUser Interface Prototypes

vv Addresses the most common projectAddresses the most common projectrisk–changing requirementsrisk–changing requirements

vv Involves users with a “hot” mediumInvolves users with a “hot” mediumvv Correlated with lower costs, shorterCorrelated with lower costs, shorter

schedules, and higher user satisfactionschedules, and higher user satisfactionvv Significant skill required to developSignificant skill required to develop

prototypes successfullyprototypes successfully

Page 20: 10 Keys to Successful Software Projects

Key #4Key #4Effective ProjectEffective Project

ManagementManagement

Page 21: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 21

Project ManagementProject Management

vv Poor planning/management is the secondPoor planning/management is the secondmost common project riskmost common project risk

vv Project planning/management is a highProject planning/management is a highleverage arealeverage area

vv Some people don’t appreciate the leverageSome people don’t appreciate the leverageof project management— they’ve neverof project management— they’ve neverseen seen good good project management!project management!

Page 22: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 22

Project ManagerProject ManagerResponsibilitiesResponsibilities

vv Where do most project managers come from?Where do most project managers come from?vv What are they trained to do?What are they trained to do?vv Good software management requireGood software management require

significant software-specific expertisesignificant software-specific expertiseuu Scope estimationScope estimationuu Cost, effort &Cost, effort &

schedule computationschedule computationuu Lifecycle selectionLifecycle selectionuu QA planningQA planning

uu Technical staffingTechnical staffinguu Project trackingProject trackinguu Risk managementRisk managementuu Data collectionData collection

Page 23: 10 Keys to Successful Software Projects

Key #5Key #5Accurate EstimatesAccurate Estimates

Page 24: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 24

Need for Accurate EstimatesNeed for Accurate Estimates

vv Unrealistic/unjustified expectations are aUnrealistic/unjustified expectations are amajor cause of project problemsmajor cause of project problems

vv State of the art is dramatically better thanState of the art is dramatically better thanthe state of the practicethe state of the practice

vv For example, the average project overrunsFor example, the average project overrunsits planned schedule by more than 100%its planned schedule by more than 100%(and many projects are much worse)(and many projects are much worse)

Page 25: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 25

Typical EstimationTypical EstimationEffectivenessEffectiveness

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 26: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 26

Improved EstimationImproved 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 27: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 27

Improved EstimationImproved 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

Act

ual R

esul

ts a

s a

Per

cent

age

of

Est

imat

ed R

esul

ts

Page 28: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 28

Improved EstimationImproved 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

Act

ual R

esul

ts a

s a

Per

cent

age

of

Est

imat

ed R

esul

ts

Page 29: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 29

Improved EstimationImproved 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

Act

ual R

esul

ts a

s a

Per

cent

age

of

Est

imat

ed R

esul

ts

Page 30: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 30

Effect of EstimationEffect of EstimationAccuracyAccuracy

100% >100%< 100%

Linear impact due toParkinson’s Law

Non-linear impact dueto planning errors,upstream defects,high-risk practices

Target as a Percentage of Nominal Estimate

OverestimationUnderestimation

CostEffort

Schedule

Page 31: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 31

Accurate EstimationAccurate Estimation

vv Estimation is a specialized technical skillEstimation is a specialized technical skillvv Treat estimation as a mini-projectTreat estimation as a mini-projectvv Plan to Plan to reestimate reestimate periodicallyperiodically

Page 32: 10 Keys to Successful Software Projects

ExecutionExecution

Page 33: 10 Keys to Successful Software Projects

Key #6Key #6Two-Phase BudgetingTwo-Phase Budgeting

Page 34: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 34

0.67x

0.8x1.0x

0.5x

0.25x

2x

4x

1.5x

1.25x

Project cost(effort and size)

Time

Estimate RefinementEstimate Refinement

Page 35: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 35

0.67x

0.8x1.0x

0.5x

0.25x

2x

4x

1.5x

1.25x

Project cost(effort and size)

Time

Two-Phase Estimation andTwo-Phase Estimation andBudgetingBudgeting

Typical time thatcommitments aremade

Time that commitmentsshould be made

VS.

Page 36: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 36

BenefitsBenefits

vv Delays commitment until time when aDelays commitment until time when acommitment can be meaningfulcommitment can be meaningful

vv Forces activities that should occur upstreamForces activities that should occur upstreamactually to occur upstreamactually to occur upstreamuu Requirements, technical planning, qualityRequirements, technical planning, quality

planning, etc.planning, etc.vv Helps set realistic expectations for all projectHelps set realistic expectations for all project

stakeholdersstakeholdersvv Improves coordination with non-software groupsImproves coordination with non-software groupsvv Improves execution by putting plans on moreImproves execution by putting plans on more

informed basisinformed basis

Page 37: 10 Keys to Successful Software Projects

Key #7Key #7A Focus on QualityA Focus on Quality

Page 38: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 38

Defect Costs Increase theDefect Costs Increase theLonger Defects Stay in ProcessLonger Defects Stay in Process

Phase That aDefect Is Created

Cost toCorrect

Phase That a Defect Is Corrected

Requirements

Architecture

Detailed design

Construction

Requirements Architecture Detaileddesign

Construction Release

50-200X

50-200X

1X

1X

Page 39: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 39

Fixing Upstream DefectsFixing Upstream DefectsUpstream is High LeverageUpstream is High Leverage

$QA Late in the Project

QA Early in the Project

Page 40: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 40

Phase That aDefect Is Created

Cost toCorrect

Phase That a Defect Is Corrected

Requirements

Architecture

Detailed design

Construction

Requirements Architecture Detaileddesign

Construction Release

50-200X

50-200X

1X

1X

Fix More Defects Earlier!Fix More Defects Earlier!

Fix HereNot Here

Page 41: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 41

Why Focus on Quality?Why Focus on Quality?

vv For most projects, unplanned defectFor most projects, unplanned defectcorrection work is the largest cost drivercorrection work is the largest cost driver(40-80% of total)(40-80% of total)

vv Can focus on quality for sake ofCan focus on quality for sake ofeconomics (as above)economics (as above)

vv Can focus on quality for sake of qualityCan focus on quality for sake of quality(not needed nearly as often)(not needed nearly as often)

vv Quality must be planned into the project; itQuality must be planned into the project; itcancan’’t just be tacked onto the endt just be tacked onto the end

Page 42: 10 Keys to Successful Software Projects

Key #8Key #8TechnologyTechnologyExpertiseExpertise

Page 43: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 43

Technology ExpertiseTechnology Expertise

vv Many projects suffer because of poorMany projects suffer because of pooradoption of new technologyadoption of new technology

vv “New technology” = high risk“New technology” = high riskvv Golf analogyGolf analogy

uu Technology as golf clubsTechnology as golf clubsuu Best practices as techniqueBest practices as technique

vv Expertise in technology matters;Expertise in technology matters;software engineering technique matterssoftware engineering technique mattersmuch moremuch more

Page 44: 10 Keys to Successful Software Projects

Key #9Key #9Active Risk ManagementActive Risk Management

Page 45: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 45

Software is Risky BusinessSoftware is Risky Business

vv KPMG Study:KPMG Study:uu 55% of runaway projects did no risk55% of runaway projects did no risk

managementmanagementuu 38% did some, but half of those didn’t use their38% did some, but half of those didn’t use their

risk findings after the project was underwayrisk findings after the project was underwayuu 7% didn’t know whether they did risk7% didn’t know whether they did risk

managementmanagement

vv Total: About 80% of runaway projects didTotal: About 80% of runaway projects didno meaningful risk managementno meaningful risk management

Page 46: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 46

Role of Risk ManagementRole of Risk Management

vv About as many projects fail as areAbout as many projects fail as aredelivered on timedelivered on time

vv More than 50% of projects show theirMore than 50% of projects show theirproblems during initial developmentproblems during initial development

vv About 25% show their problems duringAbout 25% show their problems duringinitial planninginitial planning

vv Active risk management keeps smallActive risk management keeps smallproblems from turning into big, project-problems from turning into big, project-killing problemskilling problems

Page 47: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 47

Relationship to BusinessRelationship to BusinessRisk TakingRisk Taking

vv Perception is that high energy companiesPerception is that high energy companiestake riskstake risks

vv Reality is that most companies are besetReality is that most companies are besetby risks from all sides— they aren’tby risks from all sides— they aren’tchoosing choosing which risks they takewhich risks they take

vv Key to success: Manage non-strategicKey to success: Manage non-strategicrisks so that you can take strategic risksrisks so that you can take strategic risks

Page 48: 10 Keys to Successful Software Projects

Key #10Key #10Do the Right ThingDo the Right Thing

Page 49: 10 Keys to Successful Software Projects

Construx Software (www.construx.com) 49

Key Elements of ExecutionKey Elements of Execution

vv Take care of your peopleTake care of your peopleuu StaffingStaffinguu TrainingTraininguu Motivation/moraleMotivation/moraleuu Work environmentWork environment

vv Follow the planFollow the planvv It works!It works!

Page 50: 10 Keys to Successful Software Projects

Contact InformationContact InformationServicesv Custom Software

Solutionsv Consultingv Seminars

ConstruxConstruxD elivering Softw are Proje ct SuccessD elivering Softw are Proje ct Success

Software Resourcesv [email protected] www.construx.com