⬆️ ⬇️

Fear and Loathing as Techdir

What is it like to be CTO (Chief technology officer) or CTO? Perhaps one of the highest stages of engineer development. How much better life becomes in such a position? That's what I’m talking about today.



In the beginning, I want to note that everything is very subjective and depends on the company. I will tell about my experience in relatively small companies and startups. Of course, for many, experience may vary.



At the very beginning, I did not have a crowd of engineers to manage, I had to assemble a team myself. I immediately plunged into the hiring of employees, budget allocation and the organization of work space, and more.



Why go there at all?



What moves a person when he aspires to this position? One of the factors may be money, but not everything is clear here. If you look at Moscow and St. Petersburg, then the salaries of very cool engineers can be higher than directors. That is, money is far from a decisive argument. For example, for me personally it was an opportunity to influence the development in a different way. If earlier the quality of the code and the product itself depended on me, then with the advent of a new position the degree of influence expands significantly: it becomes possible to manage the budget and choose global technical solutions, motivate the team and organize the entire work process. All this makes it possible to quickly achieve goals, choose development strategies and methodologies for the company.

')

I noticed such a fact that if earlier, when I was a developer, the effect of my work was noticeable almost immediately, maximum after the sprint, now it should take at least three months, and more often it takes at least six months to see the results. But fakapy is much brighter - usually they are immediately noticeable to everyone. Yes, and companies cost several times or even orders of magnitude more expensive than the mistakes of ordinary engineers, analysts, or even project managers.



New responsibilities - new discoveries



The moment of my becoming in a new position was filled with strength and enthusiasm. There was a fighting spirit, I wanted to redo everything. But this was a typical neophyte mistake. It seemed that everything was working wrong, we had to rewrite and fix it. The larger the company or the more complex the project, the stronger it seems that there are more problems. But in practice, delving into all this, you start to cool down - not everything is as simple and unambiguous as it seems at first glance.



It seems like you want to fix everything and do it better, but you come across a wall of misunderstanding on the part of the teams. They see it this way: some reformer came in, spent all day doing some garbage, introducing something there, preventing him from writing code, but everything worked fine.



Further, I gradually plunged into the work of CTO, I thought that it was happiness: complete control over the development, decision making, finally you can do exactly what you think is best. And not like that boss from a previous job. But at the same time, other not-so-interesting responsibilities come to the appendage: budget allocation, payroll fund (wage fund), domestic problems, hiring people and much more.



When I first became CTO, I had no idea about many responsibilities. For example, one more engineer is required per team. You need to convey to HR what kind of specialist is needed, what he should be able to do. Also, you have a well-established payroll, and you need to somehow find a salary for a new employee and not exceed the budget. And then you need to monitor the market so that it is not chased by competitors. At the same time, mistakes can have sad consequences, if you poorly evaluate him, he can leave and then tell everyone what a goat you are. And if there’s nowhere else to plant it, to rent a new office? And there you still need to buy furniture and install air conditioning, etc.



If earlier all resources appeared for you miraculously, like in a game budgets were taken from a box for a server, some products, etc., CTO extracts them yourself. We must go “to the carpet”, defend our decisions and try to explain what is needed for development now. In this case, you simply must prove the direct benefits to the business.



When it is required to make strategic decisions, it turns out, especially at first, that knowledge is not always enough. At this moment you understand that you need to download skills in all areas of knowledge, and urgently.



We should also say about the length of the working day. I got the impression that it is growing with the post. If engineers sit for 8 hours and sometimes delay, then in the CTO position, being in touch with 8 to 23 has become the norm. Still sometimes they call on weekends, and in the form of bonuses they call when you are on vacation. And it seems like you were going to the beach, but you are sitting at a laptop in your room and doing something. Moreover, 70–80% of the working time is occupied by meetings, meetings, correspondence, and problem solving. Only the rest of the time are you trying to do something useful.



I thought that I would deal with things related only to the development management, but in reality I have to communicate with everyone: from security guards to top managers. With all the technical problems came to me.



