Known as “the dark art”, software estimation torments everyone across different industries. There’s no way around estimation, and there is no escaping it. In software development, things tend to get even more complicated. Managing different expectations, ever-evolving requirements, keeping up with technologies advances and updates and making sure that everything mentioned does not affect your team’s productivity. Talk about challenging!
BUT — it’s not all bad news when it comes to the estimates. There are actually ways to learn how to play the estimates game, and once you’re familiar with these, you’ll stop looking at estimates as unnecessary task and understand how they can bring value to your teams.
With many projects in the bag, here are a few gems of wisdom from our team:
In order to answer the question: “How do I get better at estimates?”, let’s start at the beginning and define this process. You’ll probably come across many different explanations when you do the research on the topic, but here’s a definition we believe sums it up pretty well:
Estimation (or estimating) is the process of finding an estimate, or approximation, which is a value that is usable for some purpose even if input data may be incomplete, uncertain, or unstable.
So, if the input data may be incomplete, uncertain or unstable why do we even need estimates? Simply put; in order for someone to put their trust and resources in you, they have to know, with at least some level of certainty, answers to the following questions:
- What do we get for our money?
- Can we predict our costs?
- What will it cost to create the product we want?
- When can we launch?
- Will we get a quality product for our investment?
- Will it grow our business?
- Will it deliver business value?
- What kind of team to put together?
Obviously, these are serious matters and at this point you might find yourself turning to comforting excuses. So, in case you ever need to feel a bit better before embarking on the estimates journey, we picked some of our favorite excuses we’ve heard over time:
“Estimates are rarely even close to accurate”
“All you are doing when you estimate a piece of work is to set false expectations”
“In practice, estimation is seen s a commitment, not as a best guess”
“We don’t have enough information to provide an estimate”
“Clients don’t even know what they want”
“Why do we even estimate if there is a deadline”
Now, after you’ve given yourself some time to grieve over the fact you have to begin the estimation process, let’s jump to an important question will help you become Estimation Superhero:
Why do we suck at estimates?
There are significant mental “challenges” which affect the way we think and reason when it comes to estimates. Understanding the effects of our brain playing tricks on us will definitely help you avoid some of the most common mistakes that occur. Take a look at the list below and see if you recognize the thought patterns in any of the following:
The Halo Effect If you’ve formed an opinion that overall the project will be easy, all your estimates for the component parts are likely to be lower than if you viewed the project as difficult (also known as the “devil” effect).
Framing Effect Refers to the way our mind perceives data differently depending on how it is presented.
Over Confidence / Under Confidence We are very likely to be confident in an estimate if we have convinced ourselves that we know what we’re talking about.
Anchoring / Peer Pressure Is an effect that causes you to bias your estimate based on estimates you’ve already seen or produced.
Another factor to be considered is the moment when you make predictions, and this is an important one. Take your time to evaluate all variables that might impact the project — requirements, dedicated team, business context, technology and priorities, as these will be unique for every new project.
Now that you understand what your brain has in store for you, it’s time for the next, essential phase — choosing the right method.
How do I choose the right estimation method?
Choosing the right method and approach you’ll use is equally important as successfully completing the process. By now we all know that there is no universal “best approach”, and that accuracy of your estimates strongly depends on the context. But, choosing the method based on the phase you’re currently in can give you a push in the right direction. Depending on the phase you are currently in, be it the inception/pre-sales or elaboration/construction, you’ll need a different method that will help you create reliable estimates.
In this phase, we are talking about high-level estimates. We’ll cover the estimates that occur during project selection and approval period, and prior to project initiation.
Rough Order of Magnitude The main purpose of the ROM estimate is to provide decision-makers with the information necessary to make a decision on whether it makes sense to move forward with the project. This is actually an estimation of a project’s level of effort and cost to complete. A ROM estimate takes place very early in a project’s life cycle — during the project selection and approval period and prior to project initiation in most cases.
Expert Judgment Expert Judgement is supported by historical data, previous experience and process guidelines. There is some controversy around this method — for example, it can be subjective, prone to error and bias, that it is difficult to quantify and validate the estimates and so on. At the same time, the advantages to using expert judgment are numerous: speed (they are quick to produce), require little resources in terms of time and cost and they can be as accurate as other more expensive methods.
The scope is huge! This can’t go under a year!every senior software developer ever
Comparative or analogous / relative estimation This method is based on previous projects, using extrapolated data and overall project success. Make sure you leverage best case practices from the past and don’t forget to make adjustments for mistakes you remember making along the way.
T-Shirt Sizing / Top-Down This method, even though it lacks detailed analysis, works best for a quick first-pass at a prospective project to assess its viability. High-level work breakdown structure helps you create rough estimates on the expected workload throughout the time and helps set the initial expectations. Top-Down method is a great way to start and allows your team to adapt to changes in the future.
PERT Three Point Estimate Turn to this method when you’re working on projects that are especially unique, such as in research and development where you encounter many unknowns. The PERT Three Point Estimate technique is a type of three point estimate. The only difference is that it applies weighting so that the most likely estimate is weighted 4 times more than the other two estimates (optimistic and pessimistic).
1. Estimating time/cost
2. Calculating Standard Deviation
3. Projecting Estimates to Confidence Level
“The project is in the full swing and we can all finally take a break from estimates!” Unfortunately, it’s highly unlikely you’ll be lucky enough to hear or say this sentence. Let’s move on to project execution, post project initiation and sprint planning, and estimation that will, in the end, make your life easier.
Bottom-up / Story Points Don’t fear to commit to this method just because it can be more time consuming compared to other techniques. It’s best to decide on this method once you are already committed to a project because it uses a detailed work breakdown structure. Each task is estimated individually, and afterwards, the estimates are rolled up to give the higher level numbers.
Coping with RFP Estimates
Throughout the time, we’ve had our share of challenging projects. The initial step, estimating a project based on Request for Proposal (RFP) is never easy, but always worth it. Estimating RFP requires you to know every detail of the project and ask all the right questions in order to present estimates that are relevant for your client.
In the end, these projects only amounted to the extensive experience of our team members, so we were able to put together action steps that guarantee smoothly running process. We’re positive these points will make your life easier:
- GET FAMILIAR — put together all the information you possess and get familiar with the product before you continue
- USE ESTIMATION SHEETS — put all the requirements/or assumptions into the initial backlog in a form of an epic or high-level requirements
- DISCUSS WITH THE TEAM — the team should collect all the questions or concerns after reviewing the initial backlog
- GET FEEDBACK — get in touch with a client and get the missing information or details, if possible, to fill in the blanks
- and to the most exciting part — now you are ready to SHIP IT!
Learnings to take with you
Estimates — we can’t live with them and can’t live without them. It is a long journey but definitely an important, dare we say crucial one. Before you leave, let’s cover the most important learnings to keep in mind:
- Only high-level estimates are possible in the early stages of projects, but the level of uncertainty has to be communicated clearly
- There are a couple of methods available to help you provide the estimates in an early stage of a project where three-point estimation is the one most used
- Bottom-Up Method uses a detailed work breakdown structure, and is best once you are already committed to a project
- Never, ever skip the step of getting familiar with the product. After that, use all available tools and previous experience, but don’t forget to discuss it and review it. After taking these steps, you are bound to succeed.
Here at Maestral Solutions, we make sure to gain in-depth understanding of your business and specific requirements, align estimates with plans and goals so the final outcome brings absolute satisfaction with the completed project.