How to choose a software development company?

If you decide to work on your next app with the help of an external software development company, then your success or failure depends on finding the right partner. With this in mind, and based on our own many and varied experiences at Boldare, this article outlines the key criteria – what to look for and what to avoid – for selecting your software development company: a future partner that will help you to build great software and solve your business challenges. But how to find such a trustworthy, reliable and efficient collaborator?

The selection process should be as rigorous as possible. The cost of poorly-designed software or an otherwise failed project can be dangerous - financially and strategically. The starting point is your organization’s business needs and strategic goals, and a clear idea of how these will be supported by the digital product. With that in mind, together with a broad concept of what your digital product should be, you can start looking for candidate companies to shortlist.

The key is having clear criteria to compare the various candidates. Hence this article: a guide to what to look for – the good and the bad – when choosing your software development partner.

Let’s start with some positive values to look for in the potential partner’s portfolio.

1. They have a good track record

We all have to start somewhere and every software development company has its first project. But let’s be honest - you don’t want it to be yours. Unless a company is looking especially hot on your other criteria, it’s better to see a solid track record of successful projects.

Any potential partner should be able to talk about the number and type of products they’ve developed, and who their clients are and have been (within the professional bounds of any NDAs, of course). Ideally, they’ll have a wide selection of case studies, demonstrating their various experience; including the right technologies for the development of your digital product; and for clients in your industry sector. Maybe it goes without saying but let’s say it anyway: that track record and portfolio of case studies should be backed up by client references and referees.

The more complex the product you want to build, the more important the track record is.

2. They have the right skills & knowledge

You’re looking for a software development company with the professional skills and knowledge that your project needs. And while coding skills are vital, developing a truly excellent piece of software is about much more. At Boldare, we know that the full development package requires a wide range of essential roles, including:

  • Quality engineers (including frontend and backend developers)
  • Product and UX designers
  • Certified Agile coaches and scrum masters
  • Business analysts
  • DevOps
  • Information architects
  • Machine Learning engineers

For some of these roles (e.g. the developers, the scrum masters) mastery is usually demonstrated through professional certifications or qualifications.

What’s more, the company should be open about the seniority and/or experience of the developers who will be building your product. You should definitely ask about their experience and be able to evaluate their individual resumes to assess that experience for yourself.

3. They use the right processes

The question is, how do they work and – most importantly – is it:

a) An efficient method of software development?

b) Compatible with how you work in your organization? (NOTE: not ‘the same’, just ‘compatible’.).

The most important process is the software development methodology used by your potential partner company. Let’s be clear, a waterfall approach to the project is out of date and likely to be ineffective. Why?

In a waterfall methodology, as client, you’re responsible for providing detailed documentation at the start of the project. That documentation is the full specification for the product and you are unlikely to have any further involvement until the product is delivered. This may sound attractively straightforward but a waterfall methodology is rigid by nature. If any of the project’s influencing factors change (user needs, business goals, competing products launched on the marketplace) the process does not facilitate the project changing course to suit the new circumstances. This approach may work for uncomplicated and simple products. Otherwise, in case of any necessary changes in the product, you may end up as a hostage to the documentation you provided, without the chance to change anything in the ongoing process.

Discover our scrum-dedicated series:

So what’s the alternative?

Agile frameworks, such as Scrum, are much more inclusive of the client. In Scrum, your representative is the Product Owner, an integral part of the scrum team, working closely with the developers and other experts right from the initial product discovery workshop in which you work together on the product specifications. Scrum teams produce iterations of the product in a series of short sprints (usually 2-4 weeks). The sprints are linked by review and planning meetings that enable you to pivot the project easily and when needed. For more on the differences between the two methodologies (and let’s be honest, more on why the agile option is best) read our article, Agile or Waterfall.

For more information about how the Scrum framework helps building software development products, read our article, Building successful apps using scrum development.

4. They believe in open communication

If you’re using an agile software development methodology, you’re part of the team but that doesn’t mean you’re on-site all the time. In fact, given the nature of the software development outsourcing market, you may not even be in the same country or time zone. And yet, the quality of communication affects the results of the project.

The question is, when looking at a potential provider, will you have open and transparent communication as part of the project? How fast will they respond to questions (how fast did they respond to your initial contact)? What comms channels do they prefer? How easily can you access the team?

