How to Hire a Digital Agency and Get What You Pay For

WARNING: This is a “tell-all” article from someone who has spent 14 years working for three different digital agencies, from small to very large.

The only reason I can write this now is that I no longer work for one, otherwise if this was discovered, Human Resources would surely be typing up my termination letter this minute.

If you work with or are thinking about hiring a digital agency to build your website or web application, you need to read this article.

There is a lot of marketing hype that surrounds digital agencies. Many of them have armies of salespeople, carefully crafted websites and PowerPoint presentations, and hand-picked references to make themselves look like the best thing since sliced bread.

Let me start with this: you definitely can get excellent results hiring a digital agency; some of the most talented developers and creative people I know work for such companies.

HOWEVER, due to the way agencies work from a business perspective, it’s also possible to get lousy results and lose your shirt on the investment you make with them. Read on if you’re interested in avoiding that.

Before I Reveal the Dirty Truth

Keep in mind that that what I am about to reveal may not apply to all agencies; I can only speak from my personal experience, after all. Nor will I name names or cast aspersions on any particular agency; that is not my intention. What I do want to do, however, is give you some interesting things to think about that will make you much more savvy in your dealings.

Be prepared for any agency you deal with to assure you that the concerns I raise here are “not an issue”. I encourage you to verify that with your own eyes, ears, and common sense; these are real issues, not fake ones, and agencies pay a lot of money to hire skilled salespeople, give them “Director” and “Vice President” titles within the company, and have them smooth-talk clients. Don’t get taken for a ride!

Fact #1: What Happens When Agencies are Underselling

If you work at an agency, you are usually in one of two modes; either you don’t have enough work to do, or you have way too much work to do; there is rarely a perfect balance. Let’s understand this first scenario.

Let’s say the agency has 20 people available to put on client projects. Their workload is entirely dependent on sales. If they are struggling with sales, they either won’t have enough work for everybody, or people will be only partially allocated to projects.

When an agency is in this state, it comes under tremendous pressure to raise “utilization”. It is also when you are most likely to hear some amazing promises from the salespeople, who are now desperate to sell something.

In this situation, agencies are more likely to offer up plans they can sell, not necessarily meet. They will offer mind-boggling discounts and promise to meet incredible deadlines without blinking an eye.

I personally have been handed many projects sold under such situations, then told the budget and deadline the salespeople agreed to, and promptly responded with “you must be joking.”

When an agency is desperate for sales, you cannot blindly trust that a project plan they give you has been properly vetted; there is a huge compulsion to heavily discount it. Mark my words, this is not a “great deal”; this is a vicious trap that will come back to bite you later. There is a high chance of missing whatever deadline was promised, and that the work will be rushed and lacks the kind of care and quality you were expecting.

This is not even deliberate. Sometimes development teams, or at least, development leads, ARE consulted to “vet” project plans and estimates before they are sent to you. But you must understand that they feel tremendous psychological pressure to say “yes” or “maybe it’s possible” in order to not lose the sale. As a result, they will acquiesce to plans that are objectively not that reasonable.

How to Avoid the Trap

The way to mitigate this as a client is to be suspicious if you keep demanding things and the answer you keep hearing is an immediate “yes” and “no problem”. Also watch out if the agency says they can take on a new project “immediately”, especially if it’s one that requires a big team. That probably means they have idle people who are ready to go.

There is nothing wrong with hiring an agency under these circumstances as long as you make sure the deal is realistic. In fact, it can work to your advantage because it means your project will get priority and attention within the agency, which is a huge bonus for you.

Just don’t be too surprised if the agency is promising you more than they can actually deliver—that happens, and this is why. Fortunately there is a relatively easy fix for this, which I’ll explain at the end of this article.

Fact #2: What Happens When Agencies are Overselling

Just because an agency is full up with projects, has as many clients as it can handle, and is keeping everyone busy doesn’t mean the salespeople stop selling.

Nope. Instead the agency keeps selling as much as it can. So there’s not enough people to staff all the new projects that are being sold? Pfft, we’ll worry about that later. Better to have too much work than not enough work!

For them, I mean. For you, the client, there is a danger that you won’t get assigned as many people for your project as you actually need, or the right people that you need won’t be available.

Furthermore, your project will compete for resources with other clients the agency is serving, and trust me when I say politics will come front and center.

Let’s say your company, Typical Enterprises Inc., has a project which requires a particularly skilled javascript developer. Luckily for you, the agency has one. Unluckily for you, he is also needed for a project with the Giant Megacorp client. Giant Megacorp is spending twice as much money as you, and has great prospects for repeat business in the future. Guess who gets the javascript expert? Not you. However, there’s a new kid that was just hired that supposedly knows javascript—the agency will pass him off to you, assuring you that he is the “expert” you need.

