estimating precisely

How far off are you on your estimates? Ten percent? Fifty percent? Two-hundred percent? Do you know?

I remember the last straw for me before we started building BrainLeaf. A developer had given us an estimate of 50 hours to complete a feature set, but 400 hours later it still wasn’t done. Frustrated and upset is a huge understatement of what I was feeling. I had to deal with big losses, multiple missed deadlines, a frustrated and demoralized team, and a very upset client. Sound familiar? 

We went from huge differences in estimated vs. actual times on a regular basis to being within 2% of our estimates on most projects. 

If you’re dealing with missed deadlines and losses due to underestimated projects, here is the trick to solving it and never dealing with any of these frustrations ever again:

Step 1: Write it down… all of it.

Every section, every page, every feature, every task, every everything. At my agency, we build SaaS applications, manufacturing systems, websites and other web-based applications, so this explanation is going to be based on that. But it doesn’t matter what you do, if you follow this process, your estimates will be substantially more correct. 

Start by writing down all the major sections, in BrainLeaf these are your top-level cards. Then under each top-level item, make a list of all the subsection or sub-tasks. For a website, this might be a home page and then every item on the home page.

Next, describe each section in detail. For a website, write down the structure of each area including all the ‘fields’ being used. For example, on a home page slider or hero carousel, you would include the image for each slide, text, button or call to action, left and right arrows, next image buttons (the little circles you might have at the bottom to show which image the user is on). Then describe the functionality of each item. Explain in the notes what happens when you click on the next and previous buttons, what happens when you click on the call to action, what happens when you click on the next image button. What happens if you just click on the image? What happens if you click through all of the images? Is there any extra animation on this area? Do you know what plugin you’re going to use for this area? 

This is the first trick. You have to write EVERYTHING down for the entire project, in detail. If you write it all down, then there is no wiggle room for you or the client. Everyone knows exactly what’s expected. If you want to go above and beyond once you get into the project, you can do that. But that is outside of what you initially agreed to do and if your contract refers to the initial scope of work, and the client asks for more, then you are contractually protected. This gives you the leeway to tell the client “sure, we can do that, but it’s going to cost more and take more time.” 

This may sound time-consuming and expensive, but it is a lot less time consuming and expensive than a big disagreement with a client or a lawsuit. This is the first thing that BrainLeaf helps you manage. With our templating system, you can save your project, or parts of your project, to be used over and over so you only have to take the time to write it out once.

Step 2: List the times for each task, granularly.

Now that you’ve got everything written down, this is where the magic happens. Each person that will be working in the project needs to list out their times GRANULARLY. That means no tasks over 2 hours. The more broken down your tasks, the better your estimate. We request that our team breaks down tasks into 15 minute, 30 minute, and 1 hour increments. If someone says “but this is a larger task,” then ask them to break it into smaller chunks and list them. 

The trick here is that when someone who is responsible for the work is required to break their tasks down into small increments, they start really thinking about how much time things are going to take. If you require them to think about all of their times granularly, then they will start to think about all the things they really need to do and stop missing steps. When team members come back with a 5+ hour estimate on something, it is always wrong. Make them break it down and explain the task. If you do this, you’ll get accurate estimates, and if nothing else, you’ll be able to help your team figure out what went wrong if they do miss their estimates. 

Step 3: Review times with the entire project team 

Make sure that every person who is expected to do work on the project writes down their hours on each task or section they are to be working, then review it with the entire project team. Many times, if the whole team reviews the project they will realize that some team members didn’t consider aspects of the project and can adjust times to be more specific. 

Step 4: Don’t let sales determine project time

So often, the sales team tries to direct the project build team’s times and estimates. 

“The client won’t pay that much” or “They need it sooner than that” they’ll say. That’s fine, then the client needs to have less work done or pay more so you can add resources. Either way, if you let sales determine your project timelines, you are doomed for a mismanaged project because it’s the sales team’s job to sell, not to manage. At the end of the day, they are going to be much more upset when the client is upset and yelling at them than they will be to just tell the client what is actually reasonable from the start. 

Step 5: Refer to your scope of work in your contract

Now that you’ve got a FULLY DESCRIBED project that is estimated GRANULARLY with REASONABLE times, now make sure to reference this in the contract and take the client through the entire scope of work before they agree to get started. BrainLeaf has a list of contracts available for use for digital projects, all of which refer the client to the scope of work. 

Step 6: Every time the client asks for a change, make a change in the scope of work and inform them of the NEW DEADLINE 

Things change during a project, and that’s fine. But every change incurs additional time and the client must be informed about the additional cost and deadline EVERY TIME. Here’s how to do it:

CLIENT NAME,

After looking over your requested changes, your additional cost will be $$$$ and the new deadline for the project will be NEW DEADLINE.

Thanks so much and please let me know if you have any questions!

Project Manager Signature Here

It’s that simple. If you do this every time, there will never be a question about why your team didn’t make a deadline and why something costs more. But you have to do it every time. 

Projects get off track one day at a time. A project very rarely starts being off by a month on day 1. It’s a lack of planning and project management that take projects off track. As long as you are straightforward with your client at every step, even if the project is off track, the client generally won’t be upset. 

If the client doesn’t like your new costs and timelines, then refer them to the scope of work. Also, if you do add something without changing the deadline or cost, make sure it is reflected in the scope of work and that you inform them of the change and what you would have charged for it if you were charging.  

Having the initially, fully planned project scope of work will almost always keep the client from getting upset in the first place. Since you went over everything with them, it’s their responsibility for not thinking about something, not yours. 

That’s it! It’s not magic, but it seems like it sometimes. 

magic trick

We went from upset clients and lost profits to very happy clients and a profitable business almost overnight from this process and so can you!

What do you think? Did I miss anything?

Let me know in the comments what you thought!