In today's days, in the days of a crisis that has reappeared, it is important to save the business, not to lose it. At least the majority of companies set as their goal, if not expand, then at least to keep the business in the same state as a year ago. One of the support factors is optimization of human and financial resources. Everyone wants better frames for less money. If with traditional production, where work is conducted in workshops and factories, workers must directly come to the workplace and work, then in the new (relatively traditional) areas of the economy related to the Internet, this rule is not necessary. The global worldwide network has allowed a huge number of people from IT to unite and create something new.
Remember how many open source software we have, and indeed these people who develop it never sat together in an office, and not least, they never saw each other (in most cases). Why do modern businessmen of new spheres of production neglect this advantage? Why not use external frames that are located remotely from the main office? But on the other hand, many understood the full benefits of this provision and, unfortunately, use such a minority of them.
So, what prevents to start working with outsourcing personnel in software development (here I include such positions as developers, testers, analysts, technical writers and perhaps some others):
1) fear of the new;
2) the fear that external resources will overwhelm the project;
3) thoughts about the impossibility of normal communication within the team;
4) the inability to control the workflow.
')
All these are quite weighty arguments for those who have had little thought about this issue seriously. Let's look at each of the items separately.
Fear of new
This is a psychological aspect, and it is natural, especially for people who have a core business not from IT, but IT is a supporting structure. It is probably difficult to explain why there is a fear, most likely it is more combined with 4 points. These people are used to holding everything in their hands. Perhaps this is the right approach, but not optimal. Keeping everything up to date, controlling the process is a waste of time. It is necessary to control the result, not the process. Since I am not a psychologist, I think to leave this point.
External resources overwhelm the project
Again, going back to the previous paragraph, I repeat - it is necessary to control the result, at each stage. Especially if you are working with this company for the first time. And then there will be no surprises in half a year of work: “where is the project?” Will not arise. However, this does not mean that you need to ask the result every day, these requests will only take time from the customer and the contractor, and this is the time that could be spent on really necessary things. However, if it is clear that the deadlines are being broken, it is worth making some gestures in order to influence the process or abandon this resource provider. By the way, the disruption of the project is natural for the teams of the customer himself; within the same company, deadlines may occur inside. Therefore, it is wrong to divide teams into their own, and strangers on this basis “suddenly break deadlines”.
Team communication
If a team is divided into several parts, this undoubtedly complicates communication, but if each team does its part, as independent as possible from the other, this is not a problem. Inside each team, communications will be seamless, and communications between teams will be at the level of architects and team leads. With regard to communication between analysts and developers, they say, without verbal communication anywhere - here will help Skype and competent documentation. Here I would like to dwell on the documentation. The main thing in the project is a document (without a piece of paper - you are a bug). Indeed, the more the analyst writes, the fewer questions from the side of development. On the other hand, if the analyst explains something to the developer and then forgets to include it in the TK, this threatens to misunderstand in the future and additional time costs.
Imagine the situation, the analyst wrote a part of some TK (CTZ), according to this CTZ, the developer starts work and he has several questions. If the team is divided and the developers are sitting in another office / city / country, then most likely he will write a letter and get a documented answer in the form of a corrected CTZ or, in extreme cases, in a response letter. In this case, the requirements supplemented by the analyst will be preserved and they can be repeated, forwarded, transferred. If (and this concerns more traditional teams) an analyst in the same office with the developer, then there is a danger of an oral explanation, which can lead to dire consequences:
- the developer will forget part of the oral requirements and will have to be repeated;
- The tester most likely has the same questions and this time the analyst can answer a little differently, well, if after that he writes down these requirements, and if not?
- technical writer again refer to this CTZ and there will again be a misunderstanding, if CTZ has not been supplemented
- and what will be if in implementation on this ChTZ there were errors? That's right, again questions, extra communication. And if another developer has already arrived?
But then I got carried away. This is me to the fact that the well-described CTZ eliminates the mass of unnecessary communication, so this stage is extremely important. Well, all other communications are easily solved with the help of e-mail and Skype. Of course, this type of work, which I described, comes down to the fact that, nevertheless, the developers are sitting all together, but simply, remotely.
And I will add on this item a small calculation. Assume there is still the need to communicate with the customer directly from the development side. And not the whole team will communicate, but only one person, often this is a team leader. So a week-long business trip of one person to Moscow is about 35-40 thousand rubles. It's funny! Even if once a month to send a person on a business trip, it is cheaper than paying the difference to this specialist in Moscow and in the region. What can we say about the whole team?
Inability to control the process
We turn to the last point: the inability to control the process. I have already mentioned it. Indeed, is there a need to control the process and go into the development? We know that the majority of programmers are closed and do not like too much attention. And when they sit apart from the always chatting manager and quietly “code in the corner,” this creates ideal conditions for focusing and working. Do programmers need the attention of management? Not. Does management need to intervene in development? Not. From here, only one conclusion is visible - control of the process by the business owner is not necessary, control is necessary for the result. A team lead and coordinate the work will be tmlid, separation by role in its purest form.
Well, fears are in vain? Absolutely. This is a new sphere of the economy, a huge reservoir, the fastest growing sector of the economy. And we must keep abreast of the times and understand the new opportunities that are opening up in connection with this.
Let's finally move on to the advantage of remote work.
Advantages if working with outsourcing companies:
- no need to control the process;
- it is cheaper to hire once and forget how to keep the staff;
- no need cares about workplaces, equipment, salaries and other office details, as well as employee motivation;
- it is easy to verify the result by comparing the solution provided with the initial requirements (it’s certainly controversial here, let’s say if the very same preparation of TK is outsourced).
Advantages if working with affiliates:
- no need to control the process;
- it is cheaper to keep a branch of developers in the region than in the capitals (Moscow time, St. Petersburg) both in salary, in rent, and in other indicators;
- if difficulties arise with the branch, it can be closed;
- staff in the regions are not overheated, so for less money you can get excellent specialists of a level not lower than the capital, and often higher, while much cheaper.
All this leads to the fact that in the modern world of IT it is necessary to look for new methods of work, new technologies. This world is developing rapidly, the main thing is not to fall behind. And while you are thinking of opening a branch in the region or not, your competitors are already using and earning on outsourcing.
Why am I writing all this? I am a young professional who does not want to go to Moscow. I want to work in my homeland and receive decent financial compensation for my work. Now a huge number of IT companies in Moscow and something is not enough branches of these companies in the regions. I judge by my million-plus city. There are branches, but they are few. We have a huge number of personnel (programmers or so) is released and the same huge amount goes to the capital or abroad. This is because there the prospects are higher. All you need to save frames here is to open branches. I sincerely hope to be heard, and I hope that competition in our region will allow IT to develop in our city and in the republic as a whole. And this in turn will lead to an increase in the number of cool programmers in the city and a new interest on the part of employers.
PS Maybe I missed something, I will be glad to exchange opinions in the comments.