10 Keys to Successful Software Projects: An Executive Guide



Similar documents
The 10 Most Important Ideas in Software Development

Lessons Learned in Software Project Outsourcing

10 Deadly Sins of Software Estimation

10 Deadly Sins of Software Estimation.

Moving from a Plan Driven Culture to Agile Development

Business Case for Better Software Practices

Introducing Agility into a Phase Gate Process

Software Development s Low Hanging Fruit.

Identifying Factors Affecting Software Development Cost

Software cost estimation. Predicting the resources required for a software development process

MTAT Software Economics. Lecture 5: Software Cost Estimation

Software Engineering. Dilbert on Project Planning. Overview CS / COE Reading: chapter 3 in textbook Requirements documents due 9/20

Chapter 23 Software Cost Estimation

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models

Three Things I Wish I Learned in School

The Enterprise Project Management Office

Managing Technical Debt

Lowering business costs: Mitigating risk in the software delivery lifecycle

Successful Projects Begin with Well-Defined Requirements

Software cost estimation

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

This material is excerpted from Software Estimation: Demystifying the Black Art by Steve McConnell (Redmond, Wa.: Microsoft Press).

10x Engineering Principles

Fundamentals of Measurements

CISC 322 Software Architecture

SOFTWARE PROCESS MODELS

Finally, Article 4, Creating the Project Plan describes how to use your insight into project cost and schedule to create a complete project plan.

SOFTWARE VALUE ENGINEERING IN DEVELOPMENT PROCESS

Managing Technical Debt

CUT COSTS, NOT PROJECTS

10 Keys to Successful Scrum Adoption

White Paper. Fundamentals of Performance Testing

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

Making A Case For Project Management

Five Things Every Software Executive Should Know About Scrum

Enterprise Data Governance

Software Project Management

Business Analysis Capability Assessment

Project Management and Scrum A Side by Side Comparison by Anne Loeser, October 2006

Improving Software Productivity with Agile Methodologies

Chapter 3: Project Cost Management

A Comparison between Five Models of Software Engineering

WBS, Estimation and Scheduling. Adapted from slides by John Musser

Cost Estimation Strategies COST ESTIMATION GUIDELINES

Process Improvement. From the Software Engineering Institute:

Module System Architecture Context

2. Analysis, Design and Implementation

Software Management by Numbers

Netstar Strategic Solutions Practice Development Methodology

Managing Successful Software Development Projects Mike Thibado 12/28/05

JOURNAL OF OBJECT TECHNOLOGY

ISO/IEC Software Product Quality Model

Essential Elements for Any Successful Project

4 Keys to Driving Results from Project Governance

Solution Overview Channel Management in Utilities

Software Development Life Cycle (SDLC)

Client Onboarding Process Reengineering: Performance Management of Client Onboarding Programs

Project Estimation Kostas Kavoussanakis, EPCC. Overview. 4Aim:

How To Improve Your Business Recipe Cards

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

(Refer Slide Time: 01:52)

Understanding the Financial Value of Data Quality Improvement

2. Analysis, Design and Implementation

Software Engineering. Reading. Effort estimation CS / COE Finish chapter 3 Start chapter 5

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Software Life Cycle Processes

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Lifecycle Models: Waterfall / Spiral / EVO

Business Analysis Essentials

Project Management Office Best Practices

Capability Maturity Model Integration (CMMI ) Overview

Agile Master Data Management A Better Approach than Trial and Error

The Phases of an Object-Oriented Application

Software Engineering. Objectives. Designing, building and maintaining large software systems

CALCULATING THE COSTS OF MANUAL REWRITES

THE 120VC PORTFOLIO MANAGEMENT MODEL

Project Management for Implementing the Smart Grid By Power System Engineering, Inc. Abstract PM Methodology Using a Repeatable Project Management

Application Outsourcing: The management challenge

Requirements Volatility in Software Development Process

Latest Trends in Testing. Ajay K Chhokra

SOFTWARE QUALITY IN 2002: A SURVEY OF THE STATE OF THE ART

What went wrong? Unsuccessful information technology projects

Implementing a Data Governance Initiative

Presented by Frank V. Payne, PMP

Agile Metrics - What You Need to, Want to, and Can Measure. June 9, 2014

How To Estimate A Project

Transcription:

10 Keys to Successful Software Projects: An Executive Guide 2000-2006 Construx Software Builders, Inc. All Rights Reserved. www.construx.com Background

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 3 Typical Project Outcomes 100% 90% Project Outcomes 1994-2004 Percentage 80% 70% 60% 50% 40% 30% 20% 10% 0% 1994 1996 1998 2000 2002 2004 Failed Late / Over Budget On Time / On Budget Source: Standish Group Chaos Report, 1994, 1996, 1998, 2000, 2002, 2004 Software Development Best Practices 4

