Generally, when people search for developers – it’s their first or second time, so they don’t have wide experience of working with development companies. Usually, we arrange a couple of calls to see if we can be a good fit for each other. Even in the case of a mismatch, I try to help and give advice. A few times it happened that these people contacted me to express gratitude for a useful suggestion. With time it appeared that all my pieces of advice are usually the same. This discovery prompted me to write this article.
When you have a beautiful idea and all the necessary resources to implement it, the last thing you want to do – to lose time and momentum. It would be so great to have a mature app development company that you can trust within one call or message from you.
But how to find an app developer like that?
It is very simple.
- make a list of potential software development companies
- conduct a study on finding the most appropriate match for you
- contact the best candidates
How to find out who is the best?
There are a few aspects which you should consider first of all.
Product expertise
What is your product niche?
- New real estate loan marketplace
- Business App for Improving Productivity
- Instagram for dogs
It makes sense to look for companies which have already done similar projects. It’s not reasonable to hire programmers who need to gain new knowledge and start from scratch. You can find developers with experience of working in the same industry. They always ask the right questions and know how to reduce total costs.
Communication
Bad communication is reason #1 for project failure.
If you find out critical problems in the project at least 2 months before its deadline – there still will be a chance to save it. But if there is only one week before the deadline, then you can consider this project to be already failed.
You need to feel certain about your programmers and that you both are on the same page. And the key point for this is good communication. Start from scheduling weekly demos and daily stand-ups. If it’s impossible to do it face to face – arrange Skype calls or use any other conferencing tools or apps.
From my experience, such an attitude helps to discover problems early and solve them quickly. At the beginning of cooperation, don’t forget to ask the development team if they follow this practice or have some other alternatives.
Tech expertise
Even if you thought up something brand new and your product is unique, it still has the same structure and features as others existing and established products.
Let’s take a look at Uber which consists of the following features:
- mobile app with account management
- GPS tracking
- map support
- backend with payment integration
- fraud protection
- complaint management
Many different apps have the same features in their core, they aren’t unique or original. You should define the main features of your product and ask potential programmers about their technical skills and expertise. You can also figure out how much time it takes for the development of every feature. It can also help a development team to estimate time properly and allot less amount of time for working on the already known parts.
Marketing expertise
There are startup founders with substantial experience in marketing because they have already been down this road before. But those people, who just start working in this area, lack the experience. Here is the list of questions to ask yourselves:
- Do I have an exact portrait or persona of my end users?
- Do I know how I’ll get first users?
- How do I plan to track conversions from clicks to payers?
- Can I calculate ROI based on different acquisition channels?
If you don’t have answers to these basic questions, you can spend a lot of money on creating a great product, but do not get any users.
On the other hand, you can choose a development team that possesses needed marketing expertise and can share it with you. They can also help you to solve other various technical issues. They can suggest you which feature to cut from the list to reduce costs, test the product and marketing hypotheses, and share some tactics for acquiring first users.
Think about your own strong points, what you know and where you might need help. Then include this needs in the list of requirements for your development partner.
Type of development company
Like everything else in the world, development companies can differ one from another in various ways. Not every company will suit your needs, so you should decide which type you actually need.
Established business suppliers
Outsourced companies that work with large enterprises and established businesses. Such development companies usually have more detailed procedures, higher security expertise (eg: fingerprint sensors and cameras), and high-level certifications. Big banks, insurance companies, large corporations as Boeing – this is a list of their potential clients.
They precisely know how to sell their services and how to code according to detailed technical documents and specifications. They usually care about the absence of bugs and do not care about product success. To help you discover the best product-market fit and help you to sell products – isn’t their main task. This type of development partner is great when you need them to write you a precise set of features.
Startups suppliers
“Studio”, “Agency”, “Factory” – this is their regular names. Usually, these are companies of small or medium size that work with startups on their early stage. They are characterized by a more agile attitude, usage of less strict rules and processes and willingness to sign up a non-disclosure agreement that provides IP protection.
All you need to get started – a standard form of contract. Companies that have already been on the market for some time, can have an experience of working in different industries and a number of case studies to show. Such companies are less expensive and more flexible with arranging the start and end dates of the project.
Startup owners should choose software development companies which:
- have experience of working with startups from scratch
- realize that there is no need to undertake exhaustive code testing at the MVP stage
- understands that time-to-market can be critical
- are flexible with the development process as it might be needed to postpone the completion of certain features
- assists with the ongoing need for user feedback
You should decide if you want your project to be the one that will provide an inexperienced development company with learning opportunities to attain above expertise.
Company Size
As an entrepreneur, you are going to face a lot of risks and you have to find a way to reduce them. It’s important to make sure that your development partner will stay with you until the end of the project. Small development teams sometimes tend to disappear, eg: when two core staff leave the company for better opportunities. So you should be careful when hiring small, up-to-five people company. Even if they have perfect competence and offer you a great discount, do not get tempted easily. Ask them if they have experience with implementing quality-assurance programs. Check if they are experienced in working with different platforms ( eg., mobile development, web development). It will prevent you from going through the same hiring process if you ever decide to extend your product’s reach.
Pricing policy
Don’t choose a programming company with the cheapest prices. Take into consideration the reason that made them lower it. There is a chance that they will need 5x hours to have their work done so you will have to pay even more in the long run.
If getting the team with the lowest price is your main priority, there is a chance that you will get stuck in the middle of the project with a low-quality code that no one is willing (or able) to complete.
It’s a widely occurring practice that after such a bad work of one company, other professional programmers refuse to work on an existing code of poor quality. There is a chance that they will suggest you throw the existing work into the trash and start all over again.
There is no guarantee that mid-size companies will provide you with optimal coding quality, but at least you will have more chances to find another team within a similar budget.
When choosing large and highly experienced companies, compare a few of them and try to distinguish other important differences (except pricing). Then you can decide which of these differences can be the most significant for your project.
What else?
Does your development team have the same culture and strategy as you have in your company? Don’t forget that you will be working with them on a day-to-day basis so your cooperation should be comfortable and reliable for both of you.
Last thing to consider
New programming languages, frameworks, and technologies are continually released. And every one promises to be faster and more efficient than its predecessors. For sure, you like it! App developers like it too. So they buy into these new technologies and then they need to sell them to customers – doesn’t matter whether they need it or not.
There is a huge variety of back-end and front-end languages, they all are good regardless of being old or new. Your product can be built with the help of any of such technologies, within time and budget scope.
On the other hand, there is a chance that your product will be built with a huge number of bugs and errors, that can take 5x the initial budget and a few years to launch. In this case, you shouldn’t blame the programming language or platform quality. Most probably the reason for the blowout is a lack of talent among developers.
Otherwise speaking, when somebody assures you that your idea MUST be implemented only with the help of Ruby, and by no means with PHP, try to google: “Sites running on PHP”. Spend a few minutes examining the information and reading responses, and then come to your own conclusion. Having looked through the list with prosperous businesses, you aren’t going to come to the same decision as developers.
Pro tips
- Ask your experienced friends or colleagues to help you with an estimation of the technical level of the lead engineer in the company you want to work with
- Ask your potential developers for contacts of previous clients. Especially pay attention to those who had projects in a similar niche with you. Call their customers and ask for the feedback of working with the developers. Were there any problems during the cooperation? Can they give you any suggestions? Is there something you should worry about? Maybe they can give you advice on how to build your partnership more efficiently.