I work in a domain where engineered systems are developed for complex software-intensive system of systems. These systems are engineered with a variety of development methods. Ranging from traditional to agile and combinations in between. These systems are developed for external and internal customers. Some are products in their own right, some are embedded in larger missions.

In all cases, we start our work with ...

Risk Management is How Adults Manage Projects - Tim Lister

There is a discussion of the conjecture that estimates are a waste, estimates can't be done, estimates are evil, estimates must be stopped immediately. This would be like saying, risk management is a waste, control system engineering is a waste, thermal analysis of the computer system is a waste, assessment of the reliability, repairability, survivability - all the ...illities are a waste.

In our domain of engineered systems, there is a broad range of problems, complex issues, approaches to solving problems.

This is a familiar example of that range...

To be informed how to estimate in this broad range of domains, problems, and impacts — education, experience, and skill are needed. This usually starts with education. Mine is in hard science and systems engineering. Some colleagues have engineering or finance educations. During this education process, we all have encountered texts that have laid out the principles and processes needed to do our job and deliver the needed capabilities for the needed cost on the needed date to accomplish the needed mission.

Through this education process and the hands-on experiences that followed, we all learned an Immutable Principle

All project work operates in the presence of Uncertainty. This uncertainty comes in two forms. (1) Epistemic Uncertainty from probabilistic events. This uncertainty creates risk, which can be reduced through specific actions. (2) Aleatory Uncertainty from statistical naturally occurring processes. This uncertainty creates risk that cannot be reduced, irreducible, and can only be handled with margin. Cost margin, schedule margin, and technical margin. No credible decision can be made in the presence of uncertainty without estimating the cost, schedule, and technical performance of that decision.

Here are a few texts that have served us well in identifying, assessing, and managing the uncertainties and the risks that's created.

Let's start with the core issue on all software development projects.

We need to make decisions in the presence of uncertainty.

Here's a book that shows how to do that no matter the domain.

Decision making is hard and occurs not when you already know what to do, but when you don't know what to do.

In order to draw any credible conclusion from data, we need to apply descriptive statistics to that data.

A common error is to collect a set of anecdotal data that is not statistically credible. To draw any logical conclusion from data, we need to make assumptions about the chances (probabilities) of obtaining different data from the same conditions. The totality of these assumptions is the probability model of the data.

Without this probability model of what should be and what could be the outcome, the result is simply anecdotal with no supporting evidence.

All engineering courses, including software development in Computer Science courses, is based on probability and statistics at some level.

Complexity and precision assessments are needed when making decisions that create risk for these systems. This precision is described by the interrelationships between the factors involved in the processes themselves and the behavior that results from these interactions.

Randomness is an Empirical phenomenon characterized by the property that the quantities do not have predictable outcomes, instead, have a statistical regularity associated with possible outcomes.

To make decisions in these conditions, estimates are required.

Two key features of project success are managing cost to achieve efficiencies and creating and enhancing value produced by the project or product. These enable project stakeholders to understand the activities and resources required to meet the project goals and expenditures necessary to satisfactorily complete the project.

This book studied 300 large firms 65% hardware/software projects were behind schedule, over budget, or failed to deliver expected performance.

The research shows the key root cause is the lack of integrated cost and schedule management and the estimating processes associated with the management of those project elements.

Probability and Statistics is the basis of making decisions in the presence of uncertainty.

Probability is the study of randomness. Statistics tells us how to make informed judgments and decisions in the presence of that randomness.

Both probability and statistics are needed to make decisions. These decisions are based then on making estimates for the outcomes from the probabilistic and statistical model of the processes under management.

Probability allows us to quantify the strength (confidence) of a conclusion.

Inferential statistics allow us to draw conclusions about a population making use of probability.

In project management, these populations come from other projects we'd like to make inferences about, given data, probability, and statistics from past projects or models of projects.

Producing products or the outcomes of projects with needed quality, for the needed cost, at the needed time involves making decisions in the presence of uncertainties of the behaviors of the processes used to deliver the outcomes.

This book describes how to manage these processes by:

Stating the problem

Collecting and analyzing the data

Interpreting the data and making decisions

Implementing and verifying the decision

Planning the next actions

Identifying, measuring, and quantifying uncertainty is the basis of good decision making.

Uncertainty loosely means when the results, outcomes, and nearest and remote future is not completely determined, and the development of products or projects depends on a number of factors and many times just in pure chance.

To make decisions in the presence of these uncertainties we need to estimate the probabilities of a future event or the statistical behavior of naturally variable processes.

In both cases, we need to make estimates about the impacts of the probability of impact or the outcomes from naturally occurring statistical processes.

This book provides a calculus-based introduction to probability and statistics. It starts with defining events and how they are represented.

Random variables are introduced and the relationship between probability functions and distribution functions form the basis of reducible uncertainty (probability) and irreducible uncertainty (distributions).

Estimating the behaviors described by the probability and distributions is made with examples that are applicable to estimates of software project properties.

Along with that, sample size discussion is important for creating estimates, since many of the anecdotes of #Noestiimates advocates come from small samples that are not statistically credible.

