Whether you’re a small company that only plans to come into mobile existence or a powerhouse that needs to revamp its existing mobile premises to give them a fresh feel, you will likely face the same challenge: how to find an app developer to meet your specific needs. And, most importantly, how not to bust your budget and not to get stuck in the gloomy swamp of endless updates, fixes, and miscommunication. With this article, we at JatApp want to guide you through a tricky path of devs market analysis and selection and help make you the right choice. So, where to begin and what pitfalls to avoid?
Here’s, in brief, the path you will have to undertake:
- Define what you need in particular and what you can afford. In other words, what task you have in mind and how much money you can spend on it.
- Decide on the general characteristics of developers you will hire. Define the pool from which you will pick.
- Shortlist the potential hires, research them and communicate with them.
- Pick the developer or a team that fits your needs best. Do not ignore your gut feeling, though.
Now we’ll review and explicate each point in greater details.
- Define your needs and capacities. Knowing your limits right from the start can simplify the task significantly. It all begins with your budget. No matter who you look for, never opt for the cheapest option. You risk being penny-wise and pound foolish. So you have to come to terms with the idea that you will pay the average rate on the market or pay the premium price and get decent or brilliant team members accordingly. Now that you know what you’re going to shell out for the services, decide on whom you will hire.
What your budget and global goal say. If your budget is medium, you will have to weigh the options of outsourcing or extending your in-house team. If you have the ample sum to spend and a grand project in mind, consider hiring a skilled developer or a team for your company who will know from A to Z what you want, how it fits your mission and business model, and who will maintain and update the app afterward in background mode, without your thinking about it twice. It looks tempting to outsource the task and save some money and time, but if you are ready to pay a lot and want the outstanding service and product, you have to have a dedicated team that works for you only with full commitment. Imagine Google outsourcing any part of its development to India or Vietnam. Yes, the analogy is obvious.
But such grand needs, like the development of a new mobile operating system or browser, are rare and undertaken by whole companies that work on such sole projects.
Most often, the tasks are modest and can be given to outsourcing contractors. It will also cost less than having a full team of your own onboard. However, now it is time to consider your specific task to solve.
What your task says. First, you may need to enhance your existing team with a specialist to meet the challenge of the project at hand. Next, you may need to deploy the new technology in addition to the existing one and need a specialist who knows this particular technology. Finally, you may need to build something right from the start, when you have only a general description of it, and you need a whole team to translate it into a technical specification document and to actually create and deploy it.
In all cases, you can invite an app developer into your team or outsource the task.
How to choose? As we said, the price is not the ultimate criterion. The cheapest code or app prototype is usually a poorly working or totally unworkable slap-dash creation that needs thorough reworking or complete rewriting. So you will have to pay anew and then pay some more. But a good outsourced team will cost not much less than a good in-house team. So decide with relation to other criteria.
For in-house developers:
- They work in the hand’s reach, see other employees of the company and get the company culture. So when you want them to advise you on the potential drawbacks of the app they can evaluate it properly, not just from code and design position. If they see that your turnover is high they may advise you to opt for a more capacious and workable solution than you imagined first.
- They work on your project only, without dispersing attention to other projects. You can ask questions directly, without tiers of communication tools. But it does not mean that you will pester them with demands and questions whenever you want. The development has its objectively structured processes, and you will have to accept them (like in case with outsource team).
- You provide space and equipment (or they come with their laptops and you pay a little extra), you pay for their time even if they do not work while waiting for other parts of the project to be completed.
- You can hire people who live nearby or can relocate on their own (without you renting them a flat).
- You will need a manager to organize and direct the team, but the outsourcing team also has a project manager and you pay for his or her time as well.
- The greatest disadvantage is the time you take to gather a team if you need more than one app developer, and after hiring each of them you still cannot be sure they will work smoothly together and deliver what you want in the time limits you have.
This is where the greatest advantage of outsourced developers comes to the surface:
- You hire a whole team that has adjusted to each other and its members will not quit the project halfway because of personal issues. If the team representative says they can deliver, and the team has several projects in their portfolio, you can be sure that they can work well. So you will get what you have paid for.
- You hire professionals who keep track of the latest technology because it is their piece of bread. They know what and how to do, and they can advise you, but you will have to provide detailed description of your company, its culture, goals, possible expansion plans, and so on so that devs could predict what else could be needed in future and how to embed these capacities in the app right from the start.
- The greatest disadvantage is the lack of direct communication channels and the possibility of misunderstanding, but this can happen and with your in-house team. Online communication tools, use of Scrum, set sprints and regular delivery of demos can level the risk of misunderstanding and make the work as smooth as it would happen in your own office.
- Another advantage is that if you hire a remote team from some other country, the price can be significantly lower but the quality remains really good, because of exchange rates. But monitor carefully what country your developers are from and if this country is known for good coders.
- No, you cannot add other developers to a selected team or replace them quickly as you will because it is the team that decides who does what among them and who is involved in this project. So if you hire a team, let them work as a team. No, you should not hire people from all around the world because only a few countries can boast of talented developers. The rest are home to very mediocre or poor coders who will only waste your money.
- If you hire professionals and trust them, just let them do the job, and wait for results of it, at least for demos. Most probably you will like the demos more than you expect; just let people do their work and meanwhile do what your company requires from you on your side of the business.
What about solo freelancers? Well, if your task is small, like fixing or adding a feature, and can be accomplished by a single person, go to hiring platforms and pick a developer with high rates and a good portfolio. Most probably you won’t miss it. For everything else, there is an outsourced team (although MasterCard will also be of use).
- Let us assume, you decided not to waste a lot of time and to find app developers as an established team (a B2B company that specializes in apps). Where to look for them and how to run the first round of picking?
Geography Matters. It all depends on where you are from, to begin with. In Europe, you can pick among your local companies or try to hire developers from the USA, or other destinations. In the USA, similarly, you can hire a local team or look elsewhere. Different sources provide different data on what countries are known for good coding and what are reputable for trashy code, but general conclusions are similar across many reviews.
HackerRank, the platform that runs the so-called hacking Olympics for developers, awarded places in following order: the 1st place – China; the 2nd place – Russia; the 3rd place – Poland; with closing positions of the top ten belonging to France (8th position), Czech Republic (9th position) and Italy (10th positions). The 11th position went to Ukraine, while hi-tech Hong Kong got the 17th place, the UK was in the 29th position, coming next after the USA on the 28th position. India, Pakistan, Philippines, and Mexico all went to positions below the 30th place. The offered ranking was quite surprising and disappointing for the States and the UK in particular.
This ranking is often cited across the coding industry, but let us remember that the competition on the site is easy to cheat and it does not reflect actual workability of code written by a contestant. So this ranking is nice for the hype, but not accurate for our needs.
More accurate reports are posted by people who study evaluations of coders on StackOverflow or on other trustworthy resources.
VentureBeat analyzed the reputation of top participants of StackOverflow and looked at demographics. The ranking of the geography of the most experienced coders who provided useful and workable solutions and advice was as following, beginning from the highest position: Europe (the UK), the USA, Europe (Germany), Australia and Canada. China did not enter the first 20 lists, while India landed in the 10th position.
However, today many international companies happily recruit developers from Eastern Europe, including Poland, Ukraine, and Slovakia, which becomes obvious if one explores their official pages that present the staffers.
Why this trend is not reflected in StackOverflow research and is only slightly visible in HackerRank report? Historically, Eastern Europe was not strongly integrated into the international community, so the participation of developers on large communication platforms is also rather low.
However, if you want to find mobile app developers with experience and for a very reasonable price, look closer to Poland and Ukraine. Poland is cited as the home of very talented coders on many resources, and Ukraine is named among the leaders of the devs outsourcing market as well. These estimations were based on SkillValue 2019 Report that evaluates the technical skills of programmers (see the report here). According to the report, Slovak developers take the first place, Mexico goes second, Poland ranks third, Hungary is fourth and Ukraine closes the first 5. It is interesting to know that Ukrainians are constantly improving their skills since they have moved upwards and showed the skills index of 93.17% in comparison to their previous result of 91,26%. Even more important, when GitHub devs accounts were analyzed not for subjective popularity among other users but for GDP generated by aggregate accounts of a certain region, the Ukrainian coders won the absolute top position because they were recruited most often and regularly closed the contracts successfully. So if you look for a good deal that may cost you a bit less than hiring developers from the EU or the USA, look to Ukraine, for that matter. India or Vietnam may look cheaper, but according to all rankings, you will likely pay twice or thrice for follow-up debugging and code fixing.
Okay, now that we know how to find an app developer according to geographic criteria, let’s consider where to look for developers and be sure that you will hire a decent contractor. Freelance platforms are the first thing that comes to mind, but along them, you can research other reliable channels leading to successful hiring.
Freelance platforms are typically known for a wide selection of lone entrepreneurs willing to get a gig. Developers can also be found on such platforms, but if you need an established company, you’ll have to look elsewhere. If you look for a solo developer to accomplish a small task or if you are ready to give a try to a freshly minted outsourcing company, try Upwork. It is a reputable destination where good mobile developers can be recruited. Guru and People Per Hour are other recommended destinations. You can check applicants’ profiles, rates, and pricing and then select.
B2B solutions platforms. These are sites that list companies that provide services to other companies only. Clutch.co is the directory most advanced and rich in content, where you can browse companies by rates, location, and expertise.
This is the right place to find a good coding outsourcing company.
GitHub is for those who know their way around coding and so are willing to probe the code of potential developers. Check code samples there, see if the researched company provides design services for mobile apps as well and go ahead knowing them better if everything about them appeals to you.
Tech blogs of standalone companies or dedicated tech media. This is what you read now in particular, the tech blog of JatApp, and if you wonder, yes, we can meet all criteria for excellent mobile app development we mention here (and even criteria posted by others). But in any case, the information you read is accurate and verified, so you may apply it to any web development company you want.
Design platforms and communities. Yes, sites for designers can be a direct path to finding a team of developers because designers are usually parts of these teams. Design for iOS or Android comes hand in hand with the underlying framework, so if you like what you see, ask if they can do the whole project. Look at Dribbble and Behance, platforms that showcase the best accomplishments of talented teams. Check the demonstrated projects and read the company’s profile to know what they are specializing in.
- Now it is high time to shortlist the companies you like in all aspects and communicate with them directly to make a final choice. The showcased projects and images are great, but you need to know who will own the code, how you will communicate across time and space and how often you will see the intermediate results of their job. Some guides on picking an app developer offer long lists of specific questions with which you should grill the potential contractor, but there are a couple of ‘yes, but’s’ to this proposition. First, you need to be as expert in the matter you are prompted to ask as the potential respondents. If you ask question about their best practices or anything that much specific, you should know them yourself. And if you know, you can ask directly whether they use the practices that you appreciate. So you know what to ask without these lists, actually.
Second, some questions may look inappropriate or too inquisitive. You are not hiring the team for your office; you outsource one project from them. Their work routines are their inner kitchen, and when ordering a meal in a restaurant you hardly ask the recipe and the method of making from A to Z. If a company is well-established and has a high turnover of customers, it may reject politely the job offer of a very nosy customer with limited budget who will definitely interfere in every stage of the project. Rather, we suggest that you review what others say about the company you like, learn what the company has to say on the most important points and then just listen to your gut feeling. Points to check:
- Customer reviews and comments. Honest customer’s stories of experience with this company are the best clue to get about it working ethics. Just read not the testimonies on the site of the company, but the testimonies on third-party platforms, like mentioned Clutch.co or GitHub. If possible, ask the company for references and make a call or write to their previous customers asking for their feedback. How the company sees itself and how customers see it may be two different opinions. Alternatively, you will get proofs of reliability and high professionalism of the company’s developers.
- Payment: fixed or time and materials. This is an important consideration to think through. Fixed price for the whole project will always be by nearly a quarter higher than the ultimate total price of time and materials (per hour payment). It happens not because of greed of the company but because of objective impossibility to predict the exact amount of work and follow-up updates and changes that your project will need, in particular, if you want it to be developed from scratch. So the team needs to account for possible time extensions and additional work you may require from them in the future while they have to provide you with a quote right now. Practically all decent companies offer the option of per our payment, so be sure to choose it explicitly when negotiating.
- Experience and particular areas of development they focus on. No one can be an expert in everything, so each company (or developer, for that matter) will have their area of expertise and will pursue the certain segment of the development market. Ask if your task fits within their expertise and if they work on such tasks often.
- Specific tools and technologies (languages, frameworks) they apply. Actually, what you want to know about the team you plan to hire is what similar projects they have already completed and how they completed them. So look for an official portfolio on their site or on other B2B platforms. Also, do not skip case studies they post on their web page. These cases often describe in brief how the team tackles the task, solves problems, what processes and principles uses and what results delivers.
Just remember that not all projects can be posted openly because of proprietary or other limitations. So if you need to know if they have already worked on projects like yours but do not see it in open access, just ask about it directly (and comply with NDA obligation, if such is the condition of reviewing the project).
It is reasonable to want to find an app developer who regularly uses the technology that you need, so if you are planning to have your app or site remodeled in React, pick the team that names this framework on their Technologies or Expertise page. Reputable companies do not just place an array of various technology tags on their page; they usually feature a limited number of frameworks that match the expertise and business focus of the company. If this page lists everything from HTML to Go, then probably this team (or developer) is Jack-Of-All-Trades, master of none.
- Proprietary information and rights to the code. Alas, it may happen so that someone will want to take advantage of your brainchild (although such cases are very rare). To prevent it, while talking to a prospective contract always have a Non-Disclosure Agreement at hand and ask the other side to sign it. Some development teams even have a button on their site saying ‘Send me an NDA’, which means they are aware of potential troubles and are ready to curb them right away.
However, what you do have to write explicitly in your future contract with developers is that the created code and product are transferred to you with full proprietary rights. No part of your product should remain in ownership of developers. If they send you their standard contractual agreement, be sure to read it carefully and clarify who exactly owns the created code, design and product. It should be you. Otherwise, you will be paying royalty and service fees to these devs as long as your product exists.
- Quality standards. In development, quality standards are achieved through a certain combination of good practices, methods, tools and technologies that guarantee you a decent result and workability (and compatibility) of the product. Ask what quality standards they use and if the code will be reusable and the app scalable.
- Working moments of development (important ones). When you work with one developer, you just agree on time frame and how you get to see the results. When you contract with a developers team, you need to know that their work will be organized and in compliance with the industry’s norms. Clarify the following:
- It stands for software development life cycle, and it means clear distribution of tasks and steps completed at each stage of development process. Each team has its own particular SDLC that enables them to deliver good products with no or few bottlenecks on the way. Yet this SDLC should be tweakable so that to match your particular needs and product design.
- Methodology they use for managing the app development project. These exist only a few widely agreed-upon methodologies of development that are defined by readiness of a product on intermediate stages of development. Currently, good practice means using Agile class of methodologies, the most popular being Scrum and Kanban (each is suitable for specific purposes and can be combined with the other). Agile development means early delivery of readied software or its components that can be reviewed and approved or sent back for improvement. The development is matched with a customer’s needs and the final goals of the product. The final app may look different from its initial concept but will provide excellent user experience and efficiency, which is the ultimate desire of the customer. Waterfall is the classic approach when everything is developed according to the initial plan, the full product is designed, tested and shown to the customer, and only then any changes or improvements are discussed and implemented. As you see, Agile is reasonably considered to be better, since you will see the minimal viable product in a week or two, not in 6 months.
- Communication and demonstration of results. You may worry about keeping in touch with a remote app developer team, and you are right in your worries. Yet today there exist a bunch of efficient solutions that help communicate from distance as smoothly as in person. Jira, SCRUM services, other tracking tools, conference calls with Zoom tool, – they all serve as excellent channels to ask and to receive answers fast and fully. The only thing you need to negotiate from the start is how often you will communicate and with whom, and how often you will see the demos. Ask if the team organizes a kick-off meeting if you can contact with all team members and not only with the manager, and what the length of development sprints will be. If answers satisfy you, go ahead.
- Particulars: high load, integration, major updates, scaling. Yes, you have to mention these particular aspects when talking to a potential contractor. The developers need to know the prospects of possible crash-loads of your plans to integrate the app into something or of something being integrated into the app and other technical stuff. Each project is unique in something, so it is normal for developers to ask such ‘obvious’ questions. It is not a sign of unprofessionalism; rather, it is a sign of experience. Besides, these questions may urge you to think about aspects of the app that never occurred to you before.
- Think, analyze and decide if you like people you talked to and who were presented to you. Put together all the information you got and let it sit. Meanwhile, focus on your subjective evaluation. If communication was nice and you felt OK, then most probably you will have great cooperation and all possible issues will be settled to mutual satisfaction. Then look at the information you have about the potential mobile development company and compare it to what your intuition tells you. If everything goes together nicely, then most probably you’ve managed to find mobile app developers that will make your dream app come true.
And yes, we invite you to give us at JatApp a call right now to start that chemistry process. We are sure we will find common grounds and launch an amazing development journey to the cool app that you envision.