How to become a technical director, what to do in emergency situations, how to achieve a salary increase and career growth, as well as how Am.ru is designed - we talk about this in the fourteenth issue of the talk show for programmers "Oh, My Code".
The host of the program is the technical director of media projects Pavel Shcherbinin, the guest is Alexander Melnichuk, the technical director of Am.ru.
Tell me something about yourself.I finished ITMO. He tried to study in graduate school, engaged in small-angle X-ray diffraction. Then the era of the Internet began, everyone started making portals. In 2009, my friend called and said that his friend, Oleg, wants to start his project and assemble a team in St. Petersburg. We met at the subway. Since then I work in am.ru. During the first meeting, Oleg immediately spoiled two people: me, then the development manager, and Sergey, the lead developer. That is, we wrote the first lines of code.
“Will you go to our technical director?” - “And how many people will we have in submission?” - “So far, only you.”Nobody talked about the technical director then. “Technical Director” is a very strange position. On the one hand, this is a kind of management, on the other - a technical specialist. There are different variations. For example, when the technical director writes a lot of code. In fact, this is a lead developer. Then he usually has serious dissatisfaction with various managerial work. In my case, the opposite is true. I manage teams 100% of my time. I stopped writing code from about 2009, because there is simply no time for this. I can write it, but then I have to send me to the enemy team.
But still you are the technical director. You should be aware of the development of technologies, know how the frontend, backend develops.I constantly read something, I look, I communicate with developers. I understand what and how it is done. And then, before that, for 8 years I wrote something myself. Of course, it was not rocket science. But I can read the code now.
How to become a technical director?First of all, you need to become one. This is not to say that the technical director is something super cool, best of all else. All professions are good. You can be a happy developer and enjoy it. Director must want to be. Raking managerial tasks is a certain skill. You need to understand that in most cases you will not write code. Sometimes in vacancies they indicate that they need a technical director with knowledge of symfony, and even remotely. In general, some kind of hell. These people are deceiving themselves. And sometimes the term "technical director" is understood as an architect, this is also quite common.
How many people are in your team now, and what is its structure?43 people. The structure is flat, that is, all these people are administratively subordinate to me. We have no project managers and timlids. But a sufficiently developed logical structure of 5 separate teams, both narrow-profile and wide-profile, which deal in several directions at once. All teams are completely independent, working on their project sites. They have self-government, and this is very good.
Do tasks go through you or directly into a team?Of course, directly to the team. If they passed through me, then I probably would have died a long time ago, because the flow of tasks is enormous. My function is to reduce communications to the necessary minimum. If a person needs something, he must know where to get this knowledge, with whom to speak directly.
Surely many of our readers will ask: why do you need? Tasks go directly to the team, the teams are cool, self-organized. It seems that the technical director does not even exist.A friend of mine once said that the director’s task is to build a teamwork so that he can be safely dismissed. We are striving for this, but have not yet achieved it.
Interesting desire to get you fired.Dreams Dreams…
Do not you think that many aspire to positions of leaders and directors with the aim of working less?Yesterday I left work about 22 hours. As a technical director, I often envy the developers. It's so beautiful: you came, you have a task that you like, you chose it yourself, did it, saw the effect. Everything is super. Tired - drank coffee, played, rested. If you have any difficulties - talked with colleagues and did the task. You can wear headphones, listen to your favorite music and do your work. If you feel bad, you can work at home, you can think of something at night.
The technical director is completely wrong. My usual day begins with a sheet of A4 paper, where I write down what I want to do today. Recorded. Then this, this, then take the second sheet, then the third. During the day, cross out the task. There is a huge number of them, they are small, they are constantly changing. When you do one thing, the following arises, and the next.
Sometimes it turns out that in the evening you have to finish something, and an hour before this new introductory ones appear. And you need to replay everything. This is a world that is constantly changing. This is the main problem. I don’t have one big task, I have a huge number of small ones for which you need to constantly make decisions. It's complicated.
Can you tell us about the most frequently repeated tasks or, for example, something interesting from yesterday? What is your main task?The main task is for everything to work, for us to be released without delay, clearly on schedule, to fulfill those tasks that are set by the product management, so that projects are submitted on time. How I will do it - my difficulties. Difficulties are very different. For example, people arrived at the data center to unload servers, but the loader is not allowed, because he has a suspicious passport. Or security officers ask for some information, and you need to find someone who will give this information. Or the product changes, respectively, new tasks and deadlines appear, we must somehow integrate these tasks into the plan and solve them.
How do you have Agile entered into the development system?We live entirely in Agile. We have teams working on Scrum, and there are teams working on Kanban. I do not even know how we would have managed without it. A long time ago, when I did not know this term, we tried to build a similar system, but we did not succeed because it was an initiative without a textbook, for our instincts. For example, there has long been an "allergy" to project managers and people who have to hand out tasks and paint over squares. I never had project managers.
How does the team work?We have a common CPO (Chief product owner. - Approx. Ed.) Who says how the product will develop. Then there are a number of APO (Area product owner. - Approx. Ed.), Which are responsible for their directions. In fact, the organizational structure is a bit more complicated, but I describe the logic. Each direction has a separate team. Teams take tasks from APO, and sometimes set themselves. The tasks are brought into the general backlog, then the backlog of the sprint is formed and then they are performed.
At the beginning of each sprint, planning is done. Separately in all teams. The question arises: “What about coordinating common goals?” There is overall planning at the level of product owners. Here come the tasks, previously coordinated between directions. In addition, we need technical coordination, which is carried out in several ways.
If an employee needs coordination with another team, then he comes there to the stand-up and says that they have such a problem, asking for help. We call such employees "scouts."
In addition, we hold a general technical meeting Master Sync, which brings together developers and representatives of all teams, without product owners. On it we solve only technical problems, discuss how to solve them correctly, how to synchronize common ones. tasks between teams. Sometimes on Master Sync, tasks are formulated that are performed by employees of two or more teams or are put into the common backlog for further joint decision.
PBR (Product backlog refinement. - Appro. Ed.) Is carried out for drawing up the plan. Developers evaluate tasks and assist product owners in drawing up plans and prioritizing them. PBR can take place both in one team or between several teams. Sometimes planning is done with an external team if the product involves integration.
Ends with a weekly product demonstration. Anyone who wants can come. We are online broadcast. Owners of a product look, looks CPO, sometimes marketing, sales managers, support. Teams talk about implemented features, APIs, documentation, tests, and everything that was done. Those who are engaged in architecture or administration can talk about their decisions and plans. That is, a demo is a kind of common milestone showing the results of the work of the whole team in a week or two, depending on the duration of the team’s cycle.
Then each team holds its own retrospective, where they discuss organizational issues. If the team cannot solve something within itself, then questions are put on the inter command retro. We conduct it once every two weeks and decide what concerns all the teams, the whole office and the whole product. According to the results of retro, a responsible person is assigned to each task, who can solve it or follow its decision if it depends on external services. To the next retro or Master Sync responsible tell what they did or did not do, for what reasons, what were the advantages and disadvantages.
Tell me about some unexpected, abnormal situation.There are abnormal situations, but less and less. For example, once the entire JS on the desktop stopped working on our site. The most important thing was to find the cause of the problem and solve it. If we talk in scientific terms, we resorted to the Andon-methodology: we stopped all the processes, the whole team started looking for the cause. Found fast enough. It took more time to solve the problem.
What was the reason?A little more pour oil on the fire. In the frontend, we did not update anything. And why everything broke, no one understood. But it broke right away everywhere. It turned out that we were releasing a small service tool that pulled up a third-party JS library, which had an error. This library was immediately replaced in all the code. As a result, JS fell down. Nobody expected that a completely extraneous tool in the admin of the control system could break everything.
You mentioned the Andon Methodology. What it is?Everyone has some specialization. I am a technical director, there are front-end developers, mobile developers, system administrators, DevOps, etc. It would seem that if I am a C ++ programmer, I will write in C ++. But if the front end broke JS? “
What is JS? Something incomprehensible from the humanities, I will not do it. - And I generally system administrator or DevOps. I have nothing to do with it, pull your own JS ”.
Andon was designed to ensure that such situations do not arise. We broke down the project, it is our common. We all start looking for where it broke. In the case described by me, the reason was found by an ordinary backend developer who just sat down and started looking, not telling that he doesn’t write to JS, that he doesn’t know something. That is, Andon is that everyone gives up and begins to solve the problem as much as they can.
You said that the problem arose because of some kind of internal system utility. You then did not use containerization, which is now very popular?Not.
Do you have a Docker in production now?Yes.
That is, you actively switched to Docker and use it?This is one of the main directions of our work.
What are your impressions?Good. I don't even know how we would live without it. Previously, we had PHP - roll scripts, and rushed. And now it’s impossible to live without containers.
You, as the technical director, are engaged in the "health" of the team. Tell me a little about it.One of my main qualities: I like to listen to people. I try to put myself in their place, it gives an opportunity to understand their mood, problems, why they make these or other decisions, why they feel that way. And it helps me find the right way out of the situation, make the right decision. For me, the “health” of the team, the “well-being” of each person are extremely important: is it good for him, is he comfortable in the team, what goals is he moving for, what does he want to achieve.
Once a developer in a personal conversation said: “
I used to dream of becoming a technical director or technical director in order to receive more money, have power, and so on. Now I work in a flat structure, we don't have a techlide. But there is a technical director who performs managerial tasks, and technical decisions are made by developers. Where should I go? How do i live? Life principles are broken. It’s not clear where to go from here . ”
Gradually, I realized that this was not the case. A person should be happy. The tasks that he performs, he should like. And he can choose them for himself. Career ladder gives financial growth, but it can be achieved in a different way: you solve more complex tasks, help others, your team works faster, you quickly deliver complex features. So much for your career growth, salary increases, the rate. Changes in the workbook are secondary. You work well - you get pleasure from it. And if this will have a positive effect on the product, then the salary will increase, and the position in the workbook will change.
How to become a team leader?You can simply not be. The point of teamwork is to do what you like. In my practice, there were cases when a person was appointed as a team leader at his request. Well, we write an office note, we change the employment record, we increase the salary. At the same time, the person says that he is Timlid, and the team does not recognize him.
It happens and vice versa: the person explains to the team how to do something, and the team recognizes it. These are the best Timlides. If you want to become a team leader, you will. And if you do not want, then you will not.
You say you like to listen to developers, you give a lot of examples when they tell you something. But developers are usually introverts; sometimes it is difficult to get a word out of them. How do you handle it? How to talk developer?All introverts. Everyone hates people. That's not the point. We work together. I try to periodically talk with people one on one. It is extremely helpful to get feedback. Once I could not understand what was happening to a person. Then we agreed that we would meet once every two weeks and talk. And after that, everything went smoothly. I tell him what he doesn’t like, he says he doesn’t like him. We find common points, make decisions, discuss what we will do next. And moving forward. It works very well. Need to communicate more.
Our short quiz. Which OS will you choose?Mac OS.
What is the best IDE?JetBrains.
The latest application, site, startup that impressed you?Mobile Bank from Tinkoff Bank.
What is better: a startup or a large company?If you just want to live comfortably and get paid, then go to a large company. If you are constantly boiling up, you want movement, adrenaline, adventure, then a startup is your everything. Don't go to a startup if you just want a lot of money. This is not the way.
Just yesterday, the trend was mobile first. Today machine learning first. What will be tomorrow?At one training they told that there are special people who determine what will happen tomorrow, they even draw cards about it and sell them for money. Machine learning is a kind of HYIP. There is also big data, virtual reality, nano and biotechnology. I saw a similar map: a tangle of intricate connections that move in different directions. Predictions on the level of astrology. I would say that tomorrow will be not machine learning, but big data. A lot is already known about any person who goes online. You just need to learn how to use it correctly. This knowledge is collected, processed, are a source of income.
When will robots replace you?We can say that they have already replaced. I bought a robot vacuum cleaner.
How do you rate the task: in hours or in Story Points?And in the Story Points, and in hours. Who as he wants.
What is the last you could not afford?Subaru Ascent.
How many bitcoins do you have?Zero.
Not interested in this topic?This is HYIP.
What do your friends most often ask about am.ru?When we take over the world.
And when?Soon.