This book provides a clear, complete understanding of how to estimate software costs, schedule, and quality using real-world information.

This includes planning for and execution the project by phase and activity level cost estimates. How to estimate regression, components, integration, and stress tests for the software. How to compensate for inaccuracies in data collection, calculation, and analysis.

How to test the design principles of operational characteristics of the product using prototyping. How to handle configuration change, research, quality and documentation costs.

Software projects are often late and over budget leading to major problems for customers. There is a serious issue in estimating realistic software project budgets and schedules. Generic models cannot be a reliable source of estimating for complex software projects.

This book presents a number of examples using data collected over years from various organizations that build software. It presents an overview of the International Software Benchmarking Standards Group, which collects data on software projects. This data collection is based on ISO Standards for measuring the functional size of software.

Dr. Abran shows how to build estimation models from the data of an organization using statistically sound processes and how to focus on the quality of the estimation models.

Often referred to as the black art because of the complexity and uncertainty, software estimation is as difficult or puzzling as people think.

Generating accurate and precise estimates is straightforward.

This book shows how to estimate schedule and cost and the functionality that can be delivered within a time frame. Gow to avoid common estimating mistakes. The estimation techniques needed for specific projects activities. How to apply estimation techniques to any type of project - small to large.

Many software projects fail because their leaders don't know how to estimate, schedule, or measure them accurately. Proven tools and techniques exist for every facet of software estimation. This book brings them together in a real-world guidebook to help software managers, engineers, and customers immediately improve their estimates - and drive continuous improvement over time.

Software engineering has become procedural and controlled. Agile is a highly procedural process along with more traditional development methods.

The estimating of the development process still needs maturing. This book provides a concise guide for estimating software development efforts. It shows why accurate estimates are needed, what different estimating methods can be used, and how to analyze risks to make appropriate contingency allowances for the uncertainties encountered on all projects, not just software development projects.

This book is a practical guide to estimating and planning agile projects.

The book speaks to why conventional planning fails and why agile planning works. How to estimate feature size using story points and ideal days and how to use each measure to make decisions. How and when to re-estimate. How to prioritize features using financial and technical approaches. How to split large features into smaller features. How to plan iterations and predict the team's initial rate of progress. How to schedule projects that have unusually high uncertainty or schedule-related risk. How to estimate projects that will be worked by multiple teams.

These books are a small sample of the resources available for estimating. When you hear someone say it's too hard, can't be done, never seen it done, it's a waste and the variety of other reasons - ask have you read any of these books and found them wanting for your needs?

Comments

Why Johnny Can't Estimate? (Update)

I work in a domain where engineered systems are developed for complex software-intensive system of systems. These systems are engineered with a variety of development methods. Ranging from traditional to agile and combinations in between. These systems are developed for external and internal customers. Some are products in their own right, some are embedded in larger missions.

In all cases, we start our work with ...

Risk Management is How Adults Manage Projects - Tim Lister

There is a discussion of the conjecture that estimates are a waste, estimates can't be done, estimates are evil, estimates must be stopped immediately. This would be like saying, risk management is a waste, control system engineering is a waste, thermal analysis of the computer system is a waste, assessment of the reliability, repairability, survivability - all the ...illities are a waste.

In our domain of engineered systems, there is a broad range of problems, complex issues, approaches to solving problems.

This is a familiar example of that range...

To be informed how to estimate in this broad range of domains, problems, and impacts — education, experience, and skill are needed. This usually starts with education. Mine is in hard science and systems engineering. Some colleagues have engineering or finance educations. During this education process, we all have encountered texts that have laid out the principles and processes needed to do our job and deliver the needed capabilities for the needed cost on the needed date to accomplish the needed mission.

Through this education process and the hands-on experiences that followed, we all learned an Immutable Principle

All project work operates in the presence of Uncertainty. This uncertainty comes in two forms. (1) Epistemic Uncertainty from probabilistic events. This uncertainty creates risk, which can be reduced through specific actions. (2) Aleatory Uncertainty from statistical naturally occurring processes. This uncertainty creates risk that cannot be reduced, irreducible, and can only be handled with margin. Cost margin, schedule margin, and technical margin. No credible decision can be made in the presence of uncertainty without estimating the cost, schedule, and technical performance of that decision.

Here are a few texts that have served us well in identifying, assessing, and managing the uncertainties and the risks that's created.

Let's start with the core issue on all software development projects.

We need to make decisions in the presence of uncertainty.

Here's a book that shows how to do that no matter the domain.

Decision making is hard and occurs not when you already know what to do, but when you don't know what to do.

In order to draw any credible conclusion from data, we need to apply descriptive statistics to that data.

A common error is to collect a set of anecdotal data that is not statistically credible. To draw any logical conclusion from data, we need to make assumptions about the chances (probabilities) of obtaining different data from the same conditions. The totality of these assumptions is the probability model of the data.

Without this probability model of what should be and what could be the outcome, the result is simply anecdotal with no supporting evidence.

All engineering courses, including software development in Computer Science courses, is based on probability and statistics at some level.

