The other day, a friend boasted to me that he turned a guy on a meeting who worked only in outstaffs. A friend works in a grocery company and is firmly convinced that there is no use for idiots from galleys. There work heartless mercenaries, professional job interviewers and lazy people. He says the product will be bent before they pick up a color theme in the IDE.
My friend is categorical and hates outstaffs even more than they deserve. He thinks outstaffs kill the very essence of the development. They take bad developers, train people to walk through the camp, sell more expensively in a corporation, where everything is settled, and the question of survival is not worth it at all, and they simply live quietly on drinking money and imitating work. In general, hates them as a hard worker-communist stockbrokers.
And I worked all my life in outstaffs, and, of course, I think differently. And I wanted to condemn a friend, but I remembered how he himself refused to take food developers at interviews.
Once we conducted a technical interview with the team, the candidate fumbled well, but we decided that he did not suit us only because he came from a grocery company. The guy half an hour rubbed about a product that he did at his last job. He did not tell how the product was made, but what the product does for people. We asked what we were doing, and not how and with what. Of course, we didn’t say to each other: “The product is important for him, but he shouldn’t give a shit”, but we were unanimous in our unwillingness to work with him, and we thought up many reasons for refusal.
I did not attach any importance to this then, but now I realized that the developers, who sell three times a year for foreign projects, and developers who have been working on one product for five years, are completely different professionals. Having thoroughly rummaged in myself, I realized that I did not just consider myself to be the first, but also subconsciously despise people who have been working on one project for more than two years.
Perhaps this is due to bad examples. One grocery company where I worked used C # 2.0. TWO ZERO. They argued simply: the project is large, if you transfer it to a new version, we will build up a bunch of bugs. And I accept this argument - it is a business argument, for which profit is more important technological effectiveness. I understand the business, but I can not understand the developers who are satisfied.
There are a thousand career reasons for using the latest technology. Conscious descent of a career down the toilet I can understand - ok, a man has found a job for the rest of his life, this is his choice. But damn it, you have a task, here's a trick from C # 4.0 that automates it. And they answer: “No, I do not need automation. Now I will start writing a ton of shit, and it will work. ” They tell my face that they do not believe in new technology, they do not believe that it will improve their product. And because it really does not improve. The pit will not get better from being dug out with an excavator instead of a shovel. But for me, these are developed, like taxi drivers who hate Yandex, and are enraged by talking about autopilot. And I am not ready to work with such developers.
Obviously, this is an extreme case. Most product teams use fairly new technologies, but the accents are very significant here. What is the most important thing for these developers? And what is most important for me? Very different things.
For them, I'm a hipster that cuts bread with slices. The man who will destroy the results of three years of work for a new technology. In their value system, I am a pest. My approach, my way of writing code for them is a waste of time. The fact that for me the state of the project in jira is more important than its state in reality is unthinkable for them.
In general, I am sure that the guys from the food companies can tell me much better why I and those like me are completely useless fools, and I, in principle, am not ready to argue with them. We do different things for different reasons.
It is important for them what to do and for what. To me - even the brains for smart toilet bowls, even the weapon of genocide - the main thing is how we implement it. We are united only by the fact that we all write code.
But recently I found a dream job that challenged everything I wrote about. I was called to do robots, to do them on my favorite stack, in a startup pace and with a very cool team. It was a job in the food team itself, and I was terribly happy.
Every day at this job, I felt like a cheater - I'm not the guy that they need. While I was three weeks sawing through the architecture of some insignificant module, they did all the real work. And then they also praised me, out of politeness, they say, excellent architecture, Phil. True, we don’t need a fuck, and you just eat the budget for unnecessary perfectionism, but thanks anyway, for our loggers vrapal so beautifully.
We quickly dispersed, and I really hope that I did not spend too much of their time and money, because after that I was very ashamed. But my mistake is not that I am the wrong developer - it is that I misunderstood what kind of developer I am. And most importantly, I am not ready to change. I am a developer for outstaffs, a galley rower.
When they hire me, they buy my ability to be interviewed, because my employer will sell me to corporations the next day. An important outstaff skill - I know very well how to be the person the team needs. Do they need a guy who sends dozens of emails with questions for everyone? Bazaar zero, you will be emails. Need an aggressive code reviewer? Hold my beer. Does the team need a careful mentor? Sit down more comfortably, I will tell you everything for the system of types now. Need to do features at a frantic pace? I am a machine that will code the code day and night, until the ad-graphic schedule of features comes to the right state. I can't do the same thing in a grocery company. My project personalities do not live very long, and after three months the brain requires change. I'm starting to fade and write tearful articles.
The irony is that they sell me to food companies. But coming to the new project from the outstaff, you are the master of the situation. If you don’t like it, you don’t even need to quit - just ask another. The people who hire us are too busy with the idea that we should be used to the full extent, they simply do not have time to train us in the subject area and philosophy of the project. They are much more organized than managers in a regular grocery office, because when working with outstaff, the connection between the infused loot and the number of closed tickets is very obvious.
Their organization leads to a very competent task description and a streamlined development process. They are laid on the turnover of personnel, so the quality of the code is of great importance to them. So you can work well, without delving into the business nature of the project. In my opinion, such conditions are the best for a professional developer.
The product in outstafe is fleeting, the approach is eternal. I sell and develop my approach. If I came to that dream job not as a staff member, but as people from the outstaff, I think everything would be better for us.
There are so many projects that I would like to work on. The lucky ones who are working on them now will say to themselves before death: “I did VSCode, it is of great importance for humanity,” and they will be right. I will say to myself: “I wrote excellent code on some projects, this is of great importance for me,” and I will be right. The main thing is to quickly and surely find out what makes you happy.