In the BetterProgramming article Maria Kovalivska, Engineering Manager at Innovecs kindly shared with us the basic principles of Engineering Leadership that help a developer grow vertically and horizontally. She joined the company as a Middle Engineer in the Front end (React) field and took the Engineering Manager position in just three years.
The map of programmers’ career growth has two directions: you can move up the vertical axis and inward or horizontally. Professionals who choose the vertical vector grow to the positions of Tech/Team Leads, Engineering Managers, and Delivery Managers.
Those who choose the horizontal vector gradually overcome each of the steps from Junior to Senior Engineer, and then the horizontal growth relies on the corporate structure. Depending on the project, some become architects, and others change the company and strengthen their knowledge through new processes and technologies. According to the classic approach, it is important for all engineers who choose the upward direction to focus on developing soft skills such as People Management. And for those who decide to develop horizontally, it is necessary to constantly improve hard skills; that is, their Engineering Expertise.
You don’t have to lead teams or manage people to be a leader. You have to be the one to set the vector, influence others, shape trends and change them. According to this concept, engineering leaders are not only those who lead the team but also develop innovations and advanced products, and translate digital transformation into reality. Let`s take a look at the 6 principles of Engineering Leadership.
Both Team/Tech Lead and Senior Engineer can mentor juniors. The main condition is deep expertise and a desire to help colleagues. This is where my smooth transition from Senior Engineer to Team/Tech Lead and Engineering Manager began. In a nutshell, Team/Tech Lead is a Senior Engineer who knows how to manage people, navigate processes and mentor others. Overall, I have worked in IT for about 6 years: 2.5 years as a programmer in an outsourcing company and startup, and 3 in Innovecs.
This is where my vertical growth as a manager took place. Initially, I didn’t even have a goal of moving on the vertical axis. Things worked out naturally. Due to more complex tasks, I gradually grew from Middle to Senior, then began to mentor Junior Engineers. Later on, I took over Team/Tech Lead’s responsibilities. As the amount of work on the project grew, the team split into subteams. There were 3-4 people under my guidance. While remaining in the programmer position, I was already engaged in management. Ultimately, a classic rotation of employees happened on the team: my superiors got promoted, and I picked up their roles.
I can’t say that I really wanted it, but at the same time, I was suitable for that position in terms of experience and expertise. First, Engineering Manager must be someone who already knows all the project’s features. And secondly, it should be a person with sound technical expertise and management skills.
With the transition to the Engineering Manager’s position, I ceased programming and became more involved in organizational work and technical mentorship. This does not mean that code has completely vanished from my life. Sometimes I have to review and correct others’ mistakes. But it is more at the level of advice and counseling.
In non-technical areas, there is a division into organizational managers who are responsible for building work processes and area managers who are experts in their field and are responsible for implementation.
For the most part, in the IT field, the Engineering Manager position is not equivalent to an organizational manager, as the Engineering Manager must have good technical expertise, and not just organize the process.
If you have already decided to become a manager, you should develop your hard skills as well, because you will have to gain credibility in the team thanks to your experience and knowledge of technology. Some companies still practice hiring an organizational project manager and a separate technical one, who will solve purely technical issues. It all depends on the structure of the company and its processes. But there are generally accepted requirements for developers.
For example, the crucial qualities of a Senior Developer are independence in solving problems and performing tasks; creativity, technical expertise, and knowledge of related technologies; the ability to see the whole picture and offer alternative solutions. While Middle may still get stuck on some issues, Senior offers several solutions.
Also, I believe, the most important factor in a developer’s career and professional growth is education. Without basic education, all other factors are less relevant. Then, personal experience, mentoring from experienced colleagues, and a work environment where you can develop are vital.
If you want to evolve, you should get used to taking on more responsibility. The more you do, the more they trust you. Leadership and responsibility are inseparable. This is what I had the hardest time dealing with in the beginning. The Engineering Manager is always the first person to be approached with any questions related to the project or team, and you have to make your own choices. The first two months were quite stressful for me, but then I got used to it.
To my mind, a leader should set the tone for the whole team and be a role model; that is, be an exemplary specialist in various fields. One should avoid showing superiority to employees or being indifferent to the project, or failing to perform own duties properly. Managers are responsible for their words and keeping their promises.
If the team sees that Team Lead stays after work to refine the technical base, it will also try to meet deadlines. But if a Lead demands working overtime and in the meantime, just hangs out and enjoys a beer with friends, it inevitably demotivates and undermines team spirit. It simply doesn’t work that way. Managers must support their teams and be in tune with them.
At the managerial level, you need to be prepared because you will have to communicate a lot with clients and team members. It is important to be open and build friendships with the team. I am against vertical leadership when there is a boss and a subordinate; this is a relic of the past. Leadership must be democratic, not authoritarian. It is essential to behave in such a way that teammates are not afraid to express their opinion or argue, but on the contrary, they are candid and do not feel any hierarchy.
The Team Lead and Engineering Manager have a high level of emotional intelligence. They often have to settle difficult situations with a customer who might insist on not that realistic ideas or motivate team members who have to meet deadlines and do well. Sometimes it happens that you rely on someone, who then disappears, does not respond, does not perform on time, and fails. And it is the Engineering Manager who is responsible for the final result and explaining to management the reasons for not meeting or postponing deadlines.
In my opinion, the most challenging thing about this role is dealing with the irresponsibility of others. It is always necessary to monitor the team’s morale, ensuring everyone is interested in work; the responsibilities correspond to the opportunities, and people see the growth prospects. To master the art of motivating people, you need to be proficient in communication, hold one-to-one meetings with team members, and inquire about the tasks’ status and possible constraints. Nobody taught me that, I rather took it over from my management. At first, it was difficult, but I managed to adapt after a while.
If Middle Engineer takes some responsibility, the Senior Engineer, Team Lead, and Engineering Manager are completely independent and must be prepared for emergencies on the project. Don’t be afraid that something will go wrong when you need to suddenly fix bugs or urgently contact the customer. Flexibility, critical thinking, and stress resistance are pivotal here. Preparedness for stressful situations and the ability to deal with them emotionally are often more important than technical skills. Especially when it comes to the Engineering Manager’s features. Usually, a good technician with communication problems is less effective on a project than one with poorer technical skills but is stress-resistant and can solve a problem better and faster.
And I would add that you should not focus on mistakes; rather, let go of negative emotions or situations. Do not let yourself stick to unpleasant moments. Learning from your mistakes is normal, and no one can avoid them. Everyone makes mistakes; therefore, you should not panic and stress too much. Instead, conclude and learn. I used to suffer more from mistakes; I felt them deeply and worried about remarks. Now I have learned to take it easy, to separate the personal from the work.
After all, I still have support and mentoring in case of difficulties with a new aspect of the project. I can contact the Delivery Manager if I have any technical or organizational questions. If you do not know something, encounter it for the first time, and have doubts about the right decision, it is normal to go and ask for advice.
Since embracing the Engineering Manager position, I have learned to be multifunctional — keeping several areas in my head simultaneously. It is important to quickly move from one task to another and to orchestrate several processes; do not be afraid of the new, and learn quickly. Of course, it is important to hone your English because you have to negotiate with customers and skillfully convince them, and offer alternative options. I would advise every developer to improve their language skills. And if you do not have the opportunity to communicate daily, it is definitely worth attending courses or speaking clubs.
In conclusion, not everyone should aspire to become a manager. Some developers find their comfort zone, and it’s no problem if they like it. Some people have been making significant strides in their careers since their first year in the company, and some have worked for years in the same position and company, even while doing great with their current responsibilities. This points to satisfaction with the role, the financial reward, and the match of tasks with capabilities. It becomes immediately apparent as soon as a person feels ready to move on.
I think that people wanting to be managers ultimately do so. Engineering Leadership is not only about management but also about the ability to be a role model in your profession, to influence and achieve results.