Entrepreneurs are often intimidated by outsourcing: it is not clear how to entrust the development to strangers. Here is how to build work with an external team so as not to lose money and get the desired result from information technology consulting company.
What tasks should be outsourced
Some projects are easier to do internally. For example:
- You need to constantly perform a simple task: manually test the interface or typeset pages of the same type. It will be cheaper to hire a full-time junior developer instead of overpaying outsourced companies.
- In R&D projects. It is difficult for them to make an estimate: it is not clear how long the research will take. Outsourcing in this case can be too expensive.
- The project has high safety requirements. For example, an enterprise can only work within a limited physical contour. In this case, an external performer on a remote location will also not work.
It is worth giving outsourcing to clear-cut final tasks:
- If you need to develop a website or application. It is easy to evaluate such a project and check the result at the end. These are the right conditions for outsourcing.
- If the company lacks competencies in some technology. For example, we were constantly writing in Python, but it took to write one module in C. Hiring for this person in the team is unprofitable, but giving it to an external performer is quite.
- When you need to put out a fire: something is broken, you need an urgent reaction, there is no time to recruit people for a team.
How to choose a performer
Outsourcing starts with choosing a team. There are many of them, they have different USP, how to choose the right one?
Firstly, even if you liked one specific team, still send a request for a quotation to several more potential performers. This will provide you with more information about the market and will be able to choose the appropriate option.
Second, evaluate the proposal itself. The team does not ask additional questions and immediately makes an offer. The situation when the performer understands everything is rare in reality. Probably, the outsourcer simply did not dive into the request well or does not know what is worth clarifying.
Conversely, it is good if:
- The performer asks a lot of questions about the task. This shows the desire to make a useful product, and not just write code according to technical specifications.
- In the estimate, the cost of an hour is higher, but the hours themselves are less than that of competitors. This usually means that the performer understands what needs to be done and adequately estimates the task by the deadline
- Third, check out the portfolio. Fireart is ready to perform the examples of really good works. Cases of similar work will show the level that can be expected. If a few months ago the team made an application with poor navigation and a weak interface, then there is no reason to believe that they will do better now.
- Fourth, talk to the team. Specify how they plan to solve the problem, what difficulties they see, what problems they can predict. Too general answers to questions are an alarming sign.
Your goal is to find not the cheapest performer, but the one who will do the best and at the same time keep within the optimal budget. It is better to spend time searching than conflicts and rework.
How to transfer a task to an executor
The terms of reference for development most often consists of three parts – conceptual design, design and functional specification. The more detailed they are, the higher the likelihood that the output will be a successful product.
Discuss with the outsourcer if you missed important elements in the assignment? Is the functionality comprehensive? Will the above work at all? Do not forget that the performer cannot read minds and usually works strictly according to the assignment: if something is missing in him, then this will not be in the final product either.
Design the entire system. If the team immediately has a whole picture of the problem and the interface, they will probably be able to find ways to optimize: reduce the number of systems or screens, reuse modules.
For example, you are planning to launch a basic version of an online store with a shopping cart and favorites, and in a few months add a recommendation system and a personal account. Describe the entire system at once, that the development team understood how it will develop. Otherwise, there is a high probability that a lot will have to be rewritten: the architecture of one part of the system may not be suitable at all for another.
How to interact with the team
It happens like this: the outsourcer promises that the project will be dealt with by two backend and two front-end. But then you can see from the commits that everything was developed by one person, and even then – not full time.
This arises from the peculiarities of the outsourcing business model. A studio or development agency sells a certain amount of work per month, and in an attempt to fill all the available slots, it may not calculate the load. Then the performers will have to be divided between projects.
How to work on complex projects
Often a project consists of several parts: design, front and back, testing, analytics.
But outsourcers usually have a narrow specialization in technology, so one performer will not be able to cope with all tasks at a consistently high level. Because of this, at best, he will hand over a task that he cannot cope with on his own, to a subcontract to another intelligent performer. At worst, he will give it to just anyone or do it himself somehow.
In this case, working with meta-commands helps. This is when you select several suitable performers for different parts of the task. For example, a design agency for prototyping, one studio for front-end development, another for back-end and testing.
It is important that all performers are in the same field, can communicate, and make decisions together. Do not separate them from each other. Designers need to understand the limitations of layout designers, backend developers need to understand the specifics of technologies at the front. The tighter they have contact, the more complete the result will be.
For this, a separate specialist will be useful, who will unite the work of all performers. For example, a product manager who understands a task well can answer any questions, make a product decision, and see a weak point.
To Summarize: How to use IT outsourcing
Outsource suitable projects: development of websites and applications, extinguishing fires or tasks for which there is not enough competence inside. You shouldn’t outsource research or regular simple tasks – it’s not profitable.
Choose not the cheapest or most expensive performer, but the one who asks a lot of questions and can explain in detail how he will solve the problem.
Don’t expect the outsourced team to read your mind. Prepare yourself or together with the contractor the conceptual design, design and functional specification.