Curves of the development of the programmer and a little about the effect of Dunning - Kruger

image

There are two main ways of becoming a top management in IT companies:

  1. Managerial - when the project manager begins to manage other managers.
  2. Tehnarsky - when a developer begins to manage other developers and the number of personnel managed by him increases.

The first way is more natural, since it implies the development of the basic qualities of a manager as he grows up. In fact, the manager remains the manager, only becomes a higher-level specialist.

The second path is longer and does not guarantee success, since it is contrary to the essence of the introvert programmer. However, in this way I would like to focus attention and share experience and knowledge.

Attention, spoiler.

  1. All names are fictional.
  2. The narrative relates more to customized development.
  3. Skills, and especially soft skills, are difficult to assess formally, all the graphs in this article are conditional and reflect my personal opinion.

Beginning of the programmer's path


So, we are at the very beginning of the programmer's path.

Meet Nicholas (name changed). Nikolay is a young programmer, he studies well at the university and has already tried writing simple websites. He settled in the studio for the position of a june-front-end, he was put on a project that has already been written for two years using the modern framework Angular 1.5. The boy Kohl did not work with him, but he saw a familiar dollar sign, and he had already managed to write a couple of plug-ins for jQuery. This fact encouraged Nicholas, but then the older comrades told him that it was not jQuery at all, and, in general, we need to write a directive here, but here we need to make two filters. Nikolay is depressed, but he firmly intends to join this project.

And now a year has passed, Nikolai masterfully writes directives and not a day goes by without a new module. Kohl on horseback, he is optimistic about the fact that half a year ago, a young joon was placed on a project to him, and he doesn’t even know what a directive is. Puppy! Nikolai became friends with his older comrades, and only a 30-year-old old man in the corner is always dissatisfied with something.

image
Actually, on the graphs we see the technical skills for the project and all the skills of Nicholas that he has. Since this is his first project, in fact this is all that Nikolai knows. After some time, he goes to the authorities and asks for two bags of money - after all, he skillfully creates directives on the project, and in general, he found that he leaves more comments in MR than the 30-year-old man. Obviously, he is better than his team leader. It receives a quite reasonable refusal and begins to look for a new job, perhaps thinking about switching to another project or another team. In any case, he is faced with a situation where the newly acquired knowledge is no longer relevant and he needs to learn further.

image
This - the first crisis of Nicholas "The effect of the first project."

At the new place, Nikolay is given a project on Angulyar 5, well, he masterfully writes directives! But there he sees some game! What other typeScript? What are RxJs and streams? The older comrades laugh at him, and the 30-year-old old man throws unkind glances. I saw a huge number of such stars and a lot of stargazing, when the developer realized that it turns out that he still does not know anything! And the sooner this happens, the better. This is called the Dunning-Kruger Effect — a metacognitive distortion, which is that people with a low level of qualification make erroneous conclusions, make unsuccessful decisions and are unable to realize their mistakes due to the low level of their qualifications.

image June, who changed 3-4 projects per year, is much more preferable for an employer than June, who spent a year alone on one project, because he:


To colleagues who have appeared at this stage, I would like to wish the following:


Junior → Middle → Senior


Well, it took another couple of years and what do we see?

image Nikolay has already mastered several frameworks and realized that frameworks are only a tool for solving specific problems. He accepted the fact that he does not know everything, but at the same time he tries to develop all the time. At some point, he comes up to a young 33-year-old timlid and says: listen, Petya (the name is changed), several June have come to us, they know nothing and are slowly doing tasks on the project. Let me give them a few lectures or master classes so that they quickly join our work. And at this very moment Nikolai goes to the next level.

Now there is a division on Junior, Middle, Senior. Middle thinks that in order to become a Signor, he needs to master a new programming language and improve the hardware. This is not entirely true. At the dawn of domestic development, there was a position similar to Signor, it was called Lead Programmer - such a specialist not only knows a lot, but also leads projects or a team. Without appropriate software skills, Signor will not become.

