A

Accurate effort estimates are contingent on eliminating all sources of surprise, and software development is particularly, if not uniquely full of surprises.

Other
People do succeed at beating deadlines derived from their effort estimates, so how do they pull it off?
What kinds of surprises are endemic to the software development process?
Why is software development so difficult to estimate?

Accurate software effort estimates aren't impossible, but it can take as much time to do the estimate as it does to write the code.

Has Broader
Accurately estimating the effort it takes to deliver a unit of software is notoriously difficult.

Accurately estimating the effort it takes to deliver a unit of software is notoriously difficult.

Has Narrower
Accurate software effort estimates aren't impossible, but it can take as much time to do the estimate as it does to write the code.
Other
Estimate the effort it will take to deliver a unit of work product before committing to a budget and/or schedule.
Why is software development so difficult to estimate?

B

Begin by modeling the final handoff of the deliverable from the point of view of the client, and work backward to the present.

Has Broader
Estimate the effort it will take to deliver a unit of work product before committing to a budget and/or schedule.
Other
The estimate may not model all the work needed to deliver the result in a manner that the client is willing to accept.

Break the deliverable down into parts.

Has Broader
Exhaustively work out the behaviour the software must and must not exhibit.
Other
Even relatively modest software deliverables can exhibit considerable complexity.
How do you estimate the effort for the individual parts?
It may indeed turn out that the partitioning scheme that divides the software development work itself into parts, is incorrect.

C

Charge an absurd amount of money.

Other
If you charge an absurd amount of money, you may be able to buy your way out of an unforeseen crunch and keep your reputation in return for slightly less profit.
People do succeed at beating deadlines derived from their effort estimates, so how do they pull it off?