I know this sounds crazy, but I’ve literally seen developers assigned to projects who were reading out of programming manuals at the same time as doing their work. This is because, whether they were an exact fit or not, they were the only ones available to work on it—might as well assign them to the project and let them figure it out!

“Overselling” doesn’t just mean selling past the point of capacity; it also means selling past the point of capability. In most agencies the person responsible for sales is different from the person responsible for delivery. That’s how these situations happen in the first place.

I know this is common across the industry because I’ve routinely seen the source code from projects handed to us from other agencies that the client fired. I’ve seen some really bad code, the kind you would not expect, from some very prestigious consultancies who shall not be named! Clearly, the best and most qualified developers were not assigned to the project. More likely it was just “whoever was available on short notice”.

How to Avoid the Trap

Here’s the thing; you either have to be willing to outspend your competitors to get the best resources from an agency, or you have to have lucky timing, or you have to not be in a hurry.

If you can’t swing the first two, you’re better off giving the agency as much lead time as you can before your project begins. The more lead time there is, the easier it makes it for the agency to:

  • Allow time for people to “roll off” projects they are on and onto your project;

  • Have time to hire additional people (yes, agencies do this to keep up with demand!)

  • Realign internal scheduling and planning to accommodate the needs of your project.

If you come to an agency in a rush and need them to start working on your project tomorrow, then you are just going to get whoever happens to be available right then. Good luck with that!

Next, you have to watch out for “the old switcheroo”. The old switcheroo is a tactic agencies use to make clients feel that their projects are in good hands. They’ll have their top, in-demand people come visit you for all the sales and kickoff meetings. You will think your project is getting awesome support. Gradually however, these top people will be less and less involved in the project, until they disappear altogether, only to be replaced by some junior developers who are, behind the scenes, performing all the “heavy lifting”.

Of course, those junior developers were going to do the work all along; those senior developers just show up initially to make you feel comfortable, until they are needed on some “more important” project.

Stay tuned to the end of the article for some advice if you are worried about this happening.

Fact #3: Agencies Emphasize Appearances Over Transparency

Most agencies have an internal performance rating structure that incentivizes always reporting good performance and good results—regardless of what is actually happening.

In other words, you always want to look good in front of your boss, you always want to make your boss look good in front of his/her boss, and you ALWAYS ALWAYS want to look good in front of the client. As a result, clients are usually told that projects are moving along in excellent fashion, and without any issues, whether they are or not.

One of the reasons I no longer work for agencies is because I was unrepentantly straightforward with the truth—even in front of (gasp!) clients (what a troublemaker I was!). Of course, every project has its share of difficulties; its share of mistakes and human error; its share of unanticipated results; all of which need to be communicated and adjusted for.

However, it is extremely hard for an agency to say “Oops, we made a mistake”. You probably will never hear that. It’s extremely hard for an agency to admit “We are running behind schedule”. The problem is you cannot fix those problems if you are not willing to first acknowledge them.

What is popular at many agencies is to use a green/yellow/red reporting system to indicate the level of alert on their projects. Almost always, there is great reluctance to take a project out of green to yellow, and even further reluctance to take a project out of yellow to red. Being subjective in the first place, there is always some rationale you can come up with to defend any color anyways—which is why I think it is not an effective system to begin with.

My point is, I’ve seen many projects in the green status for most of their duration, until the very end when it suddenly switches to red. Why? Because by late in the project, it no longer becomes possible to convince people that things are going to “turn out all right”. Facing reality has become unavoidable.

How to Avoid the Trap

“Working code is the measure of progress”. This used to be a famous saying in Agile circles, and it stands the test of time. Don’t rely on being told how things are coming along, inspect the progress yourself on a regular basis.

Inspection does not mean a demo: it means inspection. Here’s another crazy thing I am going to admit; I have seen a lot of cleverly made fake demos. I’ve seen website demos that looked impressive, but were in fact mostly a static image behind the scenes. I’ve seen applications that looked like they work, but were not really connected to a database, just hardcoded to pass the demo.

Developers are driven to this level of desperation because they are expected to show something they they were not given nearly enough time to build. Because admitting that you’re behind schedule is “unacceptable” by agency standards, you get the “fake demo” instead. Not a good tradeoff.

Most agencies will strongly protest against an actual inspection process. That means playing around with a “work-in-progress” to get a sense for how things are coming along. The agency will be very sensitive to hearing criticism or feedback from that because everything is still unfinished. They don’t want anything that’s not “perfect” yet to be held against them.