Average Practice is Close to the Worst Practice Mean Mean % of Org s Expected Distribution Actual Distribution Effectiveness Software Development Best Practices 5 Productivity Varies Significantly 10:1 variations in productivity between different companies working in the same industries Productivity is a learned characteristic and can be changed Software Development Best Practices 6

Most Common Sources of Cancellations and Overruns 1. Ill-defined or changing requirements 2. Poor project planning/management 3. Uncontrolled quality problems 4. Unrealistic expectations/inaccurate estimates 5. Naive adoption of new technology Software Development Best Practices 7 10 Keys to Success

Key #1 Clear Vision Clear Vision Project teams work toward the goals you set for them Too many goals = no goals Good vision statement describes what to leave out prioritizes Product vision affects achievement of business goals Software Development Best Practices 10

Example: What kind of Rapid Development do you want? Speed oriented Schedule-risk oriented Visibility oriented Without clear vision you can end up with a project outcome completely counter to your goals Software Development Best Practices 11 Speed-Oriented Practices-- Better Best Case... 6 Months: Nominal Schedule Average Project Rapid Project Software Development Best Practices 12

Worse Worst Case 6 Months: Nominal Schedule Average Project Rapid Project Risk of Overrun Software Development Best Practices 13 Sometimes it s Justified (sometimes not) 6 Months: Nominal Schedule Average Project Rapid Project Risk of Overrun Competitor Software will release needs to be next version ready of their for the holiday productsales season Software Development Best Practices 14

Key #2 Stable, Complete, Written Requirements Requirements Requirements change is the most common software project risk Comprehensive, 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 16

Techniques for Defining Stable Requirements Requirements workshop User interface prototyping User interview Use cases User manual as spec Usability studies Incremental delivery Requirements reviews/inspections Software Development Best Practices 17 Key #3 Detailed User Interface Prototypes

User Interface Prototypes Addresses the most common project risk changing requirements Involves users with a hot medium Correlated with lower costs, shorter schedules, and higher user satisfaction Significant skill required to develop prototypes successfully Software Development Best Practices 19 Key #4 Effective Project Management

Project Management Poor planning/management is the second most common project risk Project planning/management is a high leverage area Some people don t appreciate the leverage of project management they ve never seen good project management! Software Development Best Practices 21 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 estimation Cost, effort & schedule computation Lifecycle selection QA planning Technical staffing Project tracking Risk management Data collection Software Development Best Practices 22

Key #5 Accurate Estimates Need for Accurate Estimates Unrealistic/unjustified expectations are a major cause of project problems State of the art is dramatically better than the state of the practice For example, the average project overruns its planned schedule by more than 100% (and many projects are much worse) Software Development Best Practices 24

Typical Estimation Effectiveness Over/Under Percentage in Effort Estimates 20% 0% -145% Without Historical Data Variance between -145% to +20% (Mostly Level 1 and 2) From 120 Projects in Boeing Information Systems Software Development Best Practices 25 Improved Estimation Over/Under Percentage in Effort Estimates 20% 0% -145% Without Historical Data Variance between -145% to +20% (Mostly Level 1 and 2) With Historical Data Variance between +20% to -20% (Level 3) From 120 Projects in Boeing Information Systems Software Development Best Practices 26

Improved Estimation 600% Project Performance Compared to Estimate Actual Results as a Percentage of Estimated Results 500% 400% 300% 200% 100% 0% 0 1 2 3 4 SW-CMM Level From a set of U.S. Air Force projects Software Development Best Practices 27 Effect of Estimation Accuracy Non-linear impact due to planning errors, upstream defects, high-risk practices Underestimation Cost Effort Schedule Linear impact due to Parkinson s Law Overestimation < 100% 100% >100% Target as a Percentage of Nominal Estimate Software Development Best Practices 28

Accurate Estimation Estimation is a specialized technical skill Treat estimation as a mini-project More on this topic momentarily Software Development Best Practices 29 Key #6 Two-Phase Budgeting

Cone of Uncertainty and Estimate Refinement Project Scope (effort, cost, or features) 4x 2x 1.5x 1.25x 1.0x 0.8x 0.67x 0.5x 0.25x Time Software Development Best Practices 31 Good and Bad Budgeting Project scope (effort, cost, features) Most estimates and budgets are created here 4x 2x 1.5x 1.25x 1.0x 0.8x 0.67x Reliable budgets aren t possible until here 0.5x 0.25x Time Software Development Best Practices 32

Two-Phase Budgeting Project scope (effort, cost, features) 4x Large, wholeproject Budget 2x Small exploratory 1.5x budget 1.25x 1.0x 0.8x 0.67x 0.5x 0.25x Time Software Development Best Practices 33 Benefits of 2-Phase Budgeting Delays commitment until time when a commitment can be meaningful Forces activities that should occur upstream actually to occur upstream Requirements, technical planning, quality planning, etc. Helps set realistic expectations for all project stakeholders Improves coordination with non-software groups Improves execution by putting plans on more informed basis Software Development Best Practices 34

