Before you go, check out these stories!

0
Hackernoon logoFounder’s Guide: How to Outsource Software Development in 2020 by@rui-lourenco

Founder’s Guide: How to Outsource Software Development in 2020

Author profile picture

@rui-lourencoRui Lourenço

CMO at Altar.io

If you are running a startup or a tech business, outsourcing the execution of your product is a critical business decision. You can’t fail and there are many factors to consider to ensure you choose the right agency to outsource software development. This is part of the inherent risk whenever outsourcing anything that is not a commodity.

If you decide to outsource software development this article will help you make the right choices and avoid the mistakes made by many founders.

I have seen first-hand the effects of choosing the wrong agency when you outsource software development. It is a nasty business, believe me!

Back in 2019, a startup founder came to me with this exact problem. He outsourced with an overseas agency that offered a price no one could compete with.

Also, their time estimation was hard to beat, they estimated two months for a fully working marketplace that has multiple non-standard features.

This is what they’d promised, now what happened was:

They didn’t complete it in two months, and they kept delaying and telling him “it will be ready next month.”

This happened for 5 months and then on the 6th he asked 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 software development to a new agency.

A lot of founders don’t get this second opportunity because they have used twice the budget they planned to use. And remember, even if you do have twice the money, there’s nothing that will cure the pain of double time to market. In the case of this startup founder, a competitor may have reached the market before him — at which point the problem his product is trying to solve has already been solved.

After him, a lot of other founders with similar stories came to me. That’s why I’ve created this article, so this story doesn’t repeat over and over again. Gathered from my experience founding 7 startups and mentoring many early-stage startups, this is a guideline on how to outsource software development to a trustworthy agency – that also has the right experience and pricing to match your needs.

  1. Record & Experience
  2. Technology
  3. Cost & Size Match
  4. Scalability & Flexibility
  5. Involvement
  6. Lean/Product-Centric Approach
  7. Time, Roadmap & Process
  8. Communication
  9. Working Culture Compatibility
  10. Dependency

These steps will help you mitigate the risks and guide you towards a beneficial business relationship, for both you and the agency.

1. Record and Experience

There are no two ways about it, you must validate the quality of previous works by your potential partner. What you want to validate is:

  • 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 potential partners 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 begin to understand the fundamentals of tech.

2. Technology

In which technology is the agency 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 an agency tell you:

“We’re not stuck to a technology … we can do all stacks and technologies … we can do everything”

Subsequently following this up with a list of technologies as long as your arm with 50+ logos beware. What they actually mean is they are not specialised in any technology.

If someone is saying “I do Mobile native, Web in JS, Java and .Net” its a red flag. Ideally, you should work with an agency that is specialized in web or mobile and in a specific technology, i.e. Javascript frameworks, Java, .Net. 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 is 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 agency 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 find a partner 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.

5. Involvement

Involvement is a key aspect of a key partner. The agency you’re picking 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?

Be aware of 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, an agency with a Lean approach will propose that you cut features from your initial list. If I’m talking with an agency 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 an agency is proposing to reduce and cut features, give them extra points.

7. Time, Roadmap & Process

Are they very clear about the process? Building a 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 on what the process will entail.

8. Communication

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.

10. Dependency

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 agency, 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 an agency that is 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 agency must follow the industry standards for project organisation and documentation. The best way to check this is as referred to in point 1 in Code/Architecture.

Wrapping Up

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. If you still have questions feel free to drop me a personal message!

This post was originally published at 
Altar.io's blog
by Daniel de Castro Ruivo, Founder at Altar.io.

Tags

The Noonification banner

Subscribe to get your daily round-up of top tech stories!