When is it going to be done by?
This is the question that haunts me when quoting a project. You would think after doing this for years that I'd be able to quote out a project like the back of my hand. It's not how it works. Every project is new and will have it's own challenges. I have one project that's 30 days late simply because of a minor change made by an API that we've been unable to work around. The client is upset at me – rightly so – I told them it would only take a few hours. It wasn't that I lied, it's that I had never guessed that a feature would be deprecated from the API that we were relying on. I haven't had the resources to complete working around the issue (we're getting close, though!).
I refuse to go the other direction and charge hours instead of project estimates, though. I think paying for hours encourages contractors to go over-time and over-budget. Every project I'm currently paying someone else for hours on isn't working. They're all late and I've been underwhelmed by the work. On the contrary, the projects that I've paid a project fee for have come in on time and exceeded expectations. I like exceeding my clients' expectations, too.
Four Mistakes That Will Blow Your Next Estimate:
- First Mistake: Calculate how long it will take you to do what the client asked for. Wrong. You made your first mistake and estimated what the client asked for, not what the client actually wanted. The two are always different and the client will always want twice as much for half the price.
- Second mistake: You didn't take the client's delays into consideration. Add a two week delay on the project because their IT department won't get you the access you need. I always try to tell clients, if you get “A” to me by a specific date, then I can deliver. If you don't, I can not commit to any date. The Gantt chart doesn't magically shift, I have other clients and jobs already scheduled.
- Third mistake: You allowed the client to pressure you into an earlier delivery. You didn't include error-handling and testing. The client wanted to cut the costs so they told you to just get it done. Wrong answer! If the client isn't paying for error-handling and testing, then rest-assured you're going to be spending long hours on bugs and maintenance fixes after you go live. Charge for it either way – you're going to do the work now or later.
- Fourth mistake: Expectations change along the way, schedules get messed up, priorities get shifted, problems arise that you didn't expect, people turn over…. You're always going to be a lot later than you expected. Don't agree to a shortened timeline under pressure from a client. If you had stuck to your original expectations, you probably would have made them!
More recently, we started up a contract with a company where we agreed upon a down payment for a project and then an ongoing monthly rate for upgrades and maintenance. We sat down and discussed the goals and what their priorities were – and never even discussed the user interface, design, or any other piece. We set a rough ‘go live' date that was aggressive, but Pat fully understood that the project might be ahead on some features than others. We nailed the launch and are already making headway on a list of enhancements. More importantly, we're both happy.
I don't blow too many estimates but it still happens occasionally. In fact, I'm getting ready to give back a recent contract because, after working on a few projects with the client, I know that even though the client agreed to some vague goals, they're not going to be happy unless they get ten times what the contract is worth. I only wish I could spot these folks earlier. They need to rent their resources by the hour… getting into a project-based estimate with them is a killer.
I'm starting to figure out what's in common with the successful projects we've delivered or are delivering on. Much of it I actually learned through Sales training with the assistance of my coach, Matt Nettleton. I've also figured out that most of the success of my projects has started before I ever even signed the client!
How to Nail an Estimate:
- Figure out when the client expects it. It's their expectations that are most important. You might find that you have a year to complete the work. Why estimate 2 weeks if they're happy with 2 months? You can still complete the job in 2 weeks and exceed all expectations!
- Figure out what it's worth to the client. If you can't find out what it's worth, then find out what the budget is. Can you complete the project and exceed expectations based on that budget? Then do it. If you can't, then give it up.
- Figure out what the goal of the project is. Everything outside the goal is extraneous and can be worked out later. Work to set the goal and complete that goal. If the goal is to get a blog up and running, then get the blog up and running. If it's to build an integration that sends email, then get it to send email. If it's to lower the cost of acquisition, get the cost down. If it's to develop a report, get the report up and running. Pretty comes later and fine-tuning can come at a huge cost with an aggressive timeline. Work on what's most important.
- Work backwards from your level of excellence. Most of my clients don't use me for menial tasks, they get their money's worth by hitting me up for the big stuff and they fill in to complete the easy work. I love those clients and I aim to both exceed their expectations and provide them more value than they are paying for. By the end of our projects, we're often below budget or exceeding goals, and we're ahead on schedules. They provide me with enough room to exceed their expectations… it's that simple.
I still get pressured to reduce my rates and finish earlier, I think every manager thinks that's what their goal is when working with contractors. It's too bad that they're that short-sighted. I simply let clients know that shorter timelines and less money has a direct impact on the quality of the work they've hired me for. The great thing about paying a great contractor what he's worth is that he'll deliver… and you can expect that he'll deliver. When you continue to undercut or beat your contractors to death, don't be surprised when none of them ever work out. 🙂
I also get outbid all the time. The last time it happened, the company opted for a short-term solution that they are going to have to redevelop with each client. My pricing was about 1.5 times the cost, but I was going to build it so they could re-use the application with each of their clients. The CEO actually chuckled at me when he told me how much he “saved” with the other contractor (a contractor I suggested). Four clients from now, he'll have paid over 3 times the implementation costs. Dummy.
I smiled, and moved on to my next happier, more successful, and more profitable client.