Whether you’re an entrepreneur launching a startup or a business manager building a satellite product, outsourcing your software development is a critical business decision. You can’t fail and there are many factors to consider to ensure you choose the right company for the job.
I’ve seen first-hand the effects of choosing the wrong agency when you outsource software development. It’s a nasty business, believe me!
Back in 2019, a startup founder came to me with this exact problem. He outsourced with an offshore software development company that offered a price no one could compete with.
On top of that, their time estimation was hard to beat, they estimated two months to develop a fully working marketplace with multiple non-standard features.
At least, that’s what the software development company promised, what actually happened was:
They didn’t complete it in two months, and they kept delaying and telling him “it’ll be ready next month.”
This happened for five months and then on the sixth, he asked them for a code audit. The outcome of this audit showed that the platform was completely unusable. Literally, 100% of it had to be trashed.
The founder found himself in a tough position, he could either give up or start it all from scratch. Luckily he had the money to start from scratch and outsource his software development to a new company.
However, a lot of founders don’t get a second opportunity because they simply don’t have the capital. Even if they do there’s nothing that will cure the pain of doubling the time to market.
In the case of this startup founder, a competitor could’ve reached the market before him — at which point his product may have been redundant.
Since then, many founders with similar stories have come to me. That’s why I’ve created this article, so this story doesn’t repeat itself over and over again.
Gathered from my experience founding seven startups, and mentoring many early-stage startups, this is a guide on how to outsource software development to a trustworthy agency – that also has the right experience and pricing to match your needs.
These steps will help you mitigate the risks and build a beneficial business relationship, for both you and the software development company you partner with.
1. Record and Experience
There are no two ways about it, you must validate the quality of a software development company’s previous works. Specifically, you want to validate:
- UX/UI Design: It is easy to validate design and development quality by looking at their portfolio.
- Code/Architecture: If you have a Techie Jedi friend you could ask him to evaluate the code via the software development company’s Git Repository. You should, however, understand the reasoning behind the decisions your potential partner has made in the past. If you are a Non-Technical Entrepreneur then this crash course on tech can help you understand the basics.
In which technology is the software development company proposing to build your product? This is not purely a technical decision. There is a business side to technology decisions that can impact your time to market, product stability and your budget.
Be aware of generalists — if you hear a software development company tell you:
“We’re not stuck to a technology … we can do all stacks and technologies … we can do everything”
What they actually mean is:
“We’re not specialised in any technology.”
“You want a team of specialists that have mastered one or two technologies/stacks. Not a team that gets distracted by the next shiny new framework while leaving the older one half learned.”
3. Costs & Size Match
It’s important to find a partner with a compatible pricing structure:
- Too big? Let’s face it neither of us would mind having Jony Ive as a CPO and Elon Musk as your CTO — but onboarding them at this stage may be a little difficult, budget-wise.
- Too small? Well “if you pay peanuts you get monkeys”. Being stingy won’t pay dividends in the long run. You need experience, professionalism and good quality — if you invest well at this stage you really will get what you pay for. At Altar.io we’ve often had to rebuild projects from scratch. This happens because the client previously chose to outsource software development to the cheapest software development company they could find. It is really painful to see a founder in this situation. They end up having to trash the whole codebase, after 3 months of supposed delivery plus another 3 months of inefficient bug fixing. The reason they have to do this never changes — because it has been written in sub-par spaghetti code that doesn’t meet industry standards.
- Appropriate budget: In a nutshell, there is not a definitive number I can tell you as an indication. But you can play with this price simulator as a useful reference.
4. Scalability & Flexibility
You should outsource to a software development company that offers flexibility in terms of team size and time allocation. Don’t get caught up in a waterfall contract that is too rigid. Start by committing to small sprints and deliverables before contracting them for months and months of work.
Software is a living organism — your needs will change throughout the process and you need to adapt and evolve with it.
By committing to a smaller, project-based, working relationship there is no real pressure to sustain it long term, which allows your company to hire “as and when” it is necessary. This not only makes everything more flexible but also reduces costs.
Looking for Software Development Services?
Get straight to the point, jargon-free advice from a tech expert that has been building award-winning Startups for the past 10 years.
Involvement is a key aspect of a key partner. The software development company you outsource to will either get involved and committed OR, they’ll just do their work as needed with a minimum commitment. But, now, when selling everyone is highly committed because they want to persuade the client, they show a lot of commitment, so how do you separate the wheat from the chaff?
Beware the Yes Man.
My secret technique to spot fake salesmen is simple: if they are saying “amen” to everything. I can’t stress enough how huge a red flag this is.
Conversely, if they challenge my vision and tell me “no” then they start to earn my trust and I will be more likely to outsource software development to them. If your potential partner is able to say “no”, challenge your product vision or your list of features to build it:
- Shows much more experience as a product builder.
- Demonstrates a desire to be involved in the process of creating your product.
- Will help prevent Kitchen Sink Syndrome (aka feature creep) which can be a curse for productivity, and potential success, in an early-stage business.
6. Lean/Product-Centric Approach
Most probably, a software development company with a Lean approach will propose that you cut features from your initial list. If I’m talking to a software development company that’s proposing to reduce the scope, it immediately shows me I can trust them.
It tells me that they have a commitment and product vision. Moreover, it shows they are not “salesy” because, putting it bluntly, by reducing the scope they are reducing the budget (contradictory to their financial goals). So if a software development company is proposing to reduce and cut features, give them extra points.
7. Time, Roadmap & Process
Are they very clear about the process? Building software is always a complex project. If you outsource software development to an agency they must have a very solid structure and be very transparent. They should be able to communicate beforehand what the process will entail.
When you outsource software development it is vital that your potential partner can communicate fluently to understand the requirements around the project. This will tell you if they can execute the project successfully.
It will also let you know that they’re approachable — which will make inevitable problem solving easier further down the line. A major thing to avoid here is a failure to understand the scope and risking feature misinterpretation. This will have a huge impact on your roadmap and budget.
Most product-centric agencies tend to solve this problem by writing “user stories” then build UX prototypes followed by a clickable UI prototype. This is a vital step and should be done before any further implementation. This will avoid feature creep and keep things streamlined.
9. Working Culture Compatibility
It is important that your partner speaks your “language.” I don’t necessarily mean this literally, although it is a big help. What I mean here is that they understand your idea, business and vision. It is important that they have a working culture that aligns with yours in terms of commitment, schedules and timekeeping.
Take extra care not to get stuck in a “lock-in nightmare” — of which there are two kinds:
- Legal Lock-In: Make sure that your IP is not on your partner’s side after the project is closed. If you want to keep the opportunity to work with other parties in the future, or even insourcing later, you have to sign the right contract that allows you to bring your code to other players’ hands.
There are some evil/dark side agencies doing this kind of old fashioned consultancy trick. Be aware of the agreement you’re signing and you need to have either: IP fully yours (not possible most of the times), or IP belongs to the software development company, but they licence it to you eternally with no extra fees.
If you don’t have this you will get into “marriage by force” which will leave you needing a divorce, which will require you to bring your lawyers later. Or even worse, not being able to use the code later.
- Code Lock-In: If you go to a software development company that’s not following the industry standards they will be the only ones who understand the platform. This results in being locked-in with them, unable to take your product to other players because no one else can understand the code you have. The software development company must follow the industry standards for project organisation and documentation. The best way to check this is as referred to in point 1: “Record and Experience”.
Outsourcing MVPs, or “satellite features” of your core, is a great option because hiring a Lead developer and team of developers can be a tough and time-consuming process. Consequently, it comes with the added work of having to manage them.
Hiring an agency is a faster process in this respect. When picking your agency, be aware of the risks because this is a very critical key business decision. Just remember:
- Validate the quality of their previous projects
- Quiz them on tech strategy – the languages/frameworks they use, check if they are simply dogmatic, or if they have a rationale for the tech options.
- Don’t go too cheap, find the appropriate agency for your budget.
- Start by committing to small sprints. Be careful not to fall into a rigid waterfall contract before you test the waters.
- Be careful of the Yes Man, trust more an agency that is challenging you.
- Make sure they take a lean product-centric approach. If they propose you cut features and reduce your project, give them extra points.
- Know beforehand the process they will undertake to build your project.
- Communication is key. Especially when it comes to understanding the project requirements. Ensure that they are approachable.
- Check that they’re working culture is compatible with your company
- Don’t get stuck into a lock-in nightmare – be it legally or in terms of code.
Personally, I’d also advise you to start with a dating phase. Go with an agency that is open to test the waters with a small gig before you enrol them for the whole product. This is the safest way to approach working with an agency. Any agency worth its salt will be more than happy to go on a few dates before committing to a relationship.
I hope this article has given you clarity on how to choose the right agency.
Thank you for reading.