Practical WordPress Development

A Strategy For Estimates in Software

This is one of those posts that’s driven by my own personal experience and nothing more. I know there are tons of books, articles, blogs, and probably even tweets that would disagree with what I’m going to share, but as someone who has worked for himself for the last half a decade or so, I figure it’s something worth talking about if it’s only tangentially related to WordPress (or running your own business).

Furthermore, I rarely discuss business-related topics here. There are others – like Chris and Curtis – who do a far better job than I ever could.

Nonetheless, as someone who’s done enough project proposals and free estimates – just like most freelancers, agencies, and so on – I’m coming to the conclusion that, at some point, estimates in software aren’t enough if they are free. There’s more to it than that.

And when you’re livelihood depends on your business and your business depends on cash flow and putting effort into trying to land a project that results in no cash flow negatively affects your livelihood. Thus, there has to be more that goes into drafting a proposal that just coming up with a document to send to your potential client.

So I suppose that’s the TL;DR version of the experience(s) on which I’m going to elaborate.

The Challenges of Estimates in Software

First off, this post is not motivated by any one particular person or company or client and as much as we love the drama that can come with WordPress (or any other company in our field), that’s not what this is about.

It’s about a set of experiences that have occurred over a period of time that have ultimately resulted in my wanting to caution myself (and others) against simply providing estimates with no other attempt to get to know who you’re going to be working with.

How It Started

Regardless of the industry in which you’re working, you’re probably used to either seeing or offering free – or paid – estimates. As with anything, there are rules that govern the decision behind which option you opt to use and you’ve got those rules in place for a reason.

Going through which is best and which isn’t is beyond the scope of this post, but I’ll share that when I first started working for myself, it was relatively easy to draw up a proposal based on specifications because the size of the projects were so small, and because the amount for which I was working was low enough to which spending the time on the proposal wasn’t anything drastic.

Internet Explorer 6

On top of that, the web wasn’t as involved as it is now – believe it or not. That is, responsive design wasn’t a thing, nor was Sass, Less, any of these pre-processors, or the build tools that we have (let alone the proliferation of front-end frameworks).

Instead, it was relatively straightforward – compiling was something that was what a piece of software did to turn the source code you’d written in one platform into machine code so that it could be executed on a machine. Now it means a variety of things depending on the languages with which you’re working.

But that’s off topic, so I digress.

The point that I’m trying to make with bringing this up is that in the few short years that I’ve been doing this, the technology for building both websites and web applications has changed dramatically and it’s not slowing down. As such, the demand for the work hasn’t slowed down either.

To be clear, I’m not saying this is causation (clearly it’s not), but it is related. The newer things that our browsers are capable of doing, the more that our clients often want with their sites and applications.

The Story So Far

When I first started working for myself and offering estimates, it was relatively straightforward: I had a template that I used to put together the offer, it was made up of a relatively standard set of headings, and then I’d base said estimates around the specifications and requirements provided by the customer.

At that time, the amount of work required to get something together was relatively small – if time equates to money or time is money or whatever phrase or perspective you have – this wasn’t something that took a significantly large amount of time, so it wasn’t something that I minded doing.

Besides, how do you justifiably ask someone to pay for an estimate for a bid that they may not even accept?

I’ll come back to that question more in a moment.

Anyway, in the past few years – as noted – web development has gotten more complex (a good thing!) with a variety of technologies and things that we can do in order to make sure our client’s visitors have the best possible experience with their sites, application, and/or service regardless of the device that their own (let alone regardless of how much work is done, say, on the client-side versus the server-side).


To that end, drafting proposals now takes quite a bit longer and talks about the specifications and requirements are also more complex than they once were.

One of the most frustration aspects of drafting up proposals for software oriented projects is to spend the amount of time talking with the client about what they want, need, and so on in order to fully understand their problem only to draft up a proposal and to receive to no response.

And that’s the key – this isn’t about the people who respond and it’s not about the people who take a few days to respond, it’s about those who simply disappear into the ether of the Internet.

How Does This End?

When talking with clients, there’s generally a handful of different personality types. That’s to be expected, right? I mean we all have our own personalities and we do what we can in order to make sure that we define mutually beneficial relationships.

