Thoughts



Why Engineering Managers Should Be Technical
Photo by Jennifer Fu on Unsplash

Why Engineering Managers Should Be Technical

8mins read
  • Engineering Management
  • Technical Skills
  • Leadership
  • Tech Industry

The balance between technical skills and management

📚 Introduction

Elon Musk once tweeted that he believed managers in tech should be technically excellent, using the metaphor of a cavalry captain who should be able to ride horses. This tweet sparked a heated debate about what it means to be “technically excellent.”

In this blog post, we will explore why technical skills are important for engineering managers, especially when there are senior tech leads within the team. We will also discuss the cognitive dissonance created by Musk’s tweet and how it relates to modern management practices.

Elon Musk

🛠️ Why Technical Skills Matter

  1. Effective Communication: Technical managers can talk easily with both tech and non-tech teams. This helps everyone understand each other better.
  2. Understanding Technical Implications: They can see the impact of technical decisions and make better choices for projects.
  3. Adapting to Changes: Knowing the latest tech trends helps managers guide their teams through changes and plan for the future.
  4. Team Empowerment and Guidance: Technical managers can join tech discussions, understand challenges, and mentor their team.
  5. Hands-on Contribution: They can help solve technical problems, boosting team morale and collaboration.
  6. Objective Evaluation: They can fairly assess their team's work and give useful feedback.

🤔 The Role of Engineering Managers vs. Tech Leads

Engineering managers need to understand how changes affect the whole company. They should be ready to handle multiple issues at once, helping engineers stay focused. While tech leads dive deep into specific technologies, managers should have a broad understanding to support their team effectively.

🧩 Cognitive Dissonance in Management

Elon Musk’s tweet about technical excellence in managers created a cognitive dissonance. Cognitive dissonance occurs when two conflicting ideas or behaviors cause discomfort. In this case, the conflict is between the idea that managers should focus on people skills and the idea that they should be technically excellent.

Modern Management Practices

There is a consensus in the tech sector that successful managers should demonstrate good soft skills and embrace modern management practices. These practices include leadership, empathy, employee well-being, active listening, and coaching. Studies show that organizations that foster these practices have better results and performance.

Musk’s Assertion

When Musk asserts that managers in the tech world should be technically excellent, it raises questions. How can managers be great specialists and also devote themselves to developing and coaching their direct reports? Tesla and SpaceX, two highly successful ventures created by Musk, give some legitimacy to his assertion.

The Real Question

The real question is not whether managers should write code or be masters of their trades. It is rather what kind of companies we want to work for. Management is mostly a “people” job. It is about solving problems so that other people can solve domain-specific technical problems to get things done. Communicating, hiring, motivating, building relationships, and influencing are all critical aspects of a manager’s job.

🛠️ Staying Technical vs. Being Hands-On

Before diving into what an Engineering Manager or someone growing from an Engineer to a leadership position should do, it’s important to understand the difference between staying technical and being hands-on, since they are often confused.

Staying Technical

Staying technical refers to maintaining knowledge of technologies being used in your environment and understanding how things work, even if one is not directly involved in technical tasks.

Being Hands-On

Being hands-on means actively engaging in technical work, such as coding or building systems, and working directly with technology.

Should an Engineering Manager Stay Technical?

Yes, an Engineering Manager should stay technical. We will discuss the reasons, methods, and necessary depth of technical knowledge later. However, what is less clear, and often a subject of debate, is whether these roles need to be hands-on.

Who Needs to Be Hands-On?

There are two scenarios where it makes sense for an Engineering Manager to take on hands-on roles:

  1. Small Startup: In the startup world, it’s common to encounter smaller engineering teams, often led by a co-founder or an early member who takes on the role of EM. Given the nature of startups, it can be practical for such roles to be hands-on, especially when the team is small and there may not be sufficient resources dedicated only to managing people.
  2. Forming Stage of a Team: When a team is in its early stages, much like in a startup, a high level of contribution from EMs is crucial. Therefore, during the initial phases of team formation, it could be beneficial for an EM to spend time on hands-on tasks.

In most other situations, being hands-on as an Engineering Manager is less justifiable and can even lead to delays or other issues. As a team expands and becomes more structured, the role of an Engineering Manager should increasingly move away from hands-on activities.

🛠️ Criticisms of Not Being a Hands-On EM

While scrolling through LinkedIn, Reddit, Hacker News, and other platforms, you often come across threads where engineers criticize EMs for not being hands-on. Let’s explore some of these criticisms and attempt to debunk them.

Criticism 1: If you’re not hands-on, you can’t make technical decisions because you don’t understand what’s happening in the software.

This statement is not only inaccurate but also represents the wrong approach. The era in which the manager makes all decisions has passed. Technical decisions should be made collectively by listening to those who are on the front lines every day. An EM simply needs to grasp the overall picture to effectively guide these types of conversations.

Criticism 2: If an EM is not hands-on, they won’t be able to ensure developers are doing their job.

The concept of one person “controlling” others is somewhat outdated. Developers and system engineers should feel a sense of ownership over their work, and the team should collectively maintain high standards and self-regulate from a technical standpoint. In other scenarios, the EM can rely on Tech Leads or experienced engineers through delegation, without needing to be hands-on.

Criticism 3: If an EM doesn’t remain hands-on, they risk losing touch with technology, which could be detrimental to their career.

While the “hands-on decay” is inevitable as you progress in structured leadership positions, it shouldn’t be a big concern if you remain technical and approach it the right way. Though it may take some time, if you stay technical throughout your career, when you eventually decide to switch back to a hands-on position, it will be much easier.

🛠️ Staying Technical as an Engineering Manager

We’ve discussed the difference between being hands-on and staying technical, and why as EMs, we should prioritize the latter. But why is staying technical so important for EMs and engineers who hold leadership positions?