An approach we find works well at Boldare with the Scrum framework is giving our clients and product owners direct access to all members of the development team. You’re not asked to go through a manager or any other kind of gatekeeper. If you have a question about the user experience, you talk to the UX designer; if it’s about the quality testing, you talk to the QA expert; and so on. This philosophy, along with online communication tools such as Slack and Google Hangouts means our scrum teams are in constant contact with no delays.

To maintain a high quality of communication on the business side of the endeavour we also try to meet with our customers regularly, each month or quarter. This helps to keep the focus and understand how priorities are changing, and discuss face to face the most important issues.

5. They supply dedicated teams

What’s a “dedicated team”? It means the team working on your digital product is doing only that. They’re not also working on projects for other clients, juggling resources, priorities and deadlines. The benefits are obvious: this kind of focused teamwork coupled with a taut timetable of agile product iterations delivers high quality products, on time. The exception is when there’s no need for, let’s say, a full-time Product Designer or QA, in which case they devote the hours that are needed to your project.

The use of dedicated teams is one of the biggest advantages of using a software development company rather than a freelancer, who is inevitably navigating multiple priorities.

However, just because a dedicated team is on offer does not always mean the team members are employed by the software company. The practice is called ‘white labeling’ and involves your outsourced software company outsourcing in turn to another company or freelancers. Again, perhaps this approach is reasonably safe for simpler projects with few risk factors but for a relatively complex bespoke digital product, white labeling puts the client at one step removed from the action. This results in poor or fragmented communication, lengthier processes, and a lack of clarity around roles and responsibilities – not a recipe for success.

And now - few warning signs. What should alarm you?

They are cheap

In software development as with any other field, the old saying is usually true: you get what you pay for. Especially if the company is offering fast development, high quality and a low price – that’s almost always too good to be true.

The exception may be to search internationally. For instance, if you are in a ‘high rates’ market like the US or Western Europe, you could look to Eastern Europe for software development to a high standard for a seemingly reasonable price, purely due to the economic differences between the territories.

If your only (or main) factor is price, then … you should definitely rethink your strategy. Most likely, you will find a company that offers their services cheaper than any other European or American company, but let’s be honest, you won’t be happy with the results (or their lack). Over our 15 years of experience, we have spoken with many companies that have contacted us to finish projects that were started then left unfinished by an unreliable partner company. And to be fair, it’s not a matter of the country the service provider is from, but that they originally offered the cheapest price for the job.

For more on the relative costs of software development in different regions, try this article:

They are “YES”-people

Beware of an expert that constantly agrees with you. After all, if you know it all already, why do you need them? But you don’t and that’s why you’re looking to outsource to an expert provider. If a company you’re interested in just agrees with whatever you say, including project structure and deadlines, dig a little deeper. They should have proven methodologies, procedures and standards of their own.

You’re looking for a provider with ways of working that are compatible with your own, and not a company that will say whatever you want to hear just to get a contract.

They are late

Quite simply, if a company is tardy during the selection process – slow replying to messages, late providing documents or estimates, taking longer than 24 hours to reply to your initial contact – then that’s a red flag. Their turnaround times are unlikely to improve once you have an agreement.

They are vague

If you find you can’t pin them down on details… if they can’t fully explain their time estimates (why will item X take three weeks?)… if they’re hazy on the planning… then again, red flags.

The best defense against this is to engage an outsourced partner that uses an agile methodology. For example, the planning approach, daily meetings, and between-sprint reviews and retrospectives makes Scrum an excellent ‘vaccination’ against project vagueness. It’s easier to plan knowing that feature A will be delivered in sprint one, and then feature B in sprint two, etc. This is the huge advantage of Scrum over other, non-agile frameworks.

Summary

Selecting your software development company is the first and possibly the most important decision in outsourcing the creation of your digital product. A company with a proven track record, offering a dedicated team with all the necessary skills, using an agile project methodology, and insisting on open communications is equipped to deliver a successful digital product.

But having these criteria, where do you find such potential partners? Clutch.co is an excellent starting point, with its own expert analyses and to-the-point interviews with listed companies. Similarly, try the Awwwards platform which acts as a showcase for more design-oriented projects.

Ultimately, you’re looking for a partner company that can support you through the process of software development, give you confidence in their processes, and – who knows – bring the potential to become a longer-term partner in your organization’s future digital transformation.

Fingers crossed for a (hopefully) successful search!