Nikolay learned to find approaches to all team members, he is constantly developing and developing the rest. He has already seen the “star-dwellers of the first project”, but he is much more comfortable working with the same professionals as himself. After all, they understand that the success of the project is the success of everyone, and the puncture of one team member ultimately affects all its participants.

At this stage, there are two possible ways: to be a simple performer, not to strain and solve the tasks; the second is to develop in the direction of the lead programmer, to take responsibility and initiative.

At this stage of the programmer’s development, the team and management value its qualities:


Where to develop?


Moreover, the skills from the last item must be pumped, if he wants to develop along the curve to the head. If he is not interested, then you can concentrate on the skills of a technical specialist.

Technology crisis


At some point, Nikolai is horrified to realize that no one else is writing to JS, and most of his knowledge is not needed by anyone. That's how the technology crisis comes. I found such a crisis with desktop applications. A little later, just the maker-ups were no one needs - everywhere they began to require front-endenders. Then PHP was not sharply fashionable, and JS developers were needed on the market.

image
There are three ways out:

  1. Relearn under the new stack
  2. Get better in the old and grab recent orders. The same Delphi is still in demand in narrow circles with a lot of legacy code
  3. Career management with appropriate skills

Strong specialists will always be needed, but, with a decrease in demand for a certain technology, competition between candidates increases. Custom development suffers to this extent more than the product. Having mastered a large grocery company, the developer may not be afraid of the age or obsolescence of his technology stack - he will be in demand while the product lives. According to my statistics, the average age of developers in food companies is higher than in studios.

TeamLead. Age crisis


Well, Nikolai changed the stack of technologies, and everything seems to be fine, but we see that new skills are being given more and more slowly, and the younger generation is grasping faster and faster.

image
Here comes the last crisis - the crisis of age.

Nikolay became one of those timblids whom he looked at a few years ago, as if he were old men, always grumbling and dissatisfied, but now he began to write less.
You might think that if you write less code, then you develop more slowly, and the guys who write it more, respectively, and develop faster, and they will soon catch up with you. I have met such a phobia with young specialists.

What could be the options here:


Let's go to the curves


Satisfaction. It can not always be on top, quality projects do not always come across, and the ideal team is difficult to pick up and educate.

image

I am sure that, despite the drop in satisfaction, one must always remain human. I say that if the deadlines are on the project and everyone is running around in the soap, then an excess of nervousness will not help the cause. The team will be much more comfortable working with people who will not fail at critical moments.

Technical skills are relatively quickly acquired and forgotten and become obsolete even faster when viewed from the side.

image
It turns out that the programmer has his peak of development, and then begins to "grow old", and at some point it is time for him to retire?

Yes and no. In fact, instead of one graphic you can draw 3 (again, IMHO, as well as values).

image

But let's add another chart
value = (0,5*tech + 1*hard + 1,5*soft)/3

image
, , 10 .
, .

, ? « , — » , . , , , , . , , .

HR- . , . , . : , , , ( , ).

2


, :

Junior → Middle → Senior → TeamLead? → Project manager? → Head Of * → Chief * Officer

?
, : . , : , .

image

TechLead vs TeamLead



       ,     (,   ),    .

TeamLead ( 1   ) — , .   :
  1.        
  2.   ,  
  3.   (    )
  4.       ,   .
  5.   TechLead  PM

TechLead ( 2   ) — .     , TeamLead,   , ..     2 .
 — TechLead,   TeamLead:
  1.   ,    , ,  
  2.  — ,  ,   —  
  3.   ,    
  4. PM    
  5.    TeamLead,  

,  ,  , (  ), .

 — ,        ,    , ,   , ,       ,     - .


, , , , , . , .

( , , ) , , .

, :


, , , , - « ». : , , .

/ , , : , ..

, — . , . , , , .

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


All Articles