📜 ⬆️ ⬇️

Is there a difference - to work in an outsourcing or in a grocery company? Opinions from Yandex in Nizhny Novgorod

Yandex has offices in different cities and even countries, and this gives us many different advantages. In addition to the fact that everyone can work from the place that he likes more, so it’s added that the developers in some cities have a unique experience, sometimes rather unusual.

For example, due to historical features, almost all the developers of our Nizhny Novgorod office have worked at least for some time in companies that have been engaged in outsourcing development. I decided to take advantage of this and ask them how development for an external customer differs from working on their products in companies like Yandex.

I’ll say right away that in Nizhniy we are now mainly working on our geo-information services. Most of the code the guys write in Java and C ++. By the way, on August 20, the C ++ Party will be held at the Yandex office in Nizhny Novgorod, which you can attend if you have time to register .
')


I am sure that many people on Habré have something to say on the topic of our survey. So write what you yourself think in the comments, even if you think that the question itself is contrived. As always, under the cut the full text version of the answers.

Alexey Volohovich
Programs - 25 years. In Yandex - 8 months.

Lyosha is the head of the Nizhny Novgorod development office of Yandex. He graduated from the Nizhny Novgorod Technical University named after R. E. Alekseev. Now he teaches discrete mathematics there. Candidate of Technical Sciences. Prior to Yandex, he was engaged in the development and program management of mobile devices.



Product and outsourcing are two main areas that almost completely divide the software market. I can say that there is a significant difference in their work. The fact is that by working on a product, by doing it in a company yourself, you get more responsibility, because depending on what solutions you put into this product, it will come to the market. That is, you are fully responsible for how you will live on.

In outsourcing there is no such thing. They give you some order - you work. Yes, seriously, yes, effectively, but within the framework of this order, and what will happen next with it, by and large you don’t care much. Well, except maybe that the customer was not offended and came again for such an order. You are not so deeply worried about what you are doing. If you look at the fact that Western companies are outsourcing to Russia, in general these are not high-tech things. No serious large Western company will give serious tasks to outsourcing. Otherwise, it will be tied to him and will depend only on him. Therefore, the level and class of tasks that have to be solved in outsourcing are lower than those that we have to solve in Yandex as in a grocery company.

In my opinion, the atmosphere here is more creative. The guys are looking for ways to solve this particular problem in an optimal way, applying all that they have in their heads. But, naturally, people are different. Someone likes to be creative, to work on tasks that may not have a solution at the moment. And someone likes stability. Outsourcing will give such stability to a person easily. For example, a bugfix contract for which you must issue five bugs a week is everything. You sit, do, do, do. There are people who like it - to each his own.

But there is also a reverse side of the advantages that exist in the work in a grocery company. Sometimes you get close to some Mylstown, which you have designated, and at this moment you realize that something else needs to be done. Sometimes you have to push the scope of the project. Minus it or not minus, I can not say, but this is different from outsourcing, where you have a rigid framework, and if you don’t get into them, they will give you a hat, because the customer is waiting for you at this particular time. But there is a certainty.


Oleg Klimin
Programs - 23 years. In Yandex - a year.

He graduated from the Nizhny Novgorod State University. N.I. Lobachevsky. At his previous work, Oleg was involved in the creation and support of software for cellular communication nodes. Yandex is developing mobile geo applications.



One of the biggest differences that I have seen is the average examination of employees. In outsourcing the main product for which they receive money, these are people who are “sold” to other companies. As a result, recruited as many people as possible. Among him there are people with high expertise, but their percentage is much lower. In Yandex and in the latest company developing its own product, where I worked, they recruited just such people. In such a team it works quite differently.

In outsourcing and grocery companies differently built the process of developing software. At first they tried to estimate everything in advance, to foresee, to calculate. For example, two months could go analysis of some features, which in the end four months wrote and then released. Where development is own, the processes are more iterative. There are some small things that are constantly being rewritten, sometimes redone. There is no such thing that everyone appreciated it for the year ahead and then two more years are engaged in this

Besides, much less bureaucracy. The people describe what they need on Wiki, something in the tickets, which they themselves write. There are no procedures for the long approval of some kind of nonsense. If you need some thing, it is taken, washed down and embedded in the product.

There is a difference in the responsibility of the people who do this. As people in their own development product will write, so he goes. In outsourcing, the people who created the product may not see it soon, or not see it at all, and not hear the feedback from real people on it. The chain from the person who is developing the product is longer here.


Alexey Chernigin
Programs - 13 years. In Yandex - a year.

He graduated from UNN them. N.I. Lobachevsky. He worked in a telecommunications company, where he was engaged in the development and support of software for cellular communication centers. Then he developed video surveillance systems and computer vision algorithms for retail networks. In Yandex, he is developing mobile geo applications.



Before Yandex, I worked at an outsourcing company and made a very clear difference for myself. A product company can afford to develop products that will improve the quality of life of its users. And since the timing, objectives and how the product will look, determine the people who work in it, they can bring everything to perfection.

