Programmers, like all people, have phobias. Someone is afraid of maniacs, someone is a duck, who watches a person, someone panics when the usual routine of the day is violated, someone starts to pry from a suddenly lost connection in a smartphone.
All this, if I may say so, is universal human phobias inherent in entire generations, countries and continents. But there are also purely professional phobias, which are unlikely to be understood by representatives of other professions.
Phobias are evil, both in life and in work. Because the object of fear is fictional, and the fear itself is real. And the consequences of fears are quite real.
')
In this article - the history of real programmers and their professional phobias, which prevented them from living and working for their own pleasure. People are real, fictitious names.
Konstantin
Kostya has problems with self-confidence. He became a programmer recently, was previously a sysadmin, although he had a higher engineering education.
Kostya was lucky or not - I don’t know, but he immediately became a disciple and subordinate to a fairly experienced and confident in his genius, and in general himself, to a programmer who took the bull by the horns on the very first day - “I will teach you life” .
He taught everything at once - algorithms, frameworks, queries, architecture, communication with users, and development approaches. All anything, but very authoritarian. Mentor believed that the only true solution to any problem was his own.
If Kostya had his own version, Kostya got what he deserved. He had no experience, no arrogance, no ability to defend his opinion, so he always found himself in the cold. The mentor did not just convince him - he trampled him into the ground. This was the main phobia of Constantine. Although, in that situation, with that boss, it was not even a phobia, but a completely normal, natural reaction to inadequate. Like a mad dog.
Then Kostya went to another job, and the phobia left with him.
The head was quite adequate here, although he didn’t immediately consider that something was wrong with Kostya. I thought, just some kind of feature - Kostya takes too much time to think about the optimal way to solve the problem.
There are no norms on this topic, but to think 8 hours about which of the three known methods is better to solve the problem, and then to make a decision in 1 hour - like a bust. And this is despite the fact that all three options for Kostya are known and understood, and the optimality of all three solutions is approximately equal.
It helped Kostya to "step down" a direct order to realize some specific option. But the boss didn’t like this approach - he didn’t want to be a nurse with the programmers.
Also, by experience, we managed to find out that there was no point in putting pressure on Kostya, like “let's decide something and do it” - then he fell into a stupor, even depression, and someone else had to solve his problem.
The boss, like colleagues, was close to the decision that Kostya was just a boring, depressive, stupid zadrot, and he had to be driven into his neck.
However, they decided to give it another chance. Or rather, give yourself a chance to understand Kostya. They created the right atmosphere in which he began to unfold, and finally told the story of his first mentor. Although, Kostya did not consider her something outstanding.
The boss after the story Kostya caught the phobia, and tried to change his behavior. He understood why Kostya chooses a solution for so long - by inertia, on a subconscious level, he is afraid that he will again be trampled into the ground if he chooses the “wrong” option.
And in fact, there is no choice whatsoever during these 8 hours - Kostya just postpones the inevitable for a maximum period in order to stay in the illusion of anxious security longer.
The measures taken by the boss were simple.
First of all, he spoke with Kostya for a long time and in detail. Explained that did not bother to tell the first mentor.
Led banal arithmetic - all three solutions can be done in three hours, instead of eight hours of doing nothing. Yes, only one option will remain alive, but Kostya will bleed the muscle - the experience and programming skills for him were not superfluous.
Secondly, for some time, periodically, reduced the importance of tasks - in most cases the fate of the world and the client does not depend on their solution.
Thirdly, I began daily to monitor Kostya - both personally and through the solved tasks in the tracker. Just to catch the moment when he will again be in the grip of a phobia.
As a result, in 1-2 months, the phobia was gone, and Kostya became a full-fledged member of the team. And after a while - the best in the team.
Gennady
Gennady was an intelligent programmer. Not the best in the world, but in certain niches that he intuitively chose for himself, he was rarely found equal to him.
Gene worked for a long time alone, but always kept in touch with the international community, because he understood how to write code, and how not to.
It so happened that Gena often distributed his products, mostly free, and open source. It was at that time when programmers-consumers were still looking inside what they downloaded, cloned, or forked.
And these "insiders of the insiders" created a Gennady phobia - they said that Gena wrote a cool code. From now on, writing shit code Gena had no moral right.
Any work, big and small, Gene had to do well - so that when distributed, any programmer could say: it is written sensibly and with taste.
These very words — assessments of other programmers — have become a drug for Genes. He almost did not write the code "for the client", or "to solve the client's problem" - he wrote the code to get likes from programmers. Almost all of his decisions were as abstract as possible, rejected, easily applicable in other solutions and with other clients.
The strangest thing is that Genes did it. He created dozens of solutions, each of which, on the one hand, completely (and even with an excess) met the needs of the customer, and on the other hand, it became a hit with free distribution among programmers.
But then Gena started having difficulties - he couldn’t write “just code” anymore. Every client, on every project and in every product, has tasks that can be solved simply, if not wisely. And it is difficult to solve, if you are wise, trying to make a beautiful, abstract solution that is suitable for everyone.
The problem was aggravated by the fact that Gena did not publish everything - there was not enough time and energy for this. Simply putting the code in open access is not enough to get likes, you also need to apply some effort to advance, regardless of the site. As a result, Genes formed a queue of decisions that were born for the whole world, and one client used them.
Gena was not an idiot, and he understood that something was wrong. He makes cool, beautiful, technological and elegant solutions "on the table." Such a situation oppressed him. On the one hand, I wanted to find the time and publish everything, but over time there were difficulties - Gena was a good and, therefore, sought-after programmer. On the other hand, he did not leave the feeling that he had a phobia, or mania, which makes one try too hard in solving the most common problems. Increasingly, he thought about giving up his attempts to make a masterpiece of each line of code, because understood that the coding efficiency, and consequently, the current income will be much higher. In the end, Gene did not know how to monetize likes of other programmers.
And the phobia continued to grow. Solving each problem, Gene thought: how to make it so that the code turned out to be rejected, and it could be pulled out and published, so that it could be used on other projects, both ours and others? You understand how much time devoured such an approach. He not only forced to think carefully about the architecture and communication, but also to modify the conditions of the problem.
If Gena was asked to verify the user input, then he made an abstract custom component that could perform any checks in any form. If Gena was asked to draw a diagram, like a sales funnel, he made a component for drawing almost any diagrams. If Gena was asked to make a widget with the number of tasks performed by the current user of the system, then he made a component for drawing any number of widgets that display any data of the system in which it was executed. If Gena was asked to make a web service that returns prices for a list of products, then he made a universal service that returns any system level data that is possible by access level, based on the settings transmitted in the body.
The problem was aggravated when changing jobs. The pool of decisions that Gene did not have time to publish remained at the previous work - he didn’t want to violate anyone’s rights. All attempts to tell their successors about the steepness of the decisions left behind failed; new programmers preferred to throw out Gennady’s universal solutions and create their own. Not cool, not elegant, not abstract, but their own. It is understandable - programmers were paid for creating their own code, and not for using someone else's. And to rise a little in the eyes of the authorities, watering the products of their predecessor by shit, is not at all a sin.
Gennady Phobia cured life itself. After several transitions between companies, the relationship between published and lost decisions for the community became threatening - 1 to 9. Gena realized that he had spent years of his life in vain. Not entirely in vain, of course - the experience remained, and when it faced the task of creating a universal component, Gennady was not equal. But such tasks were, at different jobs, from 10 to 50%.
The rest of the tasks he stopped solving abstractly. More precisely, he invented for himself another level of abstraction - personal experience. It is not necessary to create a solution, a tangible product that can be given to someone right now. The product is the personal experience of solving such a problem, which appeared in Genes, because it takes much less time to reproduce your code than to create it for the first time.
As a result, according to Gennady’s own estimation, its total efficiency increased 3-5 times. This figure included both abstract components and context-sensitive solutions.
But the most important thing is that Gennady lost the turn to publish universal solutions. Yes, he created them less. But published 100%. He simply stopped making decisions that he could not immediately publish.
As a result, the total number of universal solutions that came to publication and, therefore, collected likes for Gennady, increased by 2-3 times, because the loss funnel disappeared (1 to 9).
Arkady
Arkady - the product of the 20th century. Previous patients were also born in the past millennium, but Arkady managed to live his whole life in it, and met a new century as an adult, a mature person. He wrote the code, when there was no Internet, mobile phones and there were almost no computers at the enterprises. In those days, programmers and products were so small that the code could be read like magazines - wait for the next issue, savor, discuss (only offline, of course).
During the formation of Arkady, as a programmer, the tasks were different - more fundamental, vital and meaningful. In those days, companies did not order what was fashionable for themselves — only what was really needed. The level of proficiency in technology also required a completely different one — you had to know everything. Although, of course, the choice in those days was more scarce. But it was impossible to do without an assembler, then even the drivers had to write on their own, not to mention the data exchange interfaces.
All this reality left a serious imprint on Arkady - he completely ceased to be afraid of difficulties, since could create solutions of any level, or rather, could create complex solutions containing all levels, from low to high.
In the 21st century, Arkady faced an unpleasant tendency for himself - the further, the less he was understood by other programmers, who became increasingly narrow specialists and, if I may say so, consumers. When a new task arose, programmers rushed to look for ready-made components. Moreover, those for the development of which need as little time as possible. The better the API help and the simpler the component call creation, the better. And the most incomprehensible thing for Arkady is that programmers no longer watch the code at all. They simply assemble the product from ready-made solutions, with minimal effort make the assembly, and in production.
Programmers do not think about any complex, large, complex solutions. Only corporations with hundreds and thousands of programmers, each with their own specialization, now think of such products.
The reality of the modern world IT has created a rather large gap between Arkady and the other programmers - they have ceased to understand each other. What, how and why does Arkasha, no one understood for a long time. His decisions were large-scale, technically and methodically complex, with a high level of isolation of components and a deep philosophical meaning.
For a long time, there were no people who understood its solutions entirely, even from the user interface, not to mention the code that only a few looked at, and then only when errors occurred.
So what is this, you ask? No one has been looking at someone else’s code for a long time until there is an error or a task to refine or refactor it.
Yes, but no one explained this to Arkady. Or explained, but he did not understand. Or understood, but did not accept. Or accepted, but forgot. It does not matter.
It is important that Arkady still sincerely believes that the whole world of programmers is arranged in the same way as he himself, that everyone looks at his code, understands his decisions, and can give practical advice on architecture and interface. And Arkady himself behaves just this way - he delves into the essence of everything with which he works.
The assurance that his code is being read makes Arkady work accordingly, spending a lot of time on meaningless optimization.
The confidence that they want and will understand the decisions of his decisions, constantly drives Arkasha into depression - the world constantly shows that no one wants to understand anything. Sometimes, working with people on a project, Arkady thinks a year that everyone sorted out everything, then to be suddenly convinced - again everything is up to the top, if only for faster, if only not to fly.
Experiences due to such a device of the world can knock Arkady out of the channel of normal work for several days. It so happens that in these few days he does not give any result whatsoever, from which he begins to suffer even more.
Every time, making sure that the world does not meet his expectations, Arkady is surprised and indignant. But from the side it can be seen that there is no surprise in the soul, or almost none. Wonder of a wounded, not real.
Arkady eventually gets used to the idea that the people around him do not meet his expectations, and he himself is not like them. And he tries to preserve this dissimilarity, that's why he continues to be surprised at pictures, thoroughly understand other people's decisions (even if he will not use them), and demand from others that they meet his criteria and approaches. Speaking more simply, Arkady is trying to maintain his phobia, although he has long understood that there is no ground under it for a long time. Phobias - they are such, with self-defense.
Summary
I wrote about three phobias that I watched live, but you understand that there are many more of them - both people and phobias.
Phobias are difficult and dangerous because they are not visible. A person can look quite decent, work well and efficiently, smile and be a normal team member, but at the same time have a phobia and suffer from it.
If you watch others and, of course, yourself, you may notice signs of phobias. The main feature is importance. Tasks, actions, attributes, ritual, approach, reaction, at least something. When there is a phobia, there is importance.
You can verify that you were not mistaken experimentally, by reconnaissance by force - remove, turn off what is superfluously important for a person, what he is obsessed with, what action causes a simple or hangup, braking process.
If the situation has become better - fine, you are not mistaken. If you did not, return it as it was, and watch again.
Observation and trust are the best recipes against phobias, but they work mainly with managers. Accordingly, a fairly small number of people. And this is just a possibility.
Not only which manager will imperceptibly dig, gently find out, and discreetly observe in order to determine the presence of a phobia. It is much easier to say "yes, you went to hell with your snot, you guys or who." Therefore, phobias will remain, and you will have to carry them with you. And hide, so that again in the ass did not send.
But for the right manager, working with phobias is a real treasure, because it opens up almost direct access to a person’s motivations. Especially if a manager is able to help a person overcome a phobia - this is never forgotten, like healing from some terrible disease.