Watch Gears Sq

Creating accurate, honest estimates can seem near impossible and a tremendous use of time. The good news here is that really smart folks have already created the solution for us all: the Unified Process.

As you consider my approach to estimates, reflect on two things.

1.) I embrace, live and die by outcome based pricing. The final price of any deliverable is determined upon completion and delivery. However, it is crucial the client and I both have a hyper-accurate understanding of effort and cost before I begin work. If I miss the mark on effort and cost; I suffer because I accept most of the risk tied to pricing. A scary challenge, or is it?

2.) I drank the Agile Development Kool-Aid years ago. I champion the Agile manifesto daily (individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan). The Agile approach would seem to fly in the face of handcrafting rock solid estimates within a rigid iterative framework, or does it?

Certainly it is not a unique or revolutionary approach, but the following outlines how I have cut my estimation time to nearly nothing while remaining ridiculously accurate. The best part is, it works for any kind of project.

The Unified Process – 4 phases of 9 iterations.

The percentages of each phase and iteration are set in stone, and determined via practice. Classically, your iterations would waterfall, one then the next, but they do not have to.

Generally, your phases and iterations should look like this …

Unified Process rules of thumb

Here are two key items to note – you need a feedback loop, and you need to be flexible.

I track the time I spend on every project, and this is my feedback loop.  As I move through the project, I make sure I am on track for each iteration. This feedback loop shows me where I have mis-estimated, or where I was dead on. I know if I am estimating a particular phase or iteration poorly. I also know if my total project estimation is accurate. I use each project to help refine my accuracy for the next estimate / project.

I also apply flexible Agile methods on top of this rigid method. Agile is all about responding to change, and small adaptable sprints. When a project is getting off track, I know and I proactively adapt to make changes and get back on time / effort. I take the stance that scope creep is my issue to wrestle into submission. I never blame the client for my mistake in evaluating effort, I just react early to re-align effort and expectations.

The absolute best part of it all, this seamlessly automates my estimation process. I’ve created a template that breaks the project up according to the 4 phases and 9 iterations of the Unified Process. I drop in a total number based on my first impressions of a project, and I get the effort for each phase and iteration instantly.

I then compare my estimate to the few hundred I have written in the past, looking for comparable projects and estimates. I compare and contrast those estimates to the actual end invoice, and I can see where I was high, low, or just right. From there I fine tune my total cost, and confidently know my estimate will be dead on.

The whole estimate process now takes about 5 minutes, and it never fails. It took time, practice and diligence to get here, but that effort has paid off a hundred times over.

Let me know your thoughts. I am always looking to learn and get better.