But, as so often seems to the case, people are quick to want to start a web project and so the process I normally follow is:

  • Let them know the state of my backlog.
  • If it still works with their timeline, then I go through a discovery phrase to understand their problem and attempt to come up with a high-level solution for how to solve it.
  • From there, I’ll usually hope on Skype, Hangouts, or even a direct phone call to introduce myself and get to know the person and to clearly articulate my understanding of the problem and to clear up any misunderstandings that email may have caused.
  • After that, I’ll then put together a proposal and send it over to them.

Most of the time, this approach works well. Even if the proposal isn’t accepted (that is, they opt to go with another developer or agency), communication remains open and amiable, and it’s has even lead to other projects.


There are times where things seems to be going along well and then the client simply disappears. No communication. None. Zero.

And the interesting thing is that I think it’s far more common to hear about developers and designers going AWOL than it is to hear about clients doing the same thing, but it happens. But here’s the part that irks me: I’ve – and others – have taken the time to fully understand the problem to the best of our abilities and draw up a proposal for how to fix it during the course of our working ours (or even after hours) only to be completely ignored.

Disrespectful, isn’t it?

So, as asked earlier:

How do you justifiably ask someone to pay for an estimate for a bid that they may not even accept?

I still don’t think that you do. I still lean in the direction of free estimates, but in order to get that estimate, there are significantly longer conversations that must happen prior to putting it together so that you and I can determine if we think we’d have a good working relationship.

Because, if not, then is it really worth my time to draw up a detailed proposal for something that I already feel isn’t going to be the best choice for either of us?

But Aren’t You Spending More Time Doing This?

Sure. I never claimed that my end goal was to spend less time and make more money. Maybe that’s the dream (“work smarter, not harder”) and maybe it’s possible after you’ve put in the sweat equity. But I don’t know anyone right now who makes money in a disproportionate manner to how long they work (sorry Tim Ferris).

That happens in certain fields, for sure, but generally speaking – from a self-employment perspective – it’s more about creating a working relationship with a customer so that you can solve whatever problem(s) they have and perhaps generate future work from the relationship.

But that’s just it: Getting an email and then responding to it with a proposal isn’t defining any type of relationship. It’s more of a transactional exchange. And that’s not what I’m working for.

Instead, I’d rather Pressware be seen as the development branch of someone’s business. In order to do that, I need to clearly understand the problem at hand, I need to know who I’m working for, and I need to understand where it’s coming from.


This requires more relational equity – as they say – than simply providing a document outlining the project. To that end, I’m willing to spend the time talking through email and through Skype, Hangouts, or the phone in order to get to know the client before drawing up an estimate to even determine if I think this will be a good fit.

The majority of the time, when I do this, projects end up working out well. When I’ve not done this, projects haven’t really landed.

Your Experience?

Of course, we’re all different in how we approach problem-solving, client interactions, and so on. What I’ve shared here isn’t prescriptive and it’s not something I’d say that would work across the board.

It’s worked out okay for me, but what about you?