This part is true; you should not hold it against them because it IS a “work-in-progress”. You should also refrain from giving early criticism or feedback on issues that are likely to be resolved with continuing work. Not only is great apprehension and fear likely, so is finding out that reality is a bit different from what everyone was expecting. In fact here is what might happen if you get hands-on with inspecting working code:

  • The agency may request that the scheduled date for this be pushed back—this is your tipoff that they’re not comfortable with their own progress, and they’re probably making their people work nights and weekends to “get it into shape”.

  • You will get something to test, but you will be shocked by the number of bugs you find, instances where the requirements were not followed, and just the general sloppiness of what you see.

Here is my challenge to you: if this happens, avoid the urge to become livid. Instead, take a deep breath and tell yourself “this is evidence that we are operating under unrealistic expectations and need to make some adjustments”. What is most likely is that the agency needs more time, or a reduction in scope to meet the deadline, or both. Forget about what they did or did not promise. The only thing that matters is what you’re actually looking at and what it will take to get it to where it needs to be.

Yelling at your agency is no solution, either. All they will do is make their developers work 60-80 hour weeks to try to accelerate progress and make you happy. A) The developers don’t deserve that, and B) that will not improve your deliverable, but instead result in rushed work and corner-cutting that you will come to regret in the long run.

Work on treating your agency relationship like a “partnership” rather than as a “vendor/client” relationship and they may (hopefully) relax and drop some of these defenses and pretenses. You must work together collaboratively, openly, and honestly, that is the only way that works. Otherwise, you are more likely to be disappointed with how things turn out.

Enough With the Challenges, Now For the Solutions

My intention here is not to turn you off from using digital agencies; rather it’s to help you understand how they operate, and how to leverage them in a more effective way. There are some brilliant creative people and developers working at these agencies, and having them work on your project can be extremely beneficial.

All you need to realize those benefits is to be a smarter, more savvy, and more responsible client, when it comes to dealing with the business end of agencies.

Below are some tips to help you establish a productive partnership:

Tip #1: Start with a “Pilot” Project

Giving an agency a huge project to start off with is a bit perilous. The bigger and more complex the project, the more likely the agency will give you a plan that is underestimated, because of the whole sales angle. Plus, you really don’t know what you’re getting into, and by the time you find out, it will be too late.

Instead, I recommend giving them a smaller “pilot” project to test the waters. Your goal is simple; replace the theory of what the agency can do with evidence of actual results.

In other words, take an empirical approach to figure how much and how fast an agency can progress on your project, and to what level of quality, and to determine what kind of issues will emerge when dealing with them.

If the agency is following an iterative development approach, discover what their “iterative velocity” is. If your agency presents you with a Waterfall plan, just make it a short one and do the same thing; compare what was expected at the beginning of the project with how things turn out. This will give you some important data:

  • Insight into how much the agency can actually get done in a fixed amount of time.

  • Insight into the level of quality/number of bugs/other issues that you can expect from the agency’s development process.

  • Insight into how well the agency communicates with you.

Now, assuming they did a good job, you can use this information to forecast what realistic timing and cost for a bigger project should be. Remember, empirical data is information you can actually trust and believe in, and you need to put it front and center when dealing with agencies!

Tip #2: You’re Safer With a Retainer Agreement

The agency world is famous for inventing the “Fixed Bid Statement of Work”, but this is actually the worst type of agreement.

These fixed bids always seem like a good deal for the client, but they’re not. They result in one of two scenarios:

In the first scenario, the most common, the agency has underestimated the fixed bid and has underestimated how many changes happen on a real project. Somewhere mid-way through the project, the realization sets in and the agency starts panicking about its margins on the deal. Rather than being able to focus on delivering the best possible product, now the agency team is told to get it done as fast and as cheaply as possible. The “great deal” that the client gets up front doesn’t seem so great when the final deliverable is not as impressive as was expected, or has quality issues.

In the second scenario, the agency is wise to the risks of underestimation, so it deliberately overestimates the project to be on the safe side, unbeknownst to the client. The project stills ends up taking longer and costing more than anticipated, but it’s ok because it’s covered by the huge margin the agency added to the price. This scenario is less and less common in these highly competitive times, but is how some of the big agencies got big in the first place. However, let me ask you as a client: do you mind overpaying?

You’re better off with a retainer agreement, which means that you are hiring a certain team from the agency for a certain amount of time. Everybody thinks this is scary because it means there is no “guaranteed deliverable”. I hope you understand from what I said above that this is a pipe dream, and chasing after it will cost you in one way or the other. You’ve been warned!

