Our Dysfunctional Industry, Part 3

In Part 2 of this series we discuss what it means to choose a partner for a creative endeavor, their incentives, and how likely they are to do the job right.

If you’ve read the two previous entries in this series, you’ve surely detected the not-so-subtle parallels between the situations I’ve described concerning someone attempting to choose the right architect and builder to build their dream home and the client-agency relationship in the software industry. We’ve established that the first firm, the firm that endeavors to take the time required to learn as much as reasonably possible prior to beginning the actual building process is more likely to do a good job.

And yet, despite all this, standard operating procedure within the software industry, our industry, is for a client to choose the second architectural firm. That is, it is standard for a client to choose the agency less likely to do a good job. Why?

There are several reasons why clients choose the agency less likely to do the better job. Here are the most common:

  1. Clients are unwilling to commit to an agency before they learn what that agency plans to charge them for the entire project.

  2. Clients see the work of planning and design as part of the core project itself and don’t want to spend money on that aspect before they know more about what those costs are going to be.

  3. Clients want a number at the outset because a number is something they can point to later on to pressure the agency into covering contingency costs.

We will discuss each of these individually.

Clients are unwilling to commit to an agency before they learn what that agency plans to charge them for the entire project.

This is a natural instinct. When you’re talking about hundreds of thousands to millions of dollars, you’re talking about a lot of trust. You’re talking about people’s jobs. You’re talking about millions in future business. The client in this situation is dealing with two opposing forces: the force that impels them to make the right choice in a partner, and the force that impels them to keep costs to a minimum. 

The problem here is that there’s rarely, if ever, enough information to determine which partner will most efficiently maximize available resources. Clients are left to make a decision based on a haphazard bidding process in which a superficial examination of the project’s requirements--typically as written by the client--is performed by agencies who, typically working unbillable hours, are incentivized to gloss over the unknowns and difficult questions and instead focus on setting their estimate not in direct reference to the actual complexity of the project but rather on what estimate will most likely win them the contract. The weaknesses in this approach are obvious.

So what’s the alternative? The alternative is knowledge. Instead of asking for a number of hours or dollars, clients would better serve their own interests by focusing entirely on the solutions proposed by the various agencies. They should ask themselves questions like:

  • Does this agency demonstrate clear expertise on the subject matter?

  • Does this agency appear to understand the overall vision of the project?

  • Does this agency demonstrate an understanding of our challenges?

  • Is this agency up front and honest about the unknowns and the gaps in their knowledge regarding the scope and requirements of the project?

  • Is the team the agency proposes a good fit for this project and our internal teams they will be working with?

By asking questions like these, the client can begin attempting to establish trust with each agency. Once trust has been established, the client can feel confident that whichever agency they choose will do right by them. In this way, the client is more focused on the how over the how much.

Clients see the work of planning and design as part of the core project itself and don’t want to spend money on that aspect before they know more about what those costs are going to be.

This is purely an expectation that’s been set by years of doing it this way, and quite simply it’s wrong--backwards, in fact. The solution to this problem flows directly from the previous problem. Once a client has established trust with an agency, they should feel more confident in allowing the agency the time and effort necessary to properly scope the project before giving back any estimates on cost or timeline. This exercise may be lengthy and costly, but it is far preferable to finding out months later that the project will actually cost double what was expected. It’s also worth remembering that this is not lost time. Every minute of research and discovery can uncover roadblocks and pitfalls that, if found later, may cost orders of magnitude more time and money to fix as work is unwound and redone.

Clients want a number at the outset because a number is something they can point to later on to pressure the agency into covering contingency costs.

Obviously, clients are self-interested. This isn’t a bad thing. If they weren’t, then agencies would have no accountability and would have no incentive to get anything done in a reasonable timeframe. Thus, it makes sense that clients would want to extract a number (price, timeline, etc) from the agencies they are considering, even if they recognize the number is a fantasy. And make no mistake, many clients do recognize that the numbers they receive are not accurate--in fact, many count on it. This isn’t evil. The fact that agencies are so willing to furnish wildly inaccurate estimates in order to win a bid makes them responsible for it, not the client. And yet, in appealing to their own self-interest in obtaining what they may know or suspect is a nonsense estimate, clients are doing themselves a major disservice. I’ll explain. 

Because the client knows the agency wants to keep them happy (and paying), the client wants to be able to point to the number as a way of incentivizing the agency to do more work for less money as the project progresses. The agency, on the other hand, typically has no choice but to go along with this because they know if they refuse to go along the client can easily go find another agency who will, or even sue them for breach of contract. The problem is that holding agencies to an inaccurate, premature estimate incentivizes them into a race to the bottom where they produce software of the lowest possible quality that will still get them paid. Little or no care or thought is given to long term maintenance, code quality, etc. It also results in a continuing lack of foresight and planning, which results in more crunch, which results in still lower quality results. This is an extraordinarily dangerous feedback loop and can easily sink a project.

All of this results in hugely inflated maintenance costs and an unstable, bug-ridden code base, all of which over time will easily outweigh the benefits of a project ostensibly done “on time and on budget.”

As a client you must ask yourself this question: Is it more important to get it done, or get it done right?