Reasons to Stay Technical

  1. Understanding Challenges: Staying technical helps you understand the challenges that your team is facing and guide them through finding solutions.
  2. Speaking the Same Language: Effective communication with your team is crucial, and speaking the same technical language facilitates this.
  3. Making Informed Choices: Remaining technical as an EM enables you to participate in technical decisions and make informed choices.
  4. Building Respect: While respect should always form the baseline of your team culture, especially during technical discussions, engineers tend to have a special appreciation for other engineers.
  5. Continuous Learning: Staying technical encourages ongoing learning, which can be immensely beneficial for future career changes.
  6. Guiding Growth: You can better plan how your team can learn and improve their technical skills by staying technical yourself.

How to Stay Technical

There are multiple ways of staying technical within your domain, but before delving into them, it’s important to spend a couple of words on how to structure this continuous learning path, which, in my opinion, is officially part of every EM’s duties.

Structuring Continuous Learning

One good strategy is to commit part of your weekly time to staying technical. A good balance between your managerial duties and keeping up with technical aspects is to dedicate 20% of your time to learning and getting involved in technical matters.

Activities to Stay Technical

  1. Join Tech Meetings: There’s no better way to stay technically active than by immersing yourself in tech discussions and developments. Technical meetings offer this opportunity, and as an EM, you should always try to attend them.

    • Benefits: Stay up-to-date, demonstrate interest, and stay informed about team activities.
    • Effectiveness: 🟢🟢🟢🟢🟢
  2. Contribute to Documentation: Writing is one of the best ways to solidify concepts and learn new things. It forces you to think critically, simplify complex ideas, and gather any necessary information you might lack.

    • Benefits: Produces tangible results, helps the team, and shows commitment.
    • Effectiveness: 🟢🟢🟢🟢🟢
  3. Build Internal Tools: Being less hands-on doesn’t mean you can’t code during your “stay technical” time. Building internal tools can be a practical way to stay engaged with coding.

    • Benefits: Create useful resources, stay engaged with coding, and feel rewarded.
  • Effectiveness: 🟢🟢🟢🟢⚪️
  1. Present What Others Are Building: Presenting your team’s work can help you stay in touch with technology and understand complex concepts.

    • Benefits: Simplifies technical concepts, boosts team morale, and showcases team success.
    • Effectiveness: 🟢🟢🟢🟢⚪️
  2. Build Side Projects: Working on side projects or contributing to open-source projects can help you stay technical outside of work hours.

    • Benefits: Experiment with new technologies, keep coding skills sharp, and gain exposure to other areas like product and marketing.
    • Effectiveness: 🟢🟢🟢🟢⚪️
  3. Participate in Code Reviews: Engaging in code reviews keeps you updated with the codebase and engineering practices.

    • Benefits: Understand team progress, foster connections, and provide mentoring opportunities.
    • Effectiveness: 🟡🟡🟡⚪️⚪️
  4. Join Tech Talks and Conferences: Attending tech talks and conferences exposes you to new technologies and industry trends.

    • Benefits: Stay updated with industry trends, improve public speaking skills, and network with peers.
    • Effectiveness: 🟡🟡🟡⚪️⚪️
  5. Pair Programming: Occasionally pairing with team members can keep you engaged with the codebase and help you learn new techniques.

    • Benefits: Stay connected with the team, understand daily challenges, and act as a backup in critical situations.
    • Effectiveness: 🔴🔴⚪️⚪️⚪️
  6. Online Courses and Certifications: Enrolling in online courses or pursuing certifications can complement hands-on learning.

    • Benefits: Provides formal recognition for skills and includes practical exercises.
    • Effectiveness: 🔴🔴⚪️⚪️⚪️
  7. Read Technical Books: Reading technical books can provide different perspectives and inspiration.

    • Benefits: Minimal time investment, can be done anywhere, and offers new viewpoints.
    • Effectiveness: 🔴⚪️⚪️⚪️⚪️

These are just some suggestions on how you can remain technical as an EM or someone covering even higher leadership positions. After years of following these practices while holding leadership and managerial positions, I can confidently say that I was able to keep up with technology.

Does this mean I would pass an interview today to become a Senior Software Engineer or a Cloud System Engineer? To be completely honest, probably not. However, I am fairly sure that it wouldn’t take much effort to fill my gaps, because I consistently kept up with training my general technical knowledge.

In other words, I stayed technical.

🏁 TL;DR

Today we went through many different concepts, so let’s summarize the most important ones:

  • For engineers transitioning from individual contributors to leadership roles, it is natural to face challenges in maintaining their technical skills.
  • “Staying technical” (maintaining knowledge of technologies and understanding technical processes) is different from being “hands-on” (actively engaging in coding and system building).
  • The need to be hands-on decreases with leadership progression, except in specific scenarios like small startups or during a team’s early stages.
  • Staying technical is crucial for EMs for understanding team challenges, making informed decisions, and communicating effectively with the team.
  • Dedicating 20% of weekly time to technical activities to stay technical is a good balance.
  • Suggested activities for staying technical include:
    • Joining technical meetings to stay up-to-date and engaged with the team.
    • Contributing to documentation to solidify understanding and assist the team.
    • Building internal tools to maintain coding skills and create useful resources.
    • Presenting team projects to understand and simplify technical concepts.
    • Participating in code reviews to stay connected with the codebase and team.
    • Engaging in continuous learning through attending tech talks, conferences, and online courses.

📚 Further Reading

  • The Importance of Technical Skills for Managers
  • Balancing Management and Technical Expertise
  • How to Stay Technical as a Manager

📅 Stay updated

Subscribe to our newsletter for more insights on engineering management and leadership.