Why you should never outsource to an agency (and when you should)

During my time as a product and engineering leader in startups, I adhered to one belief pretty closely — “Never outsource to a development shop.” This might seem like a pretty shocking way for an agency to start a blog post but hear me out. As those who know me personally will know, I built my first consultancy around 2010, worked in other folks’ dev shops and have spent time in dozens of startups now both as leadership and as an individual contributor. To be sure, before Subatomic, I’d seen a few projects that were outsourced to agencies go great, but I’d seen a lot more go south. There are a lot of reasons why an agency engagement can end disastrously, from waterfall development to lack of control and turnover at the agency. I firmly believe to be able to do something right, you have to know what you don’t want to do first.

Learning what you don’t want to do is the next best thing to figuring out what you want to do.” — Anderson Cooper


Don’t go chasing waterfall (development)

Imagine you’re hiring a general contractor to build your family a new home. One afternoon, you meet with an architect to design the house and shortly after, he presents you with a blueprint of the house he’s going to build for you. You sign off and the blueprints go to the general contractor who tells you that it’ll be 6 months for the construction. At this point, the GC is off to work assembling his team for the build. Finally, after a long wait, which was closer to a year than 6 months, you get to walk through the house. Upon inspection, you find that the GC took some shortcuts on the electrical and the paint job doesn’t match the colors that you had requested in the initial project scope. On top of that, during that six month period, you found out you have a new baby on the way and need the floor plan modified to accommodate the new baby’s room that you now need.

Not ideal right? In this case, any customer would be well within their rights to ask for updates as the project moved along. Not only might they have been able to adjust scope during the project as life happened, but they might have caught the errors that took place during the build. In an engineering sense, this is what I would call waterfall development — get all of the ‘requirements’ up front, go into a room and build the thing only to find that the requirements weren’t understood and corners were cut. This scenario happens to companies that contract with agencies every year and frankly, it just isn’t how startup business works.

There’s no fast growing (successful) startup in existence that doesn’t need to adjust scope as they go, if they are learning, and there isn’t a dev shop on the planet who perfectly understands requirements after a couple of short meetings. As the home buyer or the startup leader, you must require regular updates from your team that show progress in order to ensure the project is moving along as intended and the project is meeting specifications as they evolve.


Lack of control over agency team

Another thing that I always noticed working with agencies is, as the customer, you have little to no control over who works on the project. Agencies tend to shuffle resources around internally as desired with full autonomy and the client doesn’t usually have the ability or the wherewithal to be able to demand otherwise. Many times, these transitions take place with little to no notice from the agency and with little cross-training.

No matter how good the agency is, every time there is a transition on the project, there’s a cost associated with that staffing change and it tends to be hidden from the client. As the client, you’ve just spent weeks ramping up a developer on your company’s domain, they’ve hopefully built out a significant portion of your product and here they are spinning off onto something else at a moment’s notice. This doesn’t benefit startups or clients who need to move quickly to market.

Lack of transparency around skill levels

Going back to the pattern of agencies shuffling resources around internally, this can happen as their demand ramps up and senior developers are needed for other projects. Senior developers are generally brought in at the beginning of an engagement and as the project matures or domain knowledge is accumulated at the agency, sometimes they feel comfortable shifting a cheaper, more junior resource to your project. Many agencies hire exclusively junior developers or offshore resources to save them money. These firms tend to be the least transparent about where and how the work is getting done.

Having a junior come on to your in progress build might not always be the case and it might be a fine choice, but clients should be informed as to the backgrounds of their team and the autonomy to reject a choice. A quality agency should always provide you detail about the developers coming on your project. The best ones even provide resumes, example projects and allow clients to interview candidates prior to a transition happening. It’s the client’s project and they should always be in control of resourcing.


Poor management, overhyped experience and turnover

Looking at the industry holistically, many agencies are plainly not run well, have a lack of experience either in general or in your specific industry and this causes failed projects or turnover in the agency.

Non-technical founders can avoid working with low quality and chaotic partners in a few simple ways. First off, as much as this might pain clients, quality agencies do not tend to work for pure equity or delayed payment. It’s a simple fact — companies have overhead and equity doesn’t pay salaries in the short term.

Secondly, they might be attempting to do their best but not have sufficient experience running an agency or operating in your specific industry. In areas where deep domain knowledge is key to success or expertise in regulatory areas like healthcare or fin-tech, having a partner with experience in those areas is important and lacking this can quickly lead to a failed project.

Founders can overcome this by doing due diligence on your agency and partners. Interview them to make sure they have the experience necessary to be successful, ask for client references and previous examples of work and ask them about their turnover internally. Any agency who can’t give you a straight answer is going for the sale and doesn’t have a client’s needs in mind.


Despite this, outsourcing can work
 

Having exposure to many poorly run projects and failed engagements with agencies as a founder has informed the business practices that Subatomic runs under. It’s taken my whole career, learning what doesn’t work, to inform the way we run at Subatomic. We believe in deep integration and connection with the clients we select that puts their interests above all else.

Subatomic is proactively transparent with our clients by incorporating at a deep level, providing updates on the project in real-time, which allows us to be more agile than most agencies. Having lots of satisfied clients, we are happy and proud to provide client references and examples of work. Any agency who does less doesn’t have true skin in the game and won’t take the client’s best interests to heart.

Previous
Previous

My Users Aren't Tech Savvy & Other Excuses Founders Make

Next
Next

Building a Learning Culture — The Team Sync