The key to making this work is the pilot project I mentioned in Tip #1. I’m not asking you to agree to a retainer and hope it all works out. I’m telling you to run a pilot project with the agency first, get a strong sense for what you can expect from them, and then, if you want to keep going, put them on retainer for additional work. Here is why it works to your benefit:

  • A retainer pays for a certain team of people at the agency to be dedicated to your project. There is much less risk that someone will get pulled off your project to go work on a “bigger fish” client, or that they will be “juggling” your project with something else in order to be fully utilized.

  • A retainer can be predictable and eliminates underpaying and overpaying. Just say “We will pay $x amount per week/month/iteration for y weeks/months/iterations”. Now the agency has an incentive to get more week/months/iterations out of you, so they will try to show you their best performance each time.

  • The project can easily accommodate changes in scope or direction without triggering an arduous “change order” process; this because you are paying for working time rather than a fixed cost based on an itemized estimate.

Tip #3: Be a Trusted Participant in the Project

Keeping your agency on its toes is really the key to maximizing its performance. Don’t just disappear for long stretches at a time and assume everything must be going OK. You’ve got to actively participate in the project and frequently check-in, just as you would if you were doing the project internally instead of outsourcing it.

When I was project managing agency accounts, I would at the very least have a weekly check-in with the client; but quite often it was two or three times a week, or daily. That’s what you should expect.

In fact, the easiest way, if your agency does Agile, is to be a part of the agency’s Daily Scrum/Daily Standup. The key thing to observe is this; does the agency treat you like another member of the team? That is what you want, but they will only do that if they trust you.

If they do not trust you, the meetings you have with the agency will be carefully “sanitized” so that you do not hear of any internal difficulties that they think might be upsetting for you to hear. The meetings become about the agency reporting “status” to you, the client, particularly “good statuses”.

This is next to useless. What the check-ins should really be about is solving problems, removing impediments, making adjustments if things are not working, etc. That’s how real projects get done. The agency team needs to trust you in order to be that transparent with you and allow you to be that involved with what’s going on day-to-day. It’s also the kind of trust you need if they are to be comfortable with you inspecting their work-in-progress.

If you were under the impression that outsourcing your projects to an agency meant that you could sit back and do other things while the agency did everything on their own and then delivered to you perfect results, I am sorry to burst your bubble.

If you still want to believe that, then I can’t help you. If, however, you are willing to put in the time and energy to become a trusted, active participant in the job you give to the agency, and to build a strong working relationship with them, I guarantee your results will be vastly better than those who do not put in the effort.

Tip #4: Test for a Healthy Amount of Questioning and Push Back

Whatever you do, don’t punish your agency if they occasionally push back on things or ask questions. That is the only indication you have that they are actually trying to help you and help you deliver more value.

A lousy agency will just take your orders straight away without any further comment. That’s because they just want your business—they’re not really that interested in whatever it is you’re trying to accomplish, or how to make it better. The just want you to tell them what to do and they will do it.

In a good agency, development teams are actually eager to suggest new ideas to improve your project—unless they are not given the chance. Or, they get discouraged from doing so: for example if someone suggests a great idea that requires a bit of extra time and money, but as the client you respond that you refuse to budge on the deadline or the cost, they will soon stop giving you any new ideas, under the assumption that it’s better not to.

As a client, you must understand that getting the best thinking from your agency is not automatic; YOU are in the driver’s seat. The way to do that is to invite everyone on your agency team into a dialogue about ways to improve upon or increase the value of whatever it is you are doing.

You will know if you have the right team for this if they are curious about what you are doing and ask you a lot of questions:

  • Who is going to be using this?

  • Why are we doing it this way?

  • What if we did this instead?

  • What should happen in this scenario?

..etc. This is what I normally expect when there is a new project to work on. If you don’t give a chance for this to happen, or if you are greeted with silence, I would start to worry. A lack of robust discussion probably means your end result will have more gaps and oversights, and will leave potential value on the table.

Next, be wary if your agency does not push back when it would seem appropriate for them to do so. An agency that does not push back when they should means that they are not protecting YOU from a potentially bad decision or unrealistic course of action.

Here are some examples of the kind of push back you should be getting:

  • You want to go with a 3 layer drop-down menu on the navigation, but the agency’s UX person pushes back and recommends an alternative.

  • You want a quick solution that passes data using URLs, but the developer pushes back and insists that a more robust database solution is needed to make the application secure.

  • You want to add in an extra feature to the current timeline, but the project manager pushes back and says it will require an additional two weeks.

In each of these examples, pushing back is a healthy response. The agency is not trying to be difficult; they are trying to protect you from making a bad decision or to commit to something that is unrealistic. That’s the kind of initiative you want. If the agency is not pushing back for some reason, either out of fear or ambivalence, it will ultimately mean a worse outcome for you.

Conclusion

The secret to success is not just about hiring a great agency; it’s about knowing how to be street-smart when it comes to dealing with them. If I can help even one company get a better outcome from their agency relationship, than it will be worth the risk of me writing this article!