Conversation



Sometimes I needed to negotiate with large companies like Auto.ru or Avito. There it was extremely important not to face the dirt and show that you represent a serious company.



But it happens the other way around: somehow the authorities sent for negotiations with partners, it seems (keyword) agreed that I will meet the head of the development department. As a result, he arrived in another city, it turned out that no one was waiting for me, the head of the department left for another meeting altogether. So that the trip was not completely useless, I had to somehow establish contact with their developers. To tell us what we want, and indeed to achieve that they just listened to you, has become that other task. As a result, he somehow talked them, barely got out, having received the necessary information and having settled the fundamental technical issues.



Further - more trash. I went to another city to discuss the technical aspects of integrating another company with our system. I arrive, and there it turns out that this is a family contract. The microcompany met me, even without an office. A pregnant analyst, the main developer in an alcoholic T-shirt, children are running around the apartment, and during the discussion a talking parrot flies around me.



Balance of business and development



When you are a developer, you think that it would be cool to rewrite something using new technology or to use a cool DBMS. Now it works in a different way: you think about each new idea in a different plane, namely, how to "sell" this to your bosses. For example, you wanted to rewrite some part of the service from PHP to Go. For superiors, this is an empty phrase, which can not be spent a dime. After all, the gender thinks in other categories - terms and budget. Therefore, going to him without time and resources and asking to realize some idea is a disastrous business. You learn to imagine immediately how this will help the business. If some technological solution does not allow the business to sell or save more, then the plan is obviously a failure. Plus, one must keep in mind the possible risks of implementation. For if something doesn’t go according to plan, then it’s you who gets the head.



Now the question of the balance of business and development is even more acute. Another important variable is added to any task - the cost of the solution. At the same time, the technical aspects do not disappear, the bias towards business is also harmful. The technical director must be aware of how successful this decision is in the future, whether a particular technology will be developed and supported in the future, what is the threshold for entering it, whether it is too tough for the engineers of the current team, or whether it is necessary to go monitor the market and hire new ones. This is where the technical background comes in handy. And if CTO grew out of a manager and does not know the difference between Java and JavaScript? Alas, this also happens, and it's sad.



CTO lives between Scylla and Charybdis. On the one hand, programmers are “hungry” to cool technical solutions, on the other hand, a business that wants to save on development as much as possible and cannot wait for features to get dirty. The former constantly want to introduce something new or rewrite the old, while the latter require accelerated development and reduced risk. We must not offend the engineers and not screw up before the authorities.



No compromises anywhere. Sometimes outright crutches help make good sales. Then they are justified, and the developers have to put up with them. And sometimes you have to “push” some decisions in front of your superiors and knock out a budget for them in order to save in the future.



I also came across the fact that I kind of set up a process and stopped monitoring it. Everything seems to be going well, but there is no proper effect. In fact, employees can simply score on something. I realized that we must follow all the processes and not let go of the reins. And if you let go, then you need to be 300% sure that someone will do this, and everything will go according to plan.



I would also like to highlight one more point. In the post of technical expert, you no longer write the code, all the work is reduced to the choice of solutions and the dissemination of knowledge among team leaders, who, in turn, are engaged in the training of ordinary engineers. Naturally, the programming skill is lost. Even if you do not need to write code in your CTO position by hand, you still need to understand the technology. Therefore, we must somehow have time to follow and this, read books, listen to reports. If you are poorly versed in something, then engineers can understand this and throw some garbage, such as "the boss is a fool, then a ride." It also happens when it’s easier for you to do something by your own hands, and not try to explain the problem to the team and get a solution from them. It ends badly, people can stop trying and sit on their necks.



Management maneuvers



It seems like most recently you worked as a programmer or team lead and went to drink beer with the guys on Fridays, but you have already grown up to CTO, and they turned into your subordinates. And one of them comes to you: "Bro, and raise my salary." Here, personal relationships begin to interfere, there is some awkwardness. In such situations, you need to behave correctly. If a person has done a hard job, then it may be worth it to deprive him of a bonus.