Clients generally want a return on their investment, and (by the time they're talking to you about it), they tend to have an idea (irrespective of accuracy) around what it's worth.

Other
A stakeholder may be evaluating many different competing investments and is looking for the best return before they commit.
Get the value of the outcome out into the open.
Stupid question, but WHY do stakeholders need to know how long it will take and how much it will cost?

Compute a dependency graph from the topologically-decomposed parts.

Has Broader
Subdivide the project topologically by way of minimum cut. Do not subdivide by prescribed category.
Other
It may turn out that the parts the software product invariably comprises, need to be created in a sequence other than the one anticipated.
See Also

Concomitantly, the risk/value-based methodology has not been able to be fully deployed without the infrastructure to manage it.

Other
The PM ontology has been contemplated/tinkered with for nearly two decades, but hasn't been tested prior to having Intertwingler/Sense Atlas available to test it.
See Also

Create a Monte Carlo model that simulates the product recovering value. Use it to derive a probability distribution for the valuation.

Has Broader
Get the value of the outcome out into the open.
Has Narrower
Inventory all the mechanisms by which the outcome creates marginal value (e.g. causes one sale, prevents one churn, eliminates some cost…).
Use the mode (it will almost certainly be asymmetric) or agree on a sensible percentile for the distribution, as well as a sensible time horizon.
Other
How does one valuate an outcome that hasn't happened yet?
What if the client insists on a number rather than a probability distribution?
See Also

D

Didn't Ole Peters say expected value was bad?

Other
Use risk-weighted net present value that divides the NPV by the expected value.
You can use the Kelly fraction instead of expected value if you want.
See Also

Discount the valuation to zero (or whatever compromised value you want to discount it to) after the deadline elapses.

Has Broader
Get the value of the outcome out into the open.
Other
What about a hard, exogenous deadline?

The depreciation function associated with a valuation irrespective of an explicit deadline will eventually decay past a point that it ceases to be worthwhile to continue, thus creating an implicit deadline.

Other
What about a hard, exogenous deadline?

E

"Exhaustively" implies this process will be characteristically labour-intensive and time-consuming.

Other
Exhaustively work out the behaviour the software must and must not exhibit.

Establishing the value of the outcome should be part of the discovery process.

Has Broader
Get the value of the outcome out into the open.
Has Narrower
You should establish the value of the outcome for yourself irrespective of the client's disposition to it.
Other
How does one valuate an outcome that hasn't happened yet?
What if the value of the outcome is genuinely unknown?

Estimate the effort it will take to deliver a unit of work product before committing to a budget and/or schedule.

Has Narrower
Begin by modeling the final handoff of the deliverable from the point of view of the client, and work backward to the present.
Exhaustively work out the behaviour the software must and must not exhibit.
Thoroughly test all third-party functionalities before making any commitments that depend on them.
Other
Accurately estimating the effort it takes to deliver a unit of software is notoriously difficult.
How long is the estimate itself going to take? Who is willing to wait for it? Do you need to do an estimate for the estimate (for the estimate…)?
It is much, much easier (and thus much quicker) to estimate the value of a completed project than the cost of completing it.
The general strategy of adding estimates up from zero means you will always underestimate, and that deficit will grow with the size of the thing you are estimating.
Two inevitable questions of key stakeholders on prospective projects are "How long will it take?" and "How much will it cost?"
Who is going to pay for the work of performing the estimate?

Even relatively modest software deliverables can exhibit considerable complexity.

Other
Break the deliverable down into parts.
Exhaustively work out the behaviour the software must and must not exhibit.

Exhaustively work out the behaviour the software must and must not exhibit.

Has Broader
Estimate the effort it will take to deliver a unit of work product before committing to a budget and/or schedule.
Has Narrower
Break the deliverable down into parts.
Other
"Exhaustively" implies this process will be characteristically labour-intensive and time-consuming.
Even relatively modest software deliverables can exhibit considerable complexity.
Expectations around the capabilities and/or behaviour of the software are inadequately articulated, and often even inadequately researched.
Isn't that what user research and interaction design are supposed to do?

Expectations around the capabilities and/or behaviour of the software are inadequately articulated, and often even inadequately researched.

Other
Exhaustively work out the behaviour the software must and must not exhibit.
What kinds of surprises are endemic to the software development process?

The estimate may not model all the work needed to deliver the result in a manner that the client is willing to accept.

Other
Begin by modeling the final handoff of the deliverable from the point of view of the client, and work backward to the present.
Why is software development so difficult to estimate?

F

Fermi estimate

Also known as
Fermi problem
See Also

G

Get the value of the outcome out into the open.

Has Narrower
Create a Monte Carlo model that simulates the product recovering value. Use it to derive a probability distribution for the valuation.
Discount the valuation to zero (or whatever compromised value you want to discount it to) after the deadline elapses.
Establishing the value of the outcome should be part of the discovery process.
Respond to these questions instead with "if you can tell me the gross value, I can give you a curve that represents the size of the return at different probabilities."
Use the discounted cash flow method to get the appropriately discounted net present value of the work product.
Other
Clients generally want a return on their investment, and (by the time they're talking to you about it), they tend to have an idea (irrespective of accuracy) around what it's worth.
If you have a clear idea of at least the contours of what the projected outcome is worth, it's much, much easier to realistically scope the project.
It is much, much easier (and thus much quicker) to estimate the value of a completed project than the cost of completing it.
What about a hard, exogenous deadline?
What about depreciation over the time it takes to complete the project?
What if the client doesn't want to be forthcoming about the value of the outcome?
What if the value of the outcome is genuinely unknown?

The general strategy of adding estimates up from zero means you will always underestimate, and that deficit will grow with the size of the thing you are estimating.

Other
Estimate the effort it will take to deliver a unit of work product before committing to a budget and/or schedule.
Just pad your estimates. Double, even triple them.
See Also

H

How do you estimate the effort for the individual parts?

Other
Break the deliverable down into parts.
Use data from timesheets for comparable components.

How does one valuate an outcome that hasn't happened yet?

Other
Create a Monte Carlo model that simulates the product recovering value. Use it to derive a probability distribution for the valuation.
Establishing the value of the outcome should be part of the discovery process.
Inventory all the mechanisms by which the outcome creates marginal value (e.g. causes one sale, prevents one churn, eliminates some cost…).

How long is the estimate itself going to take? Who is willing to wait for it? Do you need to do an estimate for the estimate (for the estimate…)?

Other
Estimate the effort it will take to deliver a unit of work product before committing to a budget and/or schedule.
Who is going to pay for the work of performing the estimate?

I

If the client doesn't want to speak frankly about the value of what they want you to do for them, that is a huge red flag.

Other
What if the client doesn't want to be forthcoming about the value of the outcome?

If you charge an absurd amount of money, you may be able to buy your way out of an unforeseen crunch and keep your reputation in return for slightly less profit.

Other
Charge an absurd amount of money.

If you have a clear idea of at least the contours of what the projected outcome is worth, it's much, much easier to realistically scope the project.

Other
Get the value of the outcome out into the open.
Knowing what the outcome is worth will inform the price you can charge for it.

If you relegate your bread-and-butter work to stable and conservative deliverables, you will actually be able to use any empirical data you record.

Other
Only commit to doing well-rehearsed work with plenty of data about how much effort it takes.
What if your timesheets don't contain anything sufficiently similar to the thing you're currently trying to estimate?

If you're padding your estimates by the square of the baseline value (or even if you're doubling or tripling them), are you even really estimating anymore?

Other
A linear padding factor is likely to not be enough, since the error accumulation is superlinear (i.e., exponential).

Inventory all the mechanisms by which the outcome creates marginal value (e.g. causes one sale, prevents one churn, eliminates some cost…).

Has Broader
Create a Monte Carlo model that simulates the product recovering value. Use it to derive a probability distribution for the valuation.
Other
How does one valuate an outcome that hasn't happened yet?

Isn't that what user research and interaction design are supposed to do?

Other
Exhaustively work out the behaviour the software must and must not exhibit.

It is much, much easier (and thus much quicker) to estimate the value of a completed project than the cost of completing it.

Other
Estimate the effort it will take to deliver a unit of work product before committing to a budget and/or schedule.
Get the value of the outcome out into the open.
Respond to these questions instead with "if you can tell me the gross value, I can give you a curve that represents the size of the return at different probabilities."

It may indeed turn out that the partitioning scheme that divides the software development work itself into parts, is incorrect.

Other
Break the deliverable down into parts.
It may turn out that the parts the software product invariably comprises, need to be created in a sequence other than the one anticipated.
Subdivide the project topologically by way of minimum cut. Do not subdivide by prescribed category.

It may turn out that the parts the software product invariably comprises, need to be created in a sequence other than the one anticipated.

Other
Compute a dependency graph from the topologically-decomposed parts.
It may indeed turn out that the partitioning scheme that divides the software development work itself into parts, is incorrect.
What kinds of surprises are endemic to the software development process?

The information-gathering process should suffuse the project, run its entire length, and effectively serve as its backbone.

Has Narrower
The information-gathering process typically associated with scoping and effort estimation is too expensive be done on spec; it has to be compensated, and thus integrated into the project.
Other
New (and existing latent) information is continually being discovered over the course of any project.

The information-gathering process typically associated with scoping and effort estimation is too expensive be done on spec; it has to be compensated, and thus integrated into the project.

Has Broader
The information-gathering process should suffuse the project, run its entire length, and effectively serve as its backbone.
Other
New (and existing latent) information is continually being discovered over the course of any project.
Past a certain level of complexity, the time (and thus money) it takes to produce an effort estimate that is accurate enough to rely on, tends to be generally unacceptable.

J

Just pad your estimates. Double, even triple them.

Other
A linear padding factor is likely to not be enough, since the error accumulation is superlinear (i.e., exponential).
Padding only makes sense for exogenous factors; most of the problems that arise in software development are endogenous.
People do succeed at beating deadlines derived from their effort estimates, so how do they pull it off?
The general strategy of adding estimates up from zero means you will always underestimate, and that deficit will grow with the size of the thing you are estimating.

K

Knowing what the outcome is worth will inform the price you can charge for it.

Other
If you have a clear idea of at least the contours of what the projected outcome is worth, it's much, much easier to realistically scope the project.
You should establish the value of the outcome for yourself irrespective of the client's disposition to it.

L

A linear padding factor is likely to not be enough, since the error accumulation is superlinear (i.e., exponential).

Other
If you're padding your estimates by the square of the baseline value (or even if you're doubling or tripling them), are you even really estimating anymore?
Just pad your estimates. Double, even triple them.

