It’s hard for me to write anything that might sound anti-agency. While I spent two third of my professional life as a product lead in startups and big companies, I spent the last third working as a product designer and Head of Product at agencies, and some of the better ones. I’ve also been a client of two different agencies who helped me build my own software products, and helped manage agencies for clients. And of course I now I run Remake Labs, which despite everything is a design sprint agency.
Most agency employees though, if they’re honest, would tell you about the staggering rates of project failures they encounter. And while some of them are the result of clients who stubbornly pursue a dream that has neither merit nor market validation – another big cause is the client-agency relationship itself. Over my time working with agencies, I’ve developed an understanding of the risks involved, and developed my own unique ways of working with them. And when an entrepreneur friend urged me to write a post about this, I figured – why not?
So here are 6 things I do differently when I hire an agency, and why:
1. First, financially align the agency’s interests with your own.
The key fact to always keep in mind is that most agencies are in a perpetual conflict of interests. Unless the payment structure is purely based on outcomes, an agency is incentivized to push for increased scope, be inefficient, spend more hours, multitask more, spend less time validating and designing and more time building. They are also incentivized to sell you lower-cost, low-skill talent, because the profit margins on those is higher and the demand lower.
An outcome-based compensation works best, of course, but isn’t always possible. At Remake we sell 5-day design sprints, which have a guaranteed outcome of a tested prototype. (Prototype + feedback from users.) We charge a fixed price for that, because the outcome is known clearly in advance.
This is not really possible with development work, though. When it comes to building a technical product (software or hardware), fixed-priced projects essentially never work (unless they’re way over-priced). This is because development work is by nature uncertain and hard to estimate. Developers uncover the challenges as they go, which is why fixed-price tech projects are usually a guarantee for shoddy work, internal tensions, and increased risk of failure. My solution to working with development agencies is simple: ask for an hourly rate, cap the hours per week or month, and supervise to make sure these hours are spent productively. This allows the agency to stop fretting about scope-creep, creates a solid foundation for collaboration, and forces you as a client to engage with the complexities that exist under the hood.
(And yes – you have to learn something about the complexities under the hood. Stop being a baby.)
2. Be wary of your agency team juggling too many projects.
Generally speaking, the life of everyone working at an agency is hard. To understand why, you have to dive into the business model of a traditional agency and realize that the people who work there — Developers, Designers, PMs — are not traditional employees. They are the product.
Being a person who is also the product means the company makes more money the more of you they sell. It’s simple math. The result of this is that most successful agencies have a team which is chronically overworked. A team which is routinely encourage to bite more than it can chew. A team that’s always battling the tension between protecting their work-life balance, even their health, and potentially saying no to a client and losing the company a lot of money. (I’ll talk about the effects of this on staff quality in the next bullet point.)
It also means that everyone is always juggling more projects than they should normally do — and your project is one of those projects. Some people get pretty adept at this sort of thing – giving every project just exactly the time slice it needs to feel like it’s moving forward – but never actually diving in, in a way that opens up creative solutions, allows for long-term architectural decisions, or reaches top quality that they are capable of.
(I wrote about this as one of the reasons I like Design Sprints so much here.)
This also means that you as a customer might not have visibility into what’s actually going on. The reason why a deadline was missed on your project could be that a more important deadline was happening on another project! The release notes might have been late because your PM collapsed of exhaustion at 3am after working a 70 hour week, even though you only got 15 of those hours.
The solution for this is simple, but requires principled and disciplined action: you must pay for a certain number of hours per week / month, decide how you wish to assign them between the different team members, and make sure you’re getting your hours consistently every day, every week. You should also stay aware of any signs of exhaustion or overwork, and alert the agency when you see that. You deserve happy and healthy workers at the top of their game, insist on it. You’re also entitled to the same number of hours every week, if that’s what you’re paying for. Good agency work is consistent, routine, and not rushed.
If you choose to ignore the humans who work for you and treat people as cogs, you’ll get cogs – when what you are thinking, engaging humans.
2. Be, or hire, your own PM.
It’s important to acknowledge that most Product Managers suck, both in and inside of the agency world. Managing a team of developers and designers in building a hugely complex technical product, while being responsive to the changing requirements of clients and their users is one of the most demanding jobs I know. Perhaps the only job that requires more in the way communication, collaboration, organization, prioritization, clear thinking, and connection to reality – is that of the CEO. Which might be why most of the best PMs I knew later became CEOs.
Still – PMs at agencies tend to be especially inexperienced. This sounds surprising given that there are methodologies, books, and affordable courses out there that can help make anyone with the appropriate human qualities into a great PM. However it’s a sad irony that agencies — perhaps the largest employers of PMs — are not properly incentivized to help PMs grow professionally. The reason is: churn.
The better someone becomes at their job — the more likely they are to leave for a saner non-agency job. Burn and churn tends to be high, and that goes especially for high-skill PMs.
This is the reason why agencies never feel that investing in training for PMs is a good idea. Training costs money, and people generally don’t stay long enough to justify it. Worse – by training PMs to run a professional-grade agile process, agencies are effectively opening doors for them to go elsewhere — some place where they will get paid more, work saner hours, and have more promotion opportunities.
I believe that the best solution is learn to (1) be your own PM, (2) train someone in your team to become the PM, or (3) hire your own independent PM – separate from the development agency. An inexperienced PM, or a PM who is more loyal to the agency than to the success of the project could derail your project or waste an enormous amount of resources. And the worst thing is – you could be none the wiser. So separate the PM function from the agency, and work directly with their developers and designers to have total transparency and visibility into what gets done when, and why.
Let me be clear: What I do not mean is for you to cluelessly wade into managing professionals who know more than you do, and start issuing orders. Being a PM requires deep training, deep listening, understanding software, understanding people, and being available for long, detailed discussions. If that’s not you – find someone else who can do it. Just make sure they are devoting sufficient time, and have the proper experience.
3. Liberate your product designers.
There are very talented designers working at agencies, but they again have to deal with issues resulting from the inherent conflict of interest of agency life.
While most agencies would acknowledge that better designs results in more successful clients, which ultimately results in increased lifetime value – great product designers are some of the more expensive and harder to hire resources, which means that they’re encouraged to severely limit their time on the project (I’ve heard of designers supporting 7-8 active projects at the same time). In addition, agencies that specialize in development have a “rush to code” mentality which goes against what every wise product designer will tell you.
You might wish to do a full design and discovery exercise, but find out that your designer has been given a 20 hours cap, to hit your target budget, and get to coding faster. You could be a day or two away from figuring out the *right thing to build*, but instead go into a massive development cycle with the wrong thing. Worse — your designer might actually have an inkling of this, but is trying to stay within the Statement of Work.
An even more insidious conflict of interests lies in the fact that Product Designers are trained to find ways to validate and test product ideas in ways that don’t require building them at all. Advanced prototyping tools like Invision and Marvel, and out of the box solutions might make starting a big software development precisely the wrong thing to do. But will a designer working for a development agency you just contracted be able to tell you that?
Sometimes. Sometimes not.
It makes no sense to pay for experienced, highly skilled product experts and then not consult them about how much time they think they need to accomplish the task, and in what way. But that’s precisely what you might be doing, unwittingly, by hiring an agency that offers design and development services as a single package, for a fixed price.
Regardless of your desires and your budget, here’s a hard truth for you: the product market fit problem is what it is, and it will be solved when it gets solved — putting an artificial time constraint on it, in an agency context, usually means pretending it is solved when it is in fact far from it. Don’t do this – speak honestly with your designers about your budget, and let them know you expect them to be honest about the product’s chances and the needs of discovery. Better yet – contract a Design-Only agency for the product design, and a Development-Only agency for the development. The two functions are often conflicted, and should be free to express themselves freely to you.
The rates of success for products built by agencies is abysmal. Rushing to coding, and lack of honest communication around it is probably the biggest culprit.
The best way I’ve seen to get truly remarkable work from product designers in an agency context is to run a design sprint, in the Google Ventures style. This works because it is dedicated time, because it involves spending a week together as human beings in the same room, and because the structure allows for the right amount of research, interviews, ideation and validation to air out any hairy challenges that might be lurking under the surface.
Barring that – let the agency you work with know that discovery will last as long as it lasts, and work with your designers to chart the most cost efficient path to product-market fit. Coding? It should only start after running the through the design prototype with 5-10 users and getting very positive feedback. (We do this on the last day of the design sprint, and also as a standalone user testing service)
4. Don’t accept substitutes.
Would you rather have a world-class programming genius on your team, or an intern who is just beginning to learn the programming language your project is written on? Both might be working at the agency you just hired. And the genius probably costs them a lot more, and is more in demand. So who’s working right now on your code? Are you sure?
There is room for interns and junior developers, appropriately supervised. But given the inverse incentives involved (you prefer to use more senior people, the agency more junior people) – it’s important to make this explicit and transparent.
The principle I came up with is this: I must interview and approve every single person who works on my project (I do this together with a technical advisor), work must be individually assigned and never be substituted without prior approval, and the most demanding parts of the project must be handled by the top talent. (They can assign specific work to more junior people, but they must be fully involved and stand behind every technical decision on the project.)
Many people turn to agencies because they don’t have the sufficient expertise to interview, manage, and supervise a development process. This is fine and good in theory, but no matter what they say an agency isn’t truly your friend or partner so long as they make their money by selling more of their service. You might not need more. You might need less. You might actually need to shut down the project and stop wasting money – a real partner would tell you that. Don’t expect an agency to!
This leads me to the next point…
5. Have great advisors.
It is almost impossible for a non-programmer to judge the skill level of a programmer. It is almost impossible for a non-designer to judge the skill level of a designer. If you’re not traditionally from tech, and you’re wading into tech entrepreneurship – welcome to the craziest, hardest, fastest, and most complex industry of all. And newsflash: you’re going to need help. People who are on your side
Advisors are people who share their knowledge with you whenever you need it, become part of your braintrust, and are invested in your success, and not in trying to sell you anything.
There is only one way I know to have advisors who are fully aligned with your business: give them equity or a share of profits. It’s important that they don’t make much or any money from you unless they help you succeed. It’s amazing how many hard truths and honesty begins to emerge when an advisor is more concerned about your success than about your feelings.
There are many standard advisory shares agreements, SMART is one of the better ones – a truly fair and balanced advisor agreement. Just make sure the expectations are specific and clear. Is the advisor going to advise weekly? Monthly? Quarterly? Are they going to assist in all hiring? Are they going to review the code? Make architectural decisions? Put it in writing.
6. Trust, but verify.
People who work in agencies can be ethical actors. In fact many of them are. But the grind of hard work and the always-present misalignment of interests can work its way to the best of them. Research shows that will power is like a muscle, which can get exhausted, and having a conflicted financial relationship is like putting a giant plate of colorful donuts in front of someone’s desk and leaving it there, hour after hour.
Insisting on high standards at all times, even when it goes against your self interest is hard; cutting corners is easy. Speaking up for a better way is hard; staying silent when a client is about to make a fatal mistake is easy. Investing and training PMs is hard, especially when they might leave for a better job afterwards; hiring an endless stream of inexperienced PMs is easy. Having regular rescoping and reestimation conversations around budget is hard; building crappy software is easy.
People with strong moral fiber might not be tempted to fall into any of these traps – but why test them? And why rely on trust when you can make sure the relationship is structured and managed correctly from the start?
—
Agencies are in a tough spot. At their best — they create products worth millions, launch sometimes inexperienced entrepreneurs into tech stardom, and are paid peanuts for it. At their worst — they become effective machines for extracting short-term money while shattering entrepreneurial dreams.
Having rich experience in the industry, they know that great product design is as critical as business strategy, if not more. But they also know that clients tend to underestimate the importance of design, that they’re always in a rush, and that they’re never willing to pay what truly great work actually costs.
I believe that finding innovative ways to achieve alignment, whether through Design Sprints or some ingenious financial instrument, is the only long term solution.