We must defend our authority, but not be a tyrant, that is, we need an adequate balance. Yes, now there are general epaulettes, but you can’t take and do something, because it got into your head. In this case, democracy does not smell. And after that no one will love you.



Much, it seems to me, should be based on trust. Therefore, I repeat, you need to be careful about promises. Otherwise, the credit of trust falls, this ultimately leads to negative consequences. Moreover, this principle should equally work both towards developers and business. For example, he promised to raise his salary, but the budget was cut. I had to hook up other bonuses and buns by hook or by crook. It is better not to give empty promises, otherwise they will consider it an empty bell, it will be difficult to clean up the reputation.



We used to have a brave guy who protected you from everything, but now there is no protection, because I became this brave guy. And in no case should you show that you are flattened out of problems. If this will manifest itself externally, then ordinary employees will instantly feel the negative. And this is despondency and poisoning of the working atmosphere. Now you are responsible for every sneeze.



When you squint a lot, you must be able to recognize it. From my own experience, I’ll say that you need to be able to collect everyone, stand on a stool and say: “Colleagues, I screwed up.” And if you add to this: “But I know how to fix it,” then this is already perceived normally, and the respect from the guys is growing. And people will treat this with understanding.



Job Search for CTO Position



Oddly enough, the number of vacancies for the service station position is quite large. But they are usually not placed on hh and similar resources, most often they are looking for techdirs, or at least look closely, at conferences or on the recommendations of acquaintances. Why? I do not have a clear answer, but it seems to me that the whole point is in assessing abilities. You can’t give a puzzle and see the result, even if it is related to architecture. CTO does not write code. Ask to show how a person will build processes and implement Agile? You can, only the effect will have to wait six months. Moreover, people often cannot adequately assess the state of things, they think that everything is cool with them, and as you dig a little, there is chaos.



If you think about what the company wants to get from a specialist? If this is a developer, team lead or PM - everything is clear. What if CTO? There is no specific list of responsibilities. In fact, there is, it should ensure the work of all of the above and bear responsibility for this. But the fact is that this all depends very much on the company.



When I was looking for work, I went for interviews to the CTO position and watched such a picture. One company wants you to essentially perform the functions of Team Leader, they don’t need to build processes, they want you to simply write code. In the other, on the contrary, they want you to deal exclusively with processes; they don’t need any architecture. The third one needs a manager, they don’t give a damn about the technical side. The fourth requires a person who will test business ideas. Fifth, they want the CTO to be involved in marketing and marketing. It’s good if companies even understand what they want to get. There are those who just need everything to be fine.



Somehow he laughed, they threw off a test task for me: I had to calculate the cost and term of creating an online store with a basket and a showcase, guided by the average market prices for the development. In general, this is all TK. I mentally wished them good luck in their search for a candidate.



And there is also a special kind of companies with a wild level of bureaucracy, where they will not let sneeze without the approval of five departments.



So before you go looking for a CTO job, you should think more than once what you want. Most importantly, the company should clearly understand what they want from you. At one of the interviews, I could not stand it and asked: “I see that you do not understand what you are asking me about. How are you going to evaluate me? ”They replied that we had read a couple of clever books and asked friends from another business about their techdir, the one we were looking for.



So choose carefully and wisely, otherwise it may not be worth it.



PS



In conclusion, I want to say that everything is subjective and there are no right and wrong decisions, it depends on many factors. If to summarize everything that I talked about, then I would reduce to the fact that STO is the person who solves all issues, from the smallest to the most strategically important, works non-stop so that everyone else can work and give results . And most often they want from him something that he has not yet encountered, therefore, flexibility, the ability to adapt and quickly learn are needed. At least for me, these qualities were key. Of course, this work does not consist of only minuses. The CTO position allows you to realize yourself, your ambitions,

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



All Articles