M

Most software just glues together other people's software, and other people's software has bugs and limitations, and often doesn't work as advertised in its documentation.

Other
Thoroughly test all third-party functionalities before making any commitments that depend on them.
What kinds of surprises are endemic to the software development process?

N

New (and existing latent) information is continually being discovered over the course of any project.

Other
The information-gathering process should suffuse the project, run its entire length, and effectively serve as its backbone.
The information-gathering process typically associated with scoping and effort estimation is too expensive be done on spec; it has to be compensated, and thus integrated into the project.

O

Only commit to doing well-rehearsed work with plenty of data about how much effort it takes.

Other
If you relegate your bread-and-butter work to stable and conservative deliverables, you will actually be able to use any empirical data you record.
People do succeed at beating deadlines derived from their effort estimates, so how do they pull it off?

P

Padding only makes sense for exogenous factors; most of the problems that arise in software development are endogenous.

Other
Just pad your estimates. Double, even triple them.

Past a certain level of complexity, the time (and thus money) it takes to produce an effort estimate that is accurate enough to rely on, tends to be generally unacceptable.

Other
The information-gathering process typically associated with scoping and effort estimation is too expensive be done on spec; it has to be compensated, and thus integrated into the project.

People do succeed at beating deadlines derived from their effort estimates, so how do they pull it off?