I’m also interested in hearing how you operate and how you approach estimates in software, what’s worked, what hasn’t, and how you’ve gone through the process of both losing and landing clients.


  1. Mike

    Valid musings on estimates.

    I give free estimates, I don’t even consider charging for estimates even though estimating a web project often takes hours for me and I, arguably, should be paid for my time. It’s especially tough because I do all of my client work moonlighting, and so if I need to call or talk to a client, I usually have to take personal/vacation time from my regular development job to talk with them. In the past 6months I think I’ve taken about 5 vacation days, and on 4 of them, I had scheduled at least an hour of time for talking with clients on the phone/hangouts/etc.

    And yet, I don’t bill for estimates… Sort of.

    First, I put myself in the shoes of the client if this were some other service. I had my basement finished about 3 years ago, and I met with 2 contractors about it, and they did a walk through, checked everything out, and gave me estimates. As a homeowner who was going to end up dropping 4 or 5 months pay on a home renovation, I would have considered it a non-starter if one of these contractors said “eh, it’s gonna be $80 for me to come out to your house and look it over…” Hell, and who could blame them if they did? They’re not just talking on the phone, they’re driving to my house, taking measurements, spending an hour with me, being jumped on by my dog. And yet, I’d have no tolerance for somebody telling me that I needed to pay them $80 or $100 just to have that conversation.

    But more importantly, with every accepted job depending on the size, I typically butter on a handful of hours that I’m not spending doing development… And I think this is typical for most freelancers or people who work with clients. A feature that, realistically, takes me 4 hours to build, I’ll estimate 5. A site update that take 2 hours to make, I’ll estimate 3. Without a doubt I make up for these hours with conversations, interruptions in the day, and other “non-working” consultations with the client.

    So, I don’t bill my clients explicitly for estimates, but I’d admit that in most cases, I get paid for them.

    • Tom

      Obviously, I’ve been on the free estimate trip for a while – I just can’t fully rationalize paying for that, but you do bring up an interesting point in that the cost *can *be recouped throughout the course of the project.

      The difference that you and I face (if I’ve read your comments correctly) is that the contract work you do is outside of your 9-to-5 so you have a degree of flexibility (that comes at the expense of your regular job, of course) in order to handle these things. So in one place where you’re losing money, you’re [ideally] also making some of that money back (if not more).

      One of the things about self-employment for me is that I’m still – even (or just?) half a decade in – trying to figure out some of the best ways to tackle the problems that are normal to this space.

      Sure, lots of blogs, articles, books, magazines, and so on have been written about this – and I don’t write them off at all – but I do think there are finer nuances to each each person’s businesses that sometimes require that we evaluate the principles that we’re often taught.

      This comment ended up being more of an extension of the initial musings, so hopefully it doesn’t seem like a random tangent but I do appreciate what you’ve shared and thanks for getting my mind rolling on it again ;).

  2. Andrew Fielden

    Over the years I have had the same dilemma and it seems to have come down to two strategies dependant upon the size and nature of the job. There is a massive caveat for both though.

    For all jobs we use a sales funnel type approach, that is to say of 20 jobs we look at 10 will be rejected by us at qualification for being outside of the work we do either because the fit of the job is poor or there is something about the potential client that we feel will not work.

    Of the remaining ten we can split them into standard or complex. A standard job will tend to have features that we are very familiar with and can gauge relatively well how much it will end up costing in time. This is like your jobbing builder coming round and being molested by your dog.

    A complex job is where there is more technical investigation, scoping and thereafter specification needed, for these we try to say that the initial phase of the job is to fully specify the remainder of the job with a specified goal and one of the constraints being the budget. This is more like getting an architect to design your building. Thereafter they get the spec and hopefully we move onto the build phase.

    We aim to get one or two jobs out of these ten.

    The caveat: In all cases there is a cost to whatever stage we get to and ultimately this cost must be borne by the jobs that we undertake. This is taken into account in respect to a general overhead of doing business but it must be taken into account.

  3. Curtis McHale

    I wouldn’t typically bill for the estimate process you’ve outlined as well. I’ve got mine down to be pretty quick and accurate.

    It’s when we end up going rounds to even get a scoping document correct that we really move from an estimate to a discovery process. That’s when I start billing.

    Also if we need more than about an hour of phone time, I move to billing. The scope/discovery is a valuable asset that they don’t have and could take anywhere to get an estimate and then go with another firm.

    I feel that providing that value should be compensated.

    • Tom

      I’m glad you chimed in, Curtis. I was specifically interested in your take on some of this because I appreciate your opinion on this kind of stuff.

      Plus, it’s nice to feel validated :).

      Anyway, over the last few projects I’ve done – mainly this year – I *have* begun billing during the discovery process because it can go on for so long, you know? There’s a lot to unearth from a simple “This is what I’d like to see”
      statement to the many pieces that you end up needing to put together in order to solve the problem.

      > Providing value should be compensated.

      I like that. Gonna file that away and use that one as an internal mantra, I think.

  4. Zadli

    Thanks a lot for the post, its perfect with the screenshot :)

Leave a Reply

© 2020 Tom McFarlin

Theme by Anders NorenUp ↑