In outsourcing, the main mission is customer satisfaction. He puts forward clear requirements for how the product should look, and the outsourcer performs everything clearly in a timely manner, according to the specification - not a step to the left or right. He earns money at the expense of his customers, while many Yandex applications are free for people. Not always money is a fundamental factor.

In a grocery company, there is a much larger and wider field for creativity, because the company itself determines what the product looks like, and engineers can participate in determining these requirements and how everything will work. And programming is primarily a creative process.

In addition, in outsourcing companies everything is based on metrics. There is simply a huge number of different metrics of productivity: the number of lines of code per hour, average productivity, the number of errors per 100 lines of code. The most interesting thing is that when a company does not fulfill the stated requirements for metrics, different tricks are invented to match them. And they are not always objective. Often this turns into the fact that managers in the pursuit of fulfilled requirements force people to work on metrics, which of course has a very bad effect on both the quality of the code and the employees. The grocery company has a main metric - user loyalty. If your product is popular, if the number of people is growing, then everything is good with you. Here you will not be customized, because today in the morning you have to do what we promised to the customer. Naturally, there are some emergency situations when you need to quickly do something, but in general there is no such hype. The main thing to make a quality product.


Pavel Sukhov
Programs - 9 years. In Yandex - 5 months.

He studied at the Nizhny Novgorod branch of the HSE, where he has been teaching for two years. Before Yandex, he worked in a research laboratory. In Yandex, it develops geo-applications.

image

When you do not work for yourself, you are interested in achieving the goal, not product development. When you work for yourself, you are interested in how the product works. The ultimate goal to bring TK to the end is no longer relevant. You can spit on him, spend more time, but make the product a little better. All the differences between the outsourcing company and the product in this ideology. And the processes depend not on the type of company, but on the company itself.


Andrey Magin
Programs - 2 years. In Yandex - 6 months.

He also graduated from UNN, but when asked where he studied, he answered: “In battle”. He also said that before Yandex he was engaged in “all sorts of nastiness”, and here he is working on supporting a system for storing geodata.



Firstly, in an outsourcing company there is much more bureaucracy associated with approving what you wrote. First, an internal code review passes, then an external one, then something else. This is pretty annoying. Secondly, customers are often people with another metality, it can be difficult to communicate with them. Well, the very feeling that you are working not on the code written by your comrades, but on the code written by some incomprehensible Hindus, is somehow depressing. For me personally, there are no advantages in working in outsourcing, but I know programmers who don’t like other people very much, so for them the advantage is that they don’t personally communicate with the customer and the people who wrote everything. This leads to minimizing the number of conflicts.


Mikhail Lopatkin
Programs - 17 years. In Yandex - 1.5 years
Writes a mobile Yandex. Browser for Android. Prior to Yandex, he worked in various outsourcing companies. He graduated from the Nizhny Novgorod State Technical University and is now coaching the university's team in Olympiad programming.



Perhaps it was the specifics of our customers, but when you work in outsourcing, your opinion does not really interest anyone. You are such a robot, which give bugs, but he fixes them. And when you work on a specific product, you can somehow influence what you end up with. Not only in terms of fixing bugs, but also on how the final product will look. Come up with some more interesting solutions even in terms of product design, for example.

In outsourcing, you need to follow the procedures that the customer requires of you. If he wants to work on CMMI Level 5 and write tons of documentation before changing one line, you will do it. If your customer has no process, then you will not have any process. This is also bad, in fact.

When you work in a grocery company or in the same outsourcing, but one is on a project, you can somehow influence the process and add as much formalism as the team is comfortable with - so that it does not interfere, but helps.

But there are advantages to outsourcing. For example, quite often you can travel around the world, live a year in some other country. But some who do not like to go on business trips, believe that this is a minus.


Roman Kashitsyn
Programs - 11 years. In Yandex - a year.

Like many of our colleagues in Nizhny Novgorod, he graduated from UNN them. N.I. Lobachevsky. Prior to Yandex, he developed insurance, information security, and media server management systems. He worked on software in telecommunications, automated workstations, portals. We are involved in the modernization of the back office directory of organizations.



In my view, outsourcing is quantity, and a grocery company is quality. When an outsourcing company finishes a project, it gains nothing apart from profit and little experience. The next project may not be related to the previous one at all, and the code refers to a completely different company. A grocery company develops things for itself, and everything that it produces remains inside and brings quality to everything that surrounds this product. For example, if a new service appears in Yandex, all existing ones will benefit from it. If, for example, Maps are published quickly, the Search wins, because there will be more relevant data in it. If the Search improves, the Maps win, because it is faster and better located.

I worked a lot in outsourcing companies and I can say that the code there is just awful. When I came to Yandex, it was a pleasant surprise for me that the quality of the code here is very high. Over time, I understood why such a hard code review is needed. We make services not in order to quickly give and receive money, but in order to please us and those around us. And this is a very big incentive to work even better and faster, because there is a feeling that you are helping people. Especially if you use the services you produce yourself.

Cons, too. As a rule, projects surrender more slowly, because you have to pay for quality.

Source: https://habr.com/ru/post/233767/


All Articles