home page

my blog posts

How to Estimate Agile Projects

There is a perception that Agile projects have little management oversight.  Many stakeholders and executives are scared off by the perception that Agile teams build whatever they want and there is no predictable schedule.  This misconception is something I fight most days of my professional career.  What I often say is no matter what software methodology an organization uses, there are two fundamental questions to which stakeholders must receive an answer before they will fund a software project:

  1. How much is it going to cost?
  2. How long will it take?

Here is a typical approval process for a software project:

  1. First, someone has an idea for a project.  They talk about it with stakeholders to get approval.
  2. Assuming that the idea is static and does not change, the stakeholders want to know the cost and the time needed to complete it.
  3. A team is dispatched to estimate the cost and the time.  If that estimate is acceptable, the project is approved.
  4. A project manager is assigned to ensure that the original requirements are met, and that the cost and time are carefully guarded.

Many people with experience in software projects know that this fixed requirements line of thinking is often not successful.  Why is this? I believe the reason is the flawed assumption that, given an initial set of fixed requirements, a cost and time can be known and estimated.  These estimates are pure guesses to make everyone feel better, but often they provide little real value to the process.



Agile Estimating

Agile recognizes this flaw and attempts to flip the estimation process.  Rather than starting with an idea or set of requirements, Agile starts by fixing the cost and the time from the beginning.  Then, a team estimates how many features can reasonably be delivered with the given cost and time.  The fundamental question for an Agile process becomes: “Given a fixed cost and a fixed time-frame, how fast can we deliver value?”


There is a critical difference in these two mindsets.  With Agile, a teams’ focus is on creating value fast.  In order to create value, a team must truly understand its customer.  The team must think like the customer and work hard to delight the customer.  The team must focus on priorities and eliminate all things that do not add value.  This sounds simple, but as any Agile practitioner can tell you, it is not.  Agile takes discipline to be successful.  No methodology is guaranteed to be successful.  However by locking the cost and time, directing a team to focus on the customer, and delivering value with a sense of urgency, a software project has the best possible chance of being successful.


Let's keep in touch