July 29, 2022
Welcome back to the lab! Following our last article on outsourcing product development, Rob and I spent some time exploring this tricky piece of the startup puzzle, and today we’re going to share our insights in more depth. It’s a topic we have discussed with a variety of people since we started Old.St and we’ve heard a myriad of stories about how it’s turned out… many of them weren’t so positive; in fact, some were downright scary.
In this article we’re exploring some of the potential pitfalls of outsourcing and how they can be avoided – so you get the end product you’re aiming for.
First, a word on the advantages of outsourcing. The IT outsourcing industry garnered $67 billion in revenue in 2019 and has become a truly global business; you’re just as likely to outsource work to Ukraine or Portugal as you are to India or Brazil. Major companies like Slack, GitHub, Alibaba, and WhatsApp successfully leveraged the benefits of outsourcing tech development in their initial days. There are many good reasons for this, the main advantages are fairly obvious:
So – outsourcing has the potential to improve your business’ efficiency, reduce the time to market of your application, create significant cost-savings, and fundamentally create a better product. But only if it is done correctly.
There are risks involved in outsourcing tech development as well.
These can negatively affect your business’ bottom line and cause projects to come crashing down before you get a chance to launch. Rob and I have heard many horror stories about founders who have engaged tech outsourcers: crazy high invoices, products simply not being delivered, and lots of stress.
We’re going to share with you some examples of what can go wrong and then tell you how you can avoid these pitfalls so you get the end product you want – without the hassle and cost of hiring an in-house team to do it.
When you call a builder to do work on your house, you’re in their hands – because you don’t know how to build a house. You know what you want to see at the end. But you have to put your trust in the builder to understand your vision, to know what they are doing, to use the right materials, to not take too long, and to build something that is not going to fall apart after you’ve moved in.
You’re putting a lot of trust in someone who is also taking a lot of your money. Outsourcing the creation of your digital product can feel like a similarly big risk, especially if you’re using your own capital, or department’s budget, and the result is on you. So – how do you choose the (technology) builder that is going to provide what you need, within the budget you have?
Without naming any names, we’ve gathered a few choice quotes from some unhappy innovators, about problems they have experienced. These are from a review website, so perhaps should be taken with a pinch of salt, but they do highlight where outsourced development can go wrong:
“They missed deadlines and failed to deliver the app.”
“They gave us multiple different managers, delaying the development and disrupting communications.”
”There were too many misunderstandings about the project’s scope due to communication failures.”
“We had issues with their honesty, integrity, and professionalism.”
“They delivered a poorly architected app that didn’t work on iOS”
“The lack of project management and error-prone work meant we had to terminate the engagement.”
Thankfully, there are ways to avoid all of these horrors, so you create your dream product on time with the least stress, keeping your budget in check, and keeping your investors or manager happy.
“Bad or no communication”
Communication barriers can arise from speaking different languages – which is more and more common as skills are drawn from all over the world – and/or cultural differences, meaning anything from a different understanding of “urgent” (!) to an agency saying “yes” to something because they think it’s what you want to hear. Speaking different languages can of course include the language of technology, for example if your outsourcer is using a lot of acronyms you just don’t understand.
How to cross the communication barrier
Choose a partner where the team is willing to spend time making sure they understand what you want. This could be as simple as them checking in with you by asking “Is this what you meant?”, or by using graphics and illustrations – drawing pictures! – to communicate. Communication is crucial to building relationships and trust, and ultimately getting the product you need for your business. Get to know the project leader from the developer side, the better your relationship with them, the smoother the whole process will be.
Make sure there are regular meetings with your development team where you can discuss, in detail, how they are doing vs the original plan. If there’s an issue that is going to delay the project and cause additional cost, you should know about it as soon as possible.
Get them to demonstrate the features and functions they have created and ideally get your hands on initial versions of your product as early as possible. And, don’t be afraid to ask silly questions, if you don’t understand something (especially jargon or acronyms…) ask.“Not creating what the client wants” / “Taking too long”
Many projects get delayed, sometimes fatally, because the technology agency simply fails to deliver the product they’ve been engaged to create. This can be for a number of reasons. Perhaps lack of communication means they never understood the scope of the project and so they agree to something that’s beyond the capabilities of their team. Maybe they underestimate the time needed to create a product because of overconfidence or lack of experience. And delays can be caused by high staff turnover, high numbers of errors & poor testing, lack of focus on the project, and poor planning.
How to make sure your product gets delivered, and on time
Before you choose your development partner, make sure they have the skills to write the code needed for the product you envisage, ask them. Check their reviews on places like Clutch, get them to provide you with references and examples of similar projects they have completed. If a team has built something similar before, on time and on budget, chances are they can do so again.
Once hired, be as clear as possible with your outsourcer: outline your deliverables and timeframes and agree a contract with them that ensures you will get what you want. Consider drafting a feature-based contract instead of a time-based one (more on contracting below), and base the payment plan on milestones, so you get tangible results before handing over any cash.
The more time you spend at the beginning of the project planning, designing and laying out your idea as clearly as possible, the more time you will save later. It’s easier and cheaper to change a designed image of a screen than it is to recode it because it’s not how you wanted it.
“Dishonesty” / “Overcharging”
“Dishonest” is a word that we hear all too often about outsourcing agencies, whether it means overpromising, over-billing, or straight out lying to the client. There can be loopholes in the contract, lowballed price estimates, unexpected charges, data leaks, stolen IP… the list goes on.
Once you have started a project with a development team, it can be costly and time consuming to switch to a new agency. Building tech is also really hard, the relationship between you and your developer can go through quite a rollercoaster of emotions as you navigate the difficulties of building your ideas. Your relationship, trust and expectations will be tested.
How to stay transparent, and stay sane!
We believe that transparency is so important to help get you through some of the more difficult times – clarity on both sides is going to mean you have a much better relationship with your outsourcer and ultimately get the product you want delivered.
Your developer should make you fully aware of the potential pitfalls of your project, and of all the potential areas of extra cost (cloud hosting, for example). They should be clear about their capabilities, and what will be the most appropriate language, frameworks and tools for the job.
You should also be clear that tech is difficult, a good agency will be able to predict some unknowns, but not all of them. There will be unforeseen difficulties along the way, so if you have built a good relationship, and the agency knows your priorities (cost / time / quality), you should have discussions as soon as issues arise, and find ways to deal with them. It’s helpful to build in contingencies to deal with these unknowns.
If the agency is being dishonest and not giving you the full picture, then you will have to fall back to the contract you have with them, so getting a good one in place upfront is another crucial element. Get experienced legal advice, it’s worth the money in the end.
If you don’t understand code, then you could consider bringing in someone else, independent, to give you an honest opinion on how the project is going from a code perspective. Engaging with whats known as a fractional CTO can be incredibly useful in these circumstances. But ultimately don’t be afraid to change agencies if it’s not going well.
So here is the list of things that we consider to be really important (though it’s not exhaustive), and it’s a quick reminder for you when starting a new project:
Before you engage:
At the start of the project:
If things are going very badly:
At Old.St, Rob and I wholeheartedly believe that the three pillars of working well with your technology development outsourcer are relationship, communication and trust. If the outsourcer is ready to invest in these pillars with you, it means they also have invested in their team on the development side, and you’ll be in safe hands. Remember that high price doesn’t necessarily equate to high quality. Shop around, talk to a few companies: which ones take the time to listen to you and understand what you want to build, and to explain how they are going to do it? The ones who do this will be the ones who care about getting a good result for you. Like finding a good co-founder, it is worth your time in gold (literally) to search out an excellent outsourcing partner.
“So I’ve noticed this problem, I have an idea how to solve it, can you help?” This is the type of question Rob L and I love to hear. In fact, this question is exactly the reason why we started Old.St Labs in the first place. Just over a year ago we set out to […]
Imagine, if you can, that you are a budding entrepreneur with an exciting concept for a new app. You’ve done your market research, identified your customers, you’ve even found someone to fund the initial stages. In fact you’ve done everything you need to launch the business except actually build the damn thing. How do you […]