What to consider before choosing the best software development company
Whether you’re after a team that would build your future project from scratch or looking to hire an augmented team, finding a solid tech partner is always quite a challenge. What should you take in account, apart from rates and opinions? In this article, we present to you 17 tips on how to choose a software development company. Let’s go!
Whether you’re after a team that would build your future project from scratch or looking to hire an augmented team, finding a solid tech partner is always quite a challenge. When talking to our current or potential clients, we try to listen to their objections and, within reason, address them accordingly. But we also know that such concerns are not completely unfounded. Hiring people from halfway around the globe and working with them remotely – often across time zones, cultural differences and, very likely, languages – is bound to raise a certain degree of uncertainty.
We take a look at the 17 most typical objections you could have when partnering with a software house.
TL;DR:
Team’s background
Domain expertise
Rates
Technological stack
Comprehensive services
Communication
Formal agreement
Make sure they are the right size for you
Clients don’t trust the companies that never faced a challenge
Future-proof your relationship
Testimonials
Case studies
Start small, size up as you go
Know the team you are working with
Avoid the yes-men
The pricing model
If everything else fails, use intuition
1. Team’s background
One of the first steps you have to take while searching for a software house is checking the team’s background. How can you do that? There are multiple ways of discovering and getting to know a software house. One of the obvious ones is Clutch.co. It holds detailed information about companies from all around the world. Clutch is known for its meticulous and trustworthy reviews. Most importantly, each review is conducted by a Clutch representative and approved internally before publishing. This adds an additional layer of confidence for the client, minimizing the risk of finding hollow and fake companies.
What is a team without experience? At Naturaily we have over 12 years of experience in building digital products. By partnering with an established, seasoned team, you minimize the risk of project failure.
It’s a healthy practice to check the team’s previous and current clients, read their reviews and the products they have built. Clutch is a great place to start. We also recommend asking the clients directly about the cooperation with the development team. Because it is not their duty to provide you with such information, keep the questions as brief as possible. Ask them only the most crucial questions – regarding the communication with the team, the company’s ability to meet project goals, and the approach they demonstrated. Don’t get into the weeds. A client that decides to grace you with an answer may elaborate further when they feel like it.
2. Domain expertise
Hopefully, you will find a company that has developed a project similar to yours. But ideally, look for a team that specializes in the exact field as your project. Although it’s not always possible or necessary, it may make things easier later on. To find a close match, carefully analyze their portfolio, and read between the lines when needed. For example, if a company has successfully developed a grid monitoring system with machine learning capabilities, it may not seem like much to you. But what if we rephrase it into “big data analysis”, “Internet of Things”, or “real-time grid monitoring with machine learning”, it makes quite a difference, right? These phrases mean the exact same thing, and may be just what you’re looking for.
Finding a software house with experience in similar projects to the idea you want to develop helps a lot. A company that understands your business goals will, at the end of the day, help you create a better product.
What’s more important is the technological stack, especially when you’ve already decided what technology you want your project to be developed with. Find a software house that is using these frameworks, libraries or languages. They are typically listed under the ‘Services’ section on the software house’s website.
3. Rates
Get offers from as many software houses as possible for comparison purposes. Typically, estimations are free. You may notice significant price differences between offers, but try not to focus too much on the price alone. While offering similar technological stack and solutions, cheaper companies tend to have a much longer estimated time-to-market compared to, initially seeming, expensive software houses.
Case in point: let’s say that a company X offers 35$ per man-hour, and a company Y that charges 75$ per man-hour for the same project. Company X’s offer seems to be more appealing, but may end up taking much more time to deliver the product than the company Y while keeping the end price exactly the same. Company Y works in Agile, meaning that the team’s goal is to deliver the product as soon as possible. Going with the Agile approach has many perks – transparent development, you pay only for the hours spent on the projects and actual results.
Once it’s delivered, you can finally monetize it (yay!). If you’d chosen Company X’s offer you would have to wait much longer for the same result.
Companies often offer some sort of a free trial to give clients more confidence signing the final deal. If the expectations are not met you can terminate the cooperation but keep in mind that after doing so you lose all progress achieved by the team. At Naturaily, the trial usually lasts 2 weeks.
4. Technological stack
Good software houses offer a wide variety of quality technologies to choose from. They don’t force their clients to use one and only technology. Instead, they try to tailor the tools specifically to your needs.
Make sure to choose well established and widely supported tools. Some companies may want to develop new products using old technologies in order to cut some corners in production costs. The issue here is that these technologies may soon become obsolete, leading to multiple problems with future-proofing and further scalability of the product.
5. Comprehensive services
An ideal scenario would be a software house with all the necessary talents on board. This way you don’t have to worry about hiring, for example, additional UI/UX teams separately. Instead, their designers can cooperate with developers and participate at every stage of the development process. This arrangement may not be possible if they were coming from separate teams.
At the same time, it’s worth noting that you shouldn’t expect one company to take care of everything – this is actually a bad sign if a single company dismissively agrees to all your demands. They’ll take care of the design, marketing, graphics etc. Companies should know their limitations, otherwise, it may lead to a bad outcome.
6. Communication
One of the major problems clients of offshore software houses quote is bad communication. This may result from a number of factors – from significant time zone differences to lack of internal organization. But “bad communication” does not have to stem solely from speaking different languages.
Most good software houses hire people who speak English fluently. You can experience problems when working with people fluently speaking the same language as you. It’s actually more about the communication habits, as they may reflect the company’s general approach to software development. For example, you can consider it a warning when responding to your email takes the (potential) partner more than two days. Communication bottlenecks can have a serious impact on the course of the project.
From our experience, communication between the product owner/client and the software house was proven to be improved by using specialized tools such as time trackers (Breeze or Jira) and messaging software (Slack). Using these tools allows developers to be in direct contact with the client. It minimizes any possible misunderstandings as the parties can easily dispel any doubts or discuss ideas. At Naturaily, we think that transparent communication is the key to every project’s success. We’re in touch with our clients at each and every step of the development process. It’s a solid practice that can save a lot of stress, time and money in the long run.
7. Formal Agreement
It’s totally understandable if you are hesitant towards sending your brief over to a company from the other end of the globe. You want to protect your Intellectual Property. The good news is there is nothing to worry about. Most software houses offer NDAs (Non-Disclosure Agreements) – which restrict them from revealing confidential information to their other clients (your potential competitors). It gives you the security and protects you against copyright infringement over a specified timeframe.
Reliable companies will sign this contract with no hesitation. Avoid companies that shy away from signing it. Some offer it before you even engage in more detailed discussions.
8. Make sure they are the right size for you
Pick your size development partner is the golden rule of software development outsourcing. If you can't read it from the portfolio, look at their clients and see if they typically deal with other companies your size. At the same time, extensive experience in your domain and portfolio packed with products similar to yours won't guarantee the success of the project if there is a serious size discrepancy between your company and the partner.
Big software development companies have different processes, marketing channels, and customers than small ones, and may not approach your project with the love and attention it deserves. Conversely, too small a company may not be able to handle it in the first place.
9. Clients don't trust the companies that never faced a challenge
Everybody understands that for many software development companies Clutch is the de facto marketing channel for sourcing leads. And that's ok. Most profiles are impeccable – polished graphics and excellent reviews. But never admitting problems in software development projects is simply lying. Look for companies that mention problems and have faced challenges. They might be ready to clue you in on how they were able to handle them – which would give you a lot of valuable insights.
This is a measure of a company's honesty to potential clients.
Wish to learn more about finding companies on Clutch?
If yes, that's great. We did our best so you can grasp the topic easily!
10. Future-proof your relationship
Look beyond software alone. If you’re after a lasting relationship, consider the economical and financial factors on top of all the technical considerations of your project. For example, check the political stability of the country where your would-be partner is based. Make sure that political changes don't impact your relationship in the future, e.g. consider collaboration with the UK-based companies.
Do some extra research into the local labour market to see how hard it would be for the team to scale up if needed. Can they find the right talent in the future? E.g. post-Brexit Britain may be in danger of losing vital software development talent.
How long has the company been on the market? Have there been any mentions in the news about their past problems and how they solved them?
11. Testimonials
Yes, everything on the partner's website is created by the marketing team and yes, they can write anything they please. After all, they want to present themselves in a positive light. But getting an unhappy client to write (or accept the publication of) a positive testimonial is virtually impossible.
Look for quotes on their website or in their case studies as a testament to their work. If there are no quotes, you may just as well treat the content as marketing waffle.
12. Case Studies
Case studies are another way to glean the details of each project and get more insight into the company’s development process, and learn about the typical projects and problems they are faced with.
Case studies present the details of the projects the company has worked on. They typically follow the situation-approach-impact structure, but there are numerous exceptions to the rule. Whatever the take on their case study, the software house should detail the scope of work they did in a project and present the key benefits of the solution they offered the client.
Specific metrics in case studies can give you a more precise idea of their interpretation of the word successful, backed by the actual representative of the client.
13. Start small, size up as you go
If you think you've found the right partner but are still afraid to go all in, start small first. Before you contract a 30 person multi-purpose team with a number of developers, designers, testers, and project managers on board, test the whole arrangement with a smaller team. Such a team will be easier to manage but may give you a glimpse into the working ethic at the company. From there, you can cancel or scale up.
You can gradually increase the team size. In 3 months, you can have the full team onboard. For a large team, it’s best to have a project manager on either location and, depending on the project needs, a business analyst.
A smaller, pilot project is another good idea to reduce the risk of the team ending up with a sub-par product. The pilot job can be a part of a larger project. This way can reveal the quality of their services without you having to spend too much money. It also allows you to get familiar with the team and gain the confidence you need to hire a team for a bigger project.
14. Know the team you are working with
Before you decide to cooperate with the software house that looks good on paper, set a video-call and ask for the office tour to see the team you will be working with. That way you will eliminate the risk an unknown subcontractor will implement your project. At Naturaily, the first call is always with the CEO as we believe that this is the right way to start business relations. Marcin is an entrepreneur with over 20 years of experience in the software industry and eager to share his business perspective on the project.
15. Avoid the yes-men
This may sound counter-intuitive, but yes-sayers spell problems. Look for a developer that knows when to say no. The ability to question your requirements and design choices is a sign of industry expertise and should be understood as the desired quality for the development of your project.
After all, you are looking for an expert in their domain – someone who will guide you through the development process rather than the other way round.
16. The pricing model
The software development industry uses two leading pricing models: fixed price and time and material. Much has been said about choosing between them, but the decision vastly depends on the type of project you are hiring the team for.
Fixed price makes sense only when you know exactly what you want to build and you are not likely to change your requirements down the road. But this also leaves you with a huge responsibility, and requires certain industry experience on your end. This arrangement is difficult primarily because the requirements almost always change, and the consequences can be really expensive.
Time and material in Agile software development simply means paying for the work being done as the project progresses. The project is paid as per one- or two-week long iterations. This allows you the flexibility for introducing changes after each iteration.
This flexibility is really important in today’s world, especially when developing MVPs. It may also enable you to test the product earlier, and possibly start monetizing it before all its features get implemented.
17. If everything else fails, use intuition
Give your gut feeling a chance. The best company does not have to be the best partner for you. This may go against all the rules, but intuition turns out to be a very good advisor. Even software development projects take some chemistry, and first impressions are often right. Simply making first contact and discussing your project with a potential partner can be a great indicator of the value of your collaboration. How excited were they about the project? Were they willing to help? Did they offer interesting insights to make it better? Do you think the team gel well with your people?
If there is a positive, natural collaborative chemistry between a partner and you, the benefits behind it may outshine many of the potential fears (e.g. rates, geographical location, initial team size etc.)
Ideally, look for a partner that sees you not just as a business opportunity, but as an interesting challenge.
Last words
Finding the right software development partner is never easy. The prospect of losing time and money is paralysing for many companies, and the fear often makes them go with the wrong, too big or too expensive partners. But there are great development companies out there – you only have to know which things to look at. We hope these steps will help you get through the process, dispel fears and put certain things in perspective, helping you make the right choice.
Let's talk about Jamstack and headless e-commerce!
Contact us and we'll warmly introduce you to the vast world of Jamstack & headless development!