Key #7 A Focus on Quality General Principle Defect creation is a function of effort Defect detection is a function of QA activities Goal is to minimize gap between defect insertion and defect detection/correction Cumulative Defects Risk of Extra Cost Typical Project Risk of Extra Cost Well-Run Project Time Defect creation Defect removal Time Extra Development Capacity Software Development Best Practices 36

Defect Cost Increase (DCI) Activity in which a Defect Is Introduced Requirements Average Cost to Correct Architecture Construction Requirements Architecture Construction System test Post-Release Activity in Which a Defect Is Detected Software Development Best Practices 37 One Solution: Fix Defects Earlier! Activity in which a Defect Is Introduced Requirements Fix Here Don t Wait to Fix Here Average Cost to Correct Architecture Construction Requirements Architecture Construction System test Post-Release Activity in Which a Defect Is Detected Software Development Best Practices 38

Another Solution: Reduce Defect Cost Increase! Activity in which a Defect Is Introduced Requirements Average Cost to Correct Architecture Construction Requirements Architecture Construction System test Post-Release Activity in Which a Defect Is Detected Software Development Best Practices 39 Where Costs Come From: Lifecycle Cost Profile Typical Project (Pathological Project) Relative Effort Advanced Project (Healthy Project) Requirements Architecture Detailed Design Construction Testing and Debugging Software Development Best Practices 40

Where Costs Come From: Lifecycle Cost Profile (cont.) Typical Project (Pathological Project) Relative Effort Advanced Project (Healthy Project) Unplanned rework Process overhead Requirements Architecture Detailed Design Construction Testing and Debugging 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 Software Development Best Practices 42

Key #8 Technology Expertise Technology Expertise Many projects suffer because of poor adoption of new technology New technology = high risk Golf analogy Technology as golf clubs Best practices as technique Expertise in technology matters; software engineering technique matters much more Software Development Best Practices 44

Key #9 Active Risk Management Software is Risky Business KPMG Study: 55% of runaway projects did no risk management 38% did some, but half of those didn t use their risk findings after the project was underway 7% didn t know whether they did risk management Total: About 80% of runaway projects did no meaningful risk management Software Development Best Practices 46

Role of Risk Management About as many projects fail as are delivered on time More than 50% of projects show their problems during initial development About 25% show their problems during initial planning Active risk management keeps small problems from turning into big, projectkilling problems Software Development Best Practices 47 Relationship to Business Risk Taking Perception is that high-energy companies take risks Reality is that most companies are beset by risks from all sides they aren t choosing which risks they take Key to success: Manage non-strategic risks so that you can take strategic risks Software Development Best Practices 48

Key #10 Remember, Software Is Created By Humans Cocomo II s View of Software Project Influences Product Complexity Analyst Capability (general) Programmer Capability (general) Time Constraint Personnel Continuity Multi-site Development Required Software Reliability Documentation Match to Lifecycle Needs Applications Experience Use of Software Tools Platform Volatility Storage Constraint 1.76 1.63 1.59 1.56 1.54 1.52 1.51 1.50 1.49 1.46 2.00 2.38 Process Maturity Language and Tools Experience Database Size Platform Experience Architecture and Risk Resolution Precedentedness Developed for Reuse Team Cohesion Development Flexibility 1.43 1.43 1.42 1.40 1.38 1.33 1.31 1.29 1.26 Software Development Best Practices 50

Importance of Human Influences Human Influences make a 14x difference in total project effort & cost, according to Cocomo II Capability factors alone make a 3.5x difference Experience factors alone make a 3.0x difference Consensus of studies is that similarlyexperienced developers vary by about 20x in productivity and quality of work Software Development Best Practices 51 Where do Variations Exist? Researchers have found 20:1 variations in: Coding speed Debugging speed Defect-finding speed Percentage of defects found Bad-fix injection rate Design quality Amount of code generated from a design Teamwork Etc. Software Development Best Practices 52

Some Implications Success of Google, Amazon, Microsoft, etc. Matching workers and workstyles Value of retention programs Importance of staff development Software Development Best Practices 53 Conclusion

Project Success Success = Planning * Execution Assign values between 0%-100% for Planning and Execution. Multiply to determine your chance of success. Software Development Best Practices 55 Contact Info Steve McConnell Construx Software 10900 NE 8 th Street, Suite 1350 Bellevue, WA 98005 (425) 636-0100 stevemcc@construx.com Software Development Best Practices 56

Training Consulting Tools sales@construx.com www.construx.com +1 (425) 636-0100