Estimate, target, plan and commit

I’ve started into “Software Estimation: Demystifying the Black Art” by Steve McConnell, and of course… as is my style. I’m making some conjectures about what I think software development should look like based off of reading the first chapter. I am going to finish the book, but jotting some quick thoughts down as I go helps me to digest the book as I go, so don’t be surprised if I actually contradict something in the book. I haven’t read it all yet.

Some definitions

  • Estimate - Something rather easily and simply generated that is roughly accurate and expected to be off within a certain range. A simple formula that may be good enough in most cases is suggested as Effort = NumberOfRequirements * AverageEffortPerRequirement.
  • Target - The business wants to do something by X date. A statement of a desireable business outcome.
  • Plan - This is a detailed schedule on how we plan to hit said target (it will likely include prioritization and leaving certain things out).
  • Commitment - When someone or a team promises to hit the target with a specific level of quality.

A logical plan

You can expect the business to come to you with targets. We should be ready with good enough™ estimates to help produce plans that we can commit to.

So the sequence is:

  1. Build a system that can be used to produce good enough™ estimates on-demand
  2. Wait for the business to bring you targets
  3. Build plans to hit those targets using your estimates
  4. Only build plans you’re comfortable committing to

The tricky part

It seems to me that building a data-set to produce good enough™ estimates on-demand is the tricky part. I believe Steve is going to cover this in more detail later in the book but my guess as to some important details would be all centered around measuring that AverageEffortPerRequirement and that the keys to getting accurate measurements there are going to be around when can we say something started and when can we say something is finished?

Read More

ThingWorx local development environment with Docker - Part 1 Reading time ~3 minutes

[ThingWorx]( is a platform for developing "Industrial IoT solutions". They've......

How to run multiple versions of React side-by-side using Single Spa Reading time ~2 minutes

This seems like it should be easy right? Single-spa is......

Stages of ramp up on software development projects Reading time ~3 minutes

This is a list I’m going to be maintaining on......