Other
Accurate effort estimates are contingent on eliminating all sources of surprise, and software development is particularly, if not uniquely full of surprises.
Charge an absurd amount of money.
Just pad your estimates. Double, even triple them.
Only commit to doing well-rehearsed work with plenty of data about how much effort it takes.

The PM ontology has been contemplated/tinkered with for nearly two decades, but hasn't been tested prior to having Intertwingler/Sense Atlas available to test it.

Other
Concomitantly, the risk/value-based methodology has not been able to be fully deployed without the infrastructure to manage it.
See Also

R

Respond to these questions instead with "if you can tell me the gross value, I can give you a curve that represents the size of the return at different probabilities."

Has Broader
Get the value of the outcome out into the open.
Other
It is much, much easier (and thus much quicker) to estimate the value of a completed project than the cost of completing it.
Two inevitable questions of key stakeholders on prospective projects are "How long will it take?" and "How much will it cost?"
What if the client doesn't want to be forthcoming about the value of the outcome?
What if the value of the outcome is genuinely unknown?

S

A stakeholder may be evaluating many different competing investments and is looking for the best return before they commit.

Other
A stakeholder may have upstream commitments.
Clients generally want a return on their investment, and (by the time they're talking to you about it), they tend to have an idea (irrespective of accuracy) around what it's worth.
Stupid question, but WHY do stakeholders need to know how long it will take and how much it will cost?

A stakeholder may have upstream commitments.

Other
A stakeholder may be evaluating many different competing investments and is looking for the best return before they commit.
A stakeholder may require a result by a certain date, or the value of the result is compromised.

A stakeholder may require a result by a certain date, or the value of the result is compromised.

Other
A stakeholder may have upstream commitments.
Stupid question, but WHY do stakeholders need to know how long it will take and how much it will cost?
What about a hard, exogenous deadline?

Stupid question, but WHY do stakeholders need to know how long it will take and how much it will cost?

Other
A stakeholder may be evaluating many different competing investments and is looking for the best return before they commit.
A stakeholder may require a result by a certain date, or the value of the result is compromised.
Clients generally want a return on their investment, and (by the time they're talking to you about it), they tend to have an idea (irrespective of accuracy) around what it's worth.
Two inevitable questions of key stakeholders on prospective projects are "How long will it take?" and "How much will it cost?"

Subdivide the project topologically by way of minimum cut. Do not subdivide by prescribed category.

Has Narrower
Compute a dependency graph from the topologically-decomposed parts.
Other
It may indeed turn out that the partitioning scheme that divides the software development work itself into parts, is incorrect.
See Also

T

There may be pathologies at the system level that are not evident until the system is assembled and running as a whole.

Other
What kinds of surprises are endemic to the software development process?

Thoroughly test all third-party functionalities before making any commitments that depend on them.

Has Broader
Estimate the effort it will take to deliver a unit of work product before committing to a budget and/or schedule.
Other
Most software just glues together other people's software, and other people's software has bugs and limitations, and often doesn't work as advertised in its documentation.
Up-front testing of all, or even most third-party software is cripplingly burdensome on its own.

Two inevitable questions of key stakeholders on prospective projects are "How long will it take?" and "How much will it cost?"

Other
Estimate the effort it will take to deliver a unit of work product before committing to a budget and/or schedule.
Respond to these questions instead with "if you can tell me the gross value, I can give you a curve that represents the size of the return at different probabilities."
Stupid question, but WHY do stakeholders need to know how long it will take and how much it will cost?

U

Up-front testing of all, or even most third-party software is cripplingly burdensome on its own.

Other
Thoroughly test all third-party functionalities before making any commitments that depend on them.

Use data from timesheets for comparable components.

Other
How do you estimate the effort for the individual parts?
What if the timesheets aren't sufficiently granular?
What if you don't have timesheets?
What if your timesheets don't contain anything sufficiently similar to the thing you're currently trying to estimate?

Use risk-weighted net present value that divides the NPV by the expected value.

Has Broader
Use the discounted cash flow method to get the appropriately discounted net present value of the work product.
Has Narrower
You can use the Kelly fraction instead of expected value if you want.
Other
Didn't Ole Peters say expected value was bad?
What about the risk of benefit shortfall, or total failure to deliver?
See Also

Use the discounted cash flow method to get the appropriately discounted net present value of the work product.

Has Broader
Get the value of the outcome out into the open.
Has Narrower
Use risk-weighted net present value that divides the NPV by the expected value.
Other
What about depreciation over the time it takes to complete the project?
What about the risk of benefit shortfall, or total failure to deliver?
See Also

Use the mode (it will almost certainly be asymmetric) or agree on a sensible percentile for the distribution, as well as a sensible time horizon.

Has Broader
Create a Monte Carlo model that simulates the product recovering value. Use it to derive a probability distribution for the valuation.
Other
What if the client insists on a number rather than a probability distribution?

W

What about a hard, exogenous deadline?

Other
A stakeholder may require a result by a certain date, or the value of the result is compromised.
Discount the valuation to zero (or whatever compromised value you want to discount it to) after the deadline elapses.
Get the value of the outcome out into the open.
The depreciation function associated with a valuation irrespective of an explicit deadline will eventually decay past a point that it ceases to be worthwhile to continue, thus creating an implicit deadline.

What about depreciation over the time it takes to complete the project?

Other
Get the value of the outcome out into the open.
Use the discounted cash flow method to get the appropriately discounted net present value of the work product.

What about the risk of benefit shortfall, or total failure to deliver?

Other
Use risk-weighted net present value that divides the NPV by the expected value.
Use the discounted cash flow method to get the appropriately discounted net present value of the work product.
Worth noting that the risk profile of a piece of software changes dramatically once it is delivered.

What if the client doesn't want to be forthcoming about the value of the outcome?

Other
Get the value of the outcome out into the open.
If the client doesn't want to speak frankly about the value of what they want you to do for them, that is a huge red flag.
Respond to these questions instead with "if you can tell me the gross value, I can give you a curve that represents the size of the return at different probabilities."
You should establish the value of the outcome for yourself irrespective of the client's disposition to it.

What if the client insists on a number rather than a probability distribution?

Other
Create a Monte Carlo model that simulates the product recovering value. Use it to derive a probability distribution for the valuation.
Use the mode (it will almost certainly be asymmetric) or agree on a sensible percentile for the distribution, as well as a sensible time horizon.

What if the timesheets aren't sufficiently granular?

Other
Use data from timesheets for comparable components.

What if the value of the outcome is genuinely unknown?

Other
Establishing the value of the outcome should be part of the discovery process.
Get the value of the outcome out into the open.
Respond to these questions instead with "if you can tell me the gross value, I can give you a curve that represents the size of the return at different probabilities."

What if you don't have timesheets?

Other
Use data from timesheets for comparable components.

What if your timesheets don't contain anything sufficiently similar to the thing you're currently trying to estimate?

Other
If you relegate your bread-and-butter work to stable and conservative deliverables, you will actually be able to use any empirical data you record.
Use data from timesheets for comparable components.

What kinds of surprises are endemic to the software development process?

Other
Accurate effort estimates are contingent on eliminating all sources of surprise, and software development is particularly, if not uniquely full of surprises.
Expectations around the capabilities and/or behaviour of the software are inadequately articulated, and often even inadequately researched.
It may turn out that the parts the software product invariably comprises, need to be created in a sequence other than the one anticipated.
Most software just glues together other people's software, and other people's software has bugs and limitations, and often doesn't work as advertised in its documentation.
There may be pathologies at the system level that are not evident until the system is assembled and running as a whole.

Who is going to pay for the work of performing the estimate?

Other
Estimate the effort it will take to deliver a unit of work product before committing to a budget and/or schedule.
How long is the estimate itself going to take? Who is willing to wait for it? Do you need to do an estimate for the estimate (for the estimate…)?

Why is software development so difficult to estimate?

Other
Accurate effort estimates are contingent on eliminating all sources of surprise, and software development is particularly, if not uniquely full of surprises.
Accurately estimating the effort it takes to deliver a unit of software is notoriously difficult.
The estimate may not model all the work needed to deliver the result in a manner that the client is willing to accept.

Worth noting that the risk profile of a piece of software changes dramatically once it is delivered.

Other
What about the risk of benefit shortfall, or total failure to deliver?

Y

You can use the Kelly fraction instead of expected value if you want.

Has Broader
Use risk-weighted net present value that divides the NPV by the expected value.
Other
Didn't Ole Peters say expected value was bad?
See Also

You should establish the value of the outcome for yourself irrespective of the client's disposition to it.

Has Broader
Establishing the value of the outcome should be part of the discovery process.
Other
Knowing what the outcome is worth will inform the price you can charge for it.
What if the client doesn't want to be forthcoming about the value of the outcome?