Cutter Consortium

Software Estimation -- A Wolf in Sheep's Clothing


Overview:

Why are software projects late? Why do they frequently cost much more than originally planned? In a recent Cutter survey, 40% of companies surveyed reported poor software schedule and budget estimation while only 14% reported good performance. What is it that the 14% do right (or are they just lucky?) and what is it that the 40% do wrong? (or are they unlucky? -- probably not!).

Like the proverbial wolf in sheep.s clothing software estimation is not always what it appears to be. Good software estimation is not simply about tools, techniques and processes. It is about truth in advertising and having the right mindset. Many software engineers start off by fooling themselves. They do it so well that they would most probably pass a rigorous polygraph test. Fred Brooks stated in his historic text, The Mythical Man Month, that programmers are notorious optimists. Brooks made his statement over 25 years ago and it is still true today.

Software cost estimation is first and foremost about getting the right attitude -- not just for the software developers but for senior management too. When we understand what can be done, when we recognize what has been done, when we understand what is being put before us, we can then successfully plan our business to make it more predictable.

There are software estimation methods, tools, and techniques many of which have been around for more than two decades. The problem, though, has been threefold: (1) the methods were often theoretic or academic and did not work well in the real world, (2) they needed to be tailored to the specific reality of each organization, and (3) the methods were in any case largely ignored in favor of gut feeling techniques.

Successful software organizations adapted the methods to suit their needs, created a framework that encouraged their use, and collected data to ensure continuous improvement. Of all these, the framework is the most important, for in software process, just like in dieting, self-discipline is rare. An organizational structure is necessary to promote, enforce, and assist in the application of the process (and the diet).

In the past three years software cost estimation has changed together with the changes in software development process. The trend is now toward simplification, agility, and lean methods. This is often accomplished through iterative spiral approaches. Software is developed in product-stages with an increasingly more functional system being released after each iteration.

The iterative approach is not suitable for all software projects, but the trend toward agility is becoming universal. Smaller software releases means that estimation is easier and overruns are less costly.

In concert with these recent changes, this is a good time to learn new software cost estimation approaches, methods, and techniques. At least those that have been shown to work. It is not really that difficult to move from the Cutter survey.s 40% class to the 14% class.

Workshop Objectives:

This workshop provides the knowledge and capabilities necessary to improve the performance of software cost estimation in development organizations. The workshop is provided in several formats ranging from a one day seminar to a full four days workshop, depending on the depth of detail and the range of topics covered.

The material covered by the workshop is tailored (from the list below) according to the composition of the audience and takes into account (i) the homogeneity of the participant group, (ii) the level of estimation process in use by the participant organization, (iii) the characteristics of the participants. organization, and (iv) the professional fields of the participants -- ranging from experienced software engineers to senior executives and managers who may not be software professionals.

Who Should Attend:

This workshop will be helpful for executives, managers, developers, and other members of technical organization and companies that are involved in software and technology development.

  • Software developers and project managers will benefit from the discussion of specific techniques, methods and approaches to software cost estimation.

  • Technology directors will benefit from a broad review and discussion of the establishment of a cultivating environment for successful software cost estimation and the encouragement of better estimation practices.

  • Senior executives and managers will benefit from an understanding of how their software developers generate estimates, what can reasonably be expected, what the estimates really mean, what are the warning signs of projects in trouble, and how to plan their business strategies based on reasonable expectations from their developers.

Workshop Overview:

Topics will be included from the following list in accordance with the length and format of the seminar/workshop (see section below on workshop formats).

  1. Introduction
    • Course overview
    • Software cost estimation . the problem
    • Examples
  2. The Organization Mindset
    • Setting the right mindset
    • Senior management.s role
    • The best culture for successful cost estimates
    • The cost of the wrong attitude
  3. Basics
    • Software cost estimation: a craft or a science?
    • Definition of the software estimation problem
    • Terminology and concepts
    • Elementary terms in statistics and probability
    • Built to fit
  4. Real Life Examples
    • The Denver airport baggage control system
    • The Lavi fighter plane
    • The Smart Terminal
    • The Brooks helicopter example
    • Other examples
  5. Software Estimation as Part of the Overall Development Process
    • Overview of the fundamental software development process
    • Requirements: estimating projects when requirements are known and when they are not known
    • Agile and lean methods
    • The spiral model and other iterative approaches
    • Change control and its impact on cost estimation
  6. Estimation Techniques
    • Preliminary estimates, targets, and ranges
    • Calibrating an estimate for your team and organization
    • Estimation by analogy
    • Estimation by expert judgment
    • Estimation by module breakdown
    • Estimation by function and feature points
    • Estimation by prototypes
    • Techniques (COCOMO, statistical methods, etc.)
  7. Estimation Tools
    • Overview of computer-based estimation tools
  8. Historical Data Collection and Analysis
    • Metrics
    • What to collect
  9. Keeping Estimates Current
    • Estimate refinement over the course of a project
    • Managing, monitoring and keeping estimates current
  10. Tailoring
    • Macro versus micro estimation
    • Adaptive parameters
    • Estimating small-team projects
    • Estimating maintenance projects
  11. Introducing New Methods Into Your Organization
    • Introduction of new estimation methods into the development organization
    • Organization structure
    • Managing expectations and "truth in advertising"
    • How to present and explain an estimate
    • Selling a true estimate to senior management
    • Understanding the business and marketing needs
    • Tradeoffs
    • Horse trading: estimation and negotiation
  12. Risk analysis and the Cost of Insurance
    • Risk analysis methods and techniques
    • Mitigation of risks and contingency plans
  13. Estimation Topics for Senior Management
    • Software terms and jargon
    • Estimates -- how they are made and what they mean
    • Questions: what you should ask
    • Software plans -- what is often missing?
    • Risk analysis -- what might go wrong and what you can do about it
    • What are the early warning signs of a software project in trouble?
    • Establishing the culture
  14. Software Development Productivity
    • Factors effecting software productivity
    • Software productivity and its effect on estimates
    • Team moral and team spirit and its effect on estimates
    • The importance of training
  15. Current Thinking and Writing on Software Cost Estimation
    • State of the art
    • Limits on estimation accuracy
    • Bohem, Lewis, Jones, & others
  16. In Class Individual and Team Exercises
    • Exercises throughout the workshop (for workshops of 2 days or more)

Other topics will be added as appropriate.

Workshop Formats:
  • Half-day seminar
    • Software cost estimation for senior executives
  • 1-day seminar
    • Refresher course for software developers and project managers
  • 1-day seminar
    • Introduction level -- general high-level concepts in software cost estimation
  • 1-day seminar
    • Selected topics in software cost estimation
  • 2-day workshop
    • Selected topics workshop with exercises, for software development professionals
  • 3-day workshop
    • In-depth workshop with exercises, for software development professionals
  • 4-day workshop
    • In-depth workshop with exercises, for software development professionals
    • Includes 1-day onsite review of organization.s projects
  • Onsite Follow-up
    • Follow-up to workshop. This includes a significant presence on-site to guide and mentor the introduction of improved software cost estimation, based on the topics in the workshop.
For more information on bringing this workshop to your organization, contact Dennis Crowley by phone at +1 781 641 5125, by fax at +1 781 648 1950, or by e-mail at sales@cutter.com.
Software Estimation -- A Wolf in Sheep's Clothing