We are Principled: 8th Edition

We are Principled: 8th Edition

Joey Shipley

April 24, 2013

Steadily Adding Value

We estimate with diligence.
We do not let fear or pressure make us promise what we can’t deliver.

Estimation is Difficult

As software crafters, we pay close attention to the pain points in our environments and processes. To help produce better results, we create a variety of technologies and practices, including programming principles, organizational frameworks, even standing desks and ergonomic chairs. In our industry, when we perceive a pain, we strive to cure it. How then does the practice of estimation fit in with pain points?

Some people may estimate low for fear of making the client uncomfortable. A low estimate might come from feeling that others would think less of one’s capabilities. Some people may estimate high because the team lead is constantly pushing hard deadlines. Then again, some estimate high from the feeling that they are not as skilled as others. Unprepared estimates bring a high degree of uncertainty, they are no more than predictions of the future, where we will be more wrong than we are right. These assumptions and behaviors, among others, contribute to estimates that lead us down the dangerous path of promising what we can not provide.

Estimates are ripe with pain. The pain exists for all parties involved.

Estimation is Important

When one takes on a task and establishes a timeframe for when it will be completed, everyone involved looks at it differently.

  • Stakeholders look at how much the work will cost them compared to the functionality delivered.
  • Product owners look at the current status of the project and use estimates for prioritization of upcoming work.
  • Teams look at the estimate and uses it for coordinating other work that is needed for the task.
  • Software crafters look at the estimate as a commitment and a testament of their capabilities.

Estimates that over-promise degrades the trust others have in our word. Under-promising is unsatisfying when it is just minimizing the gap. When one loses confidence in oneself, their day to day work life becomes taxed and stressed. When the team lead loses confidence in one’s ability to estimate, their chances for growth and success in the organization suffers. When the client loses confidence, the organization risks losing the client.

Due to the ownership, pressure, competing tensions, and difficulty, we often become afraid of estimating. We begin to dread estimation, start avoid it as best as we can. We hear others saying “Developer’s are horrible at estimation, you can’t trust what they say about deadlines.” We start saying it ourselves.

Principled Estimations

At 8th Light we take the challenge of estimations seriously. We know our clients will lose faith if we don’t have strict processes for estimation. As such we take pride in our efforts to improve our estimation processes and practices.

Our estimation process is a group effort. Several software crafters contribute what they know about the system under consideration. This brings us to a better understanding of what it will take us to complete the work. We collaborate with our clients on the estimates, so they can see the internal discussion and understanding we have of the work. The timeframe for the estimates is not a hard date, but rather a range of possible outcomes.

We have adapted an estimation technique called PERT (Program Evaluation and Review Technique) to augment our process. We estimate an optimistic amount of time, a realistic amount of time, and a pessimistic or worse case timeline. From those three estimates we determine how to charge for the work and then make a commitment. Whenever we find that our estimates were either too high or too low, we work through what caused it.

Diligence

Our diligence in estimation has led to many changes in our process. The methods we use now are not what we used at first, and we will continue to improve them. At the very core of our process is the determination not to let the fears or pains of estimation take over. We will not promise what we cannot deliver, even if that means we have to tell our client “No”. When we as software crafters make promises we cannot keep. we give others reasons not to trust our abilities.

Estimating work is important. Estimating should be treated no differently than any of our other practices. Estimates are commitments. They affect our image as professionals. Estimates must be honest, whether we are saying “Yes” or “No”. And above all else, we cannot let our fears allow us to promise what we cannot deliver.

More on Estimation

Why is Estimating so Hard? by Uncle Bob

From Estimate to Commitment, by Paul Pagel