Table of contents
- Why do companies outsource software development?
- The Costs of Outsourcing Software Development
- How to evaluate the quality of the vendor’s work?
- Where to look for an IT outsourcing partner?
- How to cope with communications?
Why do companies outsource software development?
Let’s be honest, the first and most frequently appearing reason for IT outsourcing is savings. If you are interested in entrusting a software project to an external team, it probably means you can’t find programmers or can’t afford to hire them. And you’re not alone with this problem as 9 in 10 HR managers and recruiters (86%) find it challenging to hire technical professionals (according to Indeed survey), and it’s estimated that by 2020 only in the European ICT sector there will be 756,000 unfilled jobs. This huge tech talent shortage results in the dynamic growth of IT experts’ salaries and by now, in some states of the USA they are even two times higher than the local average earnings.
Tech salaries across the USA source: Robert Half
Furthermore, the real cost of hiring a software developer might be much higher as you need to consider extra benefits, additional insurance, 401 program, annual and sick leaves, etc. And in some regions like the world’s biggest tech hubs - London or New York finding a developer without help from HR agencies would be an extremely demanding task. If you decide on this solution, you will have to reckon with additional fees reaching around 15-20% of the developer’s annual salary. But let’s assume you finally managed to find an employee whatever on your own or with help from the agency. Do you know that an average American changes a job even 15 times during the career? You will have to try really hard to keep him/her satisfied and invest a lot of money in Employer Branding so your competitors won’t be able to pilfer your precious team members.
Is freelancer an option?
If it comes to the additional cost of hiring in-house dev, there are also those related to hardware and office space, although it’s possible to avoid them by hiring freelancers. This might be an option for smaller projects with limited scope, but still, it entails some risks. Freelancers often cope with a number of different projects at once, so it’s rather unlikely that they will be able to devote as much time and effort to your project as you would like to. And, as a result, the code quality not always will be impressive. So choosing this type of collaboration is not a good idea for mature businesses and post-MVP startups in a situation of rapid growth. Finally, hiring a freelancer is not always as cost-effective as we often assume. In the US market, they are going to charge you around 60-200$ per hour for their work, and these prices are constantly growing.
Of course, it’s not all about money in IT outsourcing, there are at least 9 other reasons for entrusting software project to a remote team, but there’s no doubt that the first criterion in choosing a vendor is a price. So let’s start from the very beginning.
The Costs of Outsourcing Software Development
Prices on their own might not convey enough information to compare vendors’ payment offers. Still, you should assume at least some price range, especially when you operate within a tight budget. Then you can focus on the regions which suit your financial resources. There're a lot of statements comparing programmers' salaries and software development costs, which are a great starting point for the research.
Cost of hiring software developers in Europe & the world, source: luxinnovation
But when it comes to the financial aspect of evaluating software vendors, beside the prices on their own, another aspect to consider is the billing model they use.
Pricing model - why T&M contracts fit IT outsourcing better?
Traditionally in business cooperation, a company defines the budget within which a vendor can operate to deliver prearranged solutions at a specific time. This is the fixed-price approach, which gives you an idea of the final cost of the project, its scope, and duration ...or not. Why? In most software projects, especially the custom ones, it’s just impossible to estimate all these three things precisely. The vendors usually assume some safety net, so the quotes in fixed-price contracts are just higher. To keep the budget in check it’s necessary to prepare a strictly set specification and not modify it during the development process. To be honest - it just never happens in a hundred percent. Some of the ascertained requirements might need to be reformulated because the market environment changed, or the first users verified your ideas. All these problems had their contribution to spreading the other approach to pay for developing apps - time and material. It assumes that you will pay for the delivered work and won’t have to plan every detail in advance. In the beginning, you and the software house team set up a general goal, basic features, and the tasks for the coming, near feature (usually week or two, depending on the Agile sprint length). T&M contracts are much more flexible and give an ability to implement changes during development.
The other differences in billing methods concern the type of company you’re cooperating within IT outsourcing. When it’s a body leasing agency you will be charged for a day rate - it means that you will pay only for the code that has been executed during the day. Software houses also offer you team augmentation solutions like that, but on the other hand, provide full-stack development, and project-oriented attitude. Beside time and material billings, they do enable the possibility of signing a fixed price contract.
What cooperation model to choose?
Specifying the exact needs of the project determines the choice of cooperation model. For smaller projects and rather short-term collaboration, staff augmentation should be enough. This model assumes extending your in-house team with external software developers for specific time and purpose. If it’s a temporary and not widely used solution, it will be cost-effective and assuring flexibility and your control over the whole dev team.
However, if you need more comprehensive services, you should consider software project outsourcing. In this case, your product is developed by a multidisciplinary team, and what's more - you gain a new, external, expert viewpoint about your ideas and product. Although it will cost more as it requires engaging additional team members, it enables devolving the responsibility for the project to the IT partner. This way, you can focus on the core business and save a lot of time and effort, which has to be put into software development.
Ok, prices are often decisive (that’s why we started with it), but you should always take them into account together with the code quality. And that’s the thing that is much more difficult to asses. How to check if the partner will provide you with the high code quality if you haven’t started cooperation yet?
How to evaluate the quality of the vendor’s work?
There are a couple of things to analyze when assessing the outsourcing team’s professionalism, so it takes time to conduct a comprehensive research. Here’re some of the issues to consider.
Range of services. Why do you need a full-stack team?
The full-stack team ensure a holistic approach to your project
The same rule also applies to other areas of software development. As most IT projects require not only programmers’ work, a vendor should be able to provide experts like Testers, Project Managers, UX specialists, and UI designers. A software house with a well-established workflow for sure will help you compose the best team for your demands, and prepare an evaluation based on the materials you’ve presented. A reliable IT outsourcing partner offers a wide range of solutions at every step of the product design and development process, from Google Design Sprints, Scoping Sessions, through UX workshops, to development, testing, and delivery. This full-stack approach can give you a holistic view of your project and help you scale your business.
Check the know-how and engagement
The software house is as good and professional as people who work there. So first of all, you can take a look at the number of employees to make sure that the company is able to dynamically scale up the crew when it's needed. But you shouldn’t stop here. You have to find out who exactly they are and it doesn't mean only browsing the “About” or “People” parts of the companies’ websites. You can check the Linkedin profiles of some of their employees, see if they’re developing their skills, how long they have been doing their job, what projects they were engaged in. If you would like to get a sample of their know-how - most of the best software houses run their own blogs within which their experts share the knowledge. That’s the easiest way to check if the people who work there are up to date with the newest releases and cutting-edge solutions. What’s more, you’ll probably find there the answers to some of your doubts about the technologies and IT outsourcing.
Make sure you work with people passionate about their job and sharing the knowledge
The willingness to share knowledge also proves that people are real enthusiasts of their job - and why is it important for you? It means that they keep abreast of their work and can provide you with fresh insights that can be beneficial for your project. So beside articles and posts published on blogs and profiles (whatever corporate or private ones), external websites and magazines, they may also speak on conferences and local meet-ups. In fact, sometimes not only the employees but also the whole companies are engaged in supporting the local IT communities and organize events like our Py_tej and Front.radar.
What also reflects the engagement in developing the IT industry and community is a contribution to the open-source projects and an activity on Github. We all know that the developer’s work is demanding, but if they dedicate their time also to develop such projects like django-trench, an open-source library providing two-factor authentication for Django, or NativeScript mobile app creation tutorial - it means they really love what they do.
Experience and business maturity
Although IT is rather young industry, the companies’ experience is pretty well demonstrated by how long they have been performing on the market. But again, you should dig deeper to have a broader view of the vendor you are going to cooperate with. Take a look at its works, check if they have experience with the technology that you are interested in. Maybe they worked with a client from your country or your industry? Their testimonials for sure could help you gain a better understanding of their scope.
Apart from that, you should also check out the independent rankings on websites such as The Manifest or read clients' reviews on Clutch. They provide a really significant point of view, as you can find there in-depth client’s opinions. That’s because the user has to fill a detailed form and the answers can place the whole project in a different light.
The experienced software house should also have advanced processes that improve work and project management. Establishing the right and efficient software development process may take years, but the most important is that it should be flexible to fit it to the client’s needs.
Agile Software Development Process
That’s why you should make sure if the team deals with the Agile approach on a daily basis. No matter what kind of maturity level your project represents (if it’s just in the planning phase, post-MVP, or ready product that needs an update), the outsourcing team should be able to support it at every step - from the scoping sessions to the product release and maintenance.
Where to look for an IT outsourcing partner?
Limited IT talent pool (and as a result - the high cost of employing tech specialists) is a headache of most western companies, so it was only a matter of time when they will start to look for experts in other regions of the world. Today they focus mainly on 3 destinations - Eastern Europe, South Asia (and Asia-Pacific), and South America. It’s not only because of lower billing rates but also the high level of education, English proficiency, economic stability, law simplifying business cooperation, infrastructure, or innovation ecosystem. All these indicators (and many more) create an environment for running a successful software development collaboration, although their specific values do differ among countries even within the same region. Anyway, before you compare detailed indexes start from choosing the type of outsourcing which will meet the needs of your project.
Offshoring vs. Nearshoring
In brief, the main difference between nearshoring and offshoring lies in the distance. First of them assumes entrusting the development to a firm located across national borders but still within the same region. The offshoring, on the contrary, stands for outsourcing a project to a completely different geographical location.
The attractiveness of the middle and east European markets resulted in changing the idea of outsourcing and the popularization of nearshoring instead of offshoring. But it doesn’t mean that offshoring is a wrong decision for your business - each of these solutions has its pros and cons, so let’s take a look at them.
Low costs still remain the biggest advantage of the offshoring. What’s more, thanks to time zone differences, the project can gain round the clock support. But in the case of Asian and Far Eastern markets, the cultural gap and different approach to work may create misunderstandings and hinder collaboration.
Nearshoring is often more expensive but gives more opportunities for fruitful cooperation. Even if the project is nearshored to another country, for a client is much simpler to visit the company, join the workshops or scoping sessions. It’s hard to find any cultural or communication barriers, but of course, there are some exceptions, like, for example, national holidays.
Why companies choose Poland for IT outsourcing?
When deciding on IT outsourcing to Eastern Europe, most of the companies find Poland a perfect fit. Why is that? First of all, according to the HackerRank report, Polish developers are one of the best in the world. Only Russian and Chinese programmers seem to code better than Poles. So if you want to hire the best software developers possible, for relatively low prices with a guarantee of high code quality - choose Poland.
As we’ve mentioned before, the culture gap is small, so there shouldn't be any communication barriers (Poland is ranked in 13th place in the EF English Proficiency Index for 2018.) or problems with organizing the workflow. The Polish economy is stable and one of the fastest-growing in the world. It attracts foreign companies to invest here and has a strong influence on education, which also draws the attention of the students from abroad. Poland is located in Central Europe, so there are no time zone difference problems. BTW - did you know Poznan, where Merixstudio has its headquarters, is only 3 hours drive from Berlin?
How to work remotely and efficiently?
Remote cooperation may not seem like a perfect deal because of the lack of the face to face meetings with your IT outsourcing partner. Of course, it has its disadvantages, but if planned wisely - this kind of collaboration can bring lots of benefits. Here are some of the main things you should remember about when preparing your project for remote cooperation:
- Plan - you have to be convinced that the whole collaboration is well-planned before it starts; make sure that the team you are going to work with have experienced PMs proficient in running project with Agile approach.
- Deal with time zone difference - what may surprise you, the time zone difference can be one of the most crucial advantages of remote collaboration. If you plan it wisely, it provides constant development. Two teams, sometimes located on both sides of the Atlantic Ocean, can complement each other's work.
- Trust - that’s the basis for any kind of collaboration, not only when outsourcing IT projects. The crucial issues are defining the roles of both sides, staying up-to-date with work progress, and maintaining efficient communication with a remote team.
As a matter of fact, the role of communication in IT outsourcing cannot be overestimated and often turns out to become a decisive factor in collaboration with an external software development partner.
How to cope with communications?
Our company has existed for over 20 years and collaborated with foreign clients almost from the very beginning. During that time, we’ve never heard about the project that succeeded despite the poor quality of communication between the teams. Well, that’s probably because it’s never happened. Communication is the basis when it comes to successful digital product creation and concerns not only communication between the software house and client but also between the outsourced team members.
Keeping transparency in remote collaboration
Transparency is crucial to gain a client’s trust. You need to have access to a schedule or workflow plan and be informed about the progress or any changes in the plan established at the beginning of the cooperation. Find out what tools the vendors use to handle communications and how they organize their work. In collaboration with a remote team, emails are not enough because of the necessity to maintain daily contact and a clear message. The most frequently applied communication combo is probably Slack + Jira + Google Hangouts/Skype, so check if your potential software development partner uses these solutions and is equipped with devices supporting smooth and high-quality video calls.
What communication tools your IT Partner uses?
Yes, you do need a Project Manager
The communication standards in IT are often strictly linked to the Agile approach as it determines the workflow and the frequency of meetings. Considering that, try to contact some of the vendor’s Project Managers to find out more about their internal processes and PM team itself. Ask about their experience, if their knowledge is backed with courses and certificates esteemed in the industry, and how they adjust methods like Scrum or Kanban to the project’s requirements and life cycle. Check their procedures in managing risks, budget, scope, and backlog, how do they prioritize tasks, and keep the team motivated. You can also take a closer look at their Scrum ceremonies and daily/weekly meetings - what is discussed on them and what value they bring for your project. Ask these questions to make sure you work with experienced people, and dealing with your project is within their grasp.
Too much to think about?
As you can see, choosing the right outsourcing provider is not so obvious and simple, and definitely requires a lot of effort to run a proper, effective research process. But the time spent on comprehensive evaluating vendors will reduce the risk of misunderstandings in collaboration with IT outsourcing partner and the necessity of changing the software development company. The process of handing over the project and fixing the code might cost you much more and significantly extend the time of developing your app.