Complexity and precision assessments are needed when making decisions that create risk for these systems. This precision is described by the interrelationships between the factors involved in the processes themselves and the behavior that results from these interactions.

Randomness is an Empirical phenomenon characterized by the property that the quantities do not have predictable outcomes, instead, have a statistical regularity associated with possible outcomes.

To make decisions in these conditions, estimates are required.

Two key features of project success are managing cost to achieve efficiencies and creating and enhancing value produced by the project or product. These enable project stakeholders to understand the activities and resources required to meet the project goals and expenditures necessary to satisfactorily complete the project.

This book studied 300 large firms 65% hardware/software projects were behind schedule, over budget, or failed to deliver expected performance.

The research shows the key root cause is the lack of integrated cost and schedule management and the estimating processes associated with the management of those project elements.

Probability and Statistics is the basis of making decisions in the presence of uncertainty.

Probability is the study of randomness. Statistics tells us how to make informed judgments and decisions in the presence of that randomness.

Both probability and statistics are needed to make decisions. These decisions are based then on making estimates for the outcomes from the probabilistic and statistical model of the processes under management.

Probability allows us to quantify the strength (confidence) of a conclusion.

Inferential statistics allow us to draw conclusions about a population making use of probability.

In project management, these populations come from other projects we'd like to make inferences about, given data, probability, and statistics from past projects or models of projects.

Producing products or the outcomes of projects with needed quality, for the needed cost, at the needed time involves making decisions in the presence of uncertainties of the behaviors of the processes used to deliver the outcomes.

This book describes how to manage these processes by:

Stating the problem

Collecting and analyzing the data

Interpreting the data and making decisions

Implementing and verifying the decision

Planning the next actions

Identifying, measuring, and quantifying uncertainty is the basis of good decision making.

Uncertainty loosely means when the results, outcomes, and nearest and remote future is not completely determined, and the development of products or projects depends on a number of factors and many times just in pure chance.

To make decisions in the presence of these uncertainties we need to estimate the probabilities of a future event or the statistical behavior of naturally variable processes.

In both cases, we need to make estimates about the impacts of the probability of impact or the outcomes from naturally occurring statistical processes.

This book provides a calculus-based introduction to probability and statistics. It starts with defining events and how they are represented.

Random variables are introduced and the relationship between probability functions and distribution functions form the basis of reducible uncertainty (probability) and irreducible uncertainty (distributions).

Estimating the behaviors described by the probability and distributions is made with examples that are applicable to estimates of software project properties.

Along with that, sample size discussion is important for creating estimates, since many of the anecdotes of #Noestiimates advocates come from small samples that are not statistically credible.

This book provides a clear, complete understanding of how to estimate software costs, schedule, and quality using real-world information.

This includes planning for and execution the project by phase and activity level cost estimates. How to estimate regression, components, integration, and stress tests for the software. How to compensate for inaccuracies in data collection, calculation, and analysis.

How to test the design principles of operational characteristics of the product using prototyping. How to handle configuration change, research, quality and documentation costs.

Software projects are often late and over budget leading to major problems for customers. There is a serious issue in estimating realistic software project budgets and schedules. Generic models cannot be a reliable source of estimating for complex software projects.

This book presents a number of examples using data collected over years from various organizations that build software. It presents an overview of the International Software Benchmarking Standards Group, which collects data on software projects. This data collection is based on ISO Standards for measuring the functional size of software.

Dr. Abran shows how to build estimation models from the data of an organization using statistically sound processes and how to focus on the quality of the estimation models.

Often referred to as the black art because of the complexity and uncertainty, software estimation is as difficult or puzzling as people think.

Generating accurate and precise estimates is straightforward.

This book shows how to estimate schedule and cost and the functionality that can be delivered within a time frame. Gow to avoid common estimating mistakes. The estimation techniques needed for specific projects activities. How to apply estimation techniques to any type of project - small to large.

Many software projects fail because their leaders don't know how to estimate, schedule, or measure them accurately. Proven tools and techniques exist for every facet of software estimation. This book brings them together in a real-world guidebook to help software managers, engineers, and customers immediately improve their estimates - and drive continuous improvement over time.

Software engineering has become procedural and controlled. Agile is a highly procedural process along with more traditional development methods.

The estimating of the development process still needs maturing. This book provides a concise guide for estimating software development efforts. It shows why accurate estimates are needed, what different estimating methods can be used, and how to analyze risks to make appropriate contingency allowances for the uncertainties encountered on all projects, not just software development projects.

This book is a practical guide to estimating and planning agile projects.

The book speaks to why conventional planning fails and why agile planning works. How to estimate feature size using story points and ideal days and how to use each measure to make decisions. How and when to re-estimate. How to prioritize features using financial and technical approaches. How to split large features into smaller features. How to plan iterations and predict the team's initial rate of progress. How to schedule projects that have unusually high uncertainty or schedule-related risk. How to estimate projects that will be worked by multiple teams.

These books are a small sample of the resources available for estimating. When you hear someone say it's too hard, can't be done, never seen it done, it's a waste and the variety of other reasons - ask have you read any of these books and found them wanting for your needs?