惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
小众软件
小众软件
V
V2EX
博客园 - Franky
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
量子位
博客园 - 【当耐特】
雷峰网
雷峰网
WordPress大学
WordPress大学
Jina AI
Jina AI
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
Visual Studio Blog
Microsoft Security Blog
Microsoft Security Blog

Yusuf Aytas

When Code Is Cheap, Does Quality Still Matter? Why Crouching Tiger, Hidden Dragon Is a Masterpiece Why We Ignore Advice The Mirror Is Part of the Machine When Too Many Maps Overlap on One Person The Work Runs on Different Maps Your Work Introduces You Trial By Fire The Dude Why Headcount Math Lies Capacity Is the Roadmap The Roadmap Is Not the System Torres del Paine W Trek Escaping Status Theater Incentives Drive Everything Scaling Culture Without Dilution What Good Looks Like Why Airport Security Feels Random Why Politics Appear How to Work with Me The Janus Protocol Multi-Horizon Delivery Framework What Good Execution Looks Like Managing Your Manager Why Kingdom of Heaven’s Director’s Cut Is Better AI Broke Interviews Most of What We Call Progress Managers Have Been Vibe Coding All Along Stop Wasting Brainpower Why Over-Engineering Happens
Should Dev Managers Code?
Yusuf Aytas · 2024-01-10 · via Yusuf Aytas

Published · 5 min read

As someone who's been navigating the world of software development for a while, I often think about what it really means to be a good development manager. It's a bit like being the conductor of an orchestra. You don’t have to know how to play every single instrument. You don’t necessarily code yourself, but make sure everything works in harmony.

This brings me to a question I frequently ponder: Should development managers actually write code? Is their involvement in the coding process beneficial or does it detract from their primary role? In my experience and observations, this is a nuanced topic. Coding has implications on the team's dynamics, project outcomes, and the manager's effectiveness.

Dev managers coding interfacesDev managers coding interfaces

A Simple Cache Interface

Understanding the Essence of Roles

Development managers in software engineering are much like conductors of an orchestra. Just as a conductor interprets a musical score, sets the tempo, and ensures harmonious execution of a symphony, development managers orchestrate the various components of a project. Their role goes far beyond mere coding. A manager needs to harmonize the team's skills. Guide the project rhythm. Manage up and down to make sure work go without disruptions.

Great things in business are never done by one person; they're done by a team of people.

Steve Jobs

The job is really about fostering a collaborative environment where each team member’s unique strengths contribute to a masterpiece.

The Risk of Wearing Multiple Hats

Obviously, by default managers have to wear multiple hats. Nobody is denying that. It just differs from one place to another. In startups or smaller teams, it's typical for managers to roll up their sleeves and dive into coding. This hands-on approach is often necessary due to limited resources and the agile nature of small teams. However, as the team grows, this approach can become a double-edged sword as you can't focus on team development and such.

In larger teams, a manager’s primary responsibility shifts from coding to cultivating an environment where each team member can flourish. This involves mentoring developers, aligning the project with strategic business goals, and efficiently managing resources. When a manager continues to focus heavily on coding in such settings, it may lead to overlooked team needs, misaligned project goals, and ultimately, a team that fails to thrive.

Therefore, in larger teams, the development manager's effectiveness is often measured not by their personal coding output but by the growth and productivity of their team as a whole. Their role becomes more about ensuring that every team member has the right conditions to develop and contribute effectively, ensuring the success of the project as a cohesive unit. Team's win is manager's win.

The Time Management

When development managers dedicate significant time to coding, they may inadvertently overlook several crucial areas. These include:

  • Stakeholder Communication: Essential for aligning project objectives with business goals and addressing concerns or feedback.
  • Team Morale and Culture: Fostering a positive work environment, resolving conflicts, and building team cohesion often takes a backseat.
  • Strategic Planning: Overlooking the bigger picture of the project’s direction and future roadmaps.
  • Mentoring and Development: Providing guidance and support for the professional growth of team members may be neglected.
  • Resource Allocation and Management: Efficiently managing resources and adjusting project scopes or timelines can be compromised.
  • Innovation and Process Improvement: Opportunities for innovating and refining development processes may be missed.

Effective time management for a development manager involves balancing hands-on technical work with these overarching responsibilities to ensure the team's and the project's overall success.

Balancing Act

The role of a development manager is indeed more personal and relatable. With their background in coding, managers don't primarily contribute code themselves. Instead, they should use their technical understanding to empathize with the challenges their team faces. It’s like having been in their shoes, knowing the hurdles and triumphs of coding firsthand.

Technical experience is invaluable for guiding the team. With a good technical background one can foresee issues, offer practical advice, and help navigate through complex problems, all while giving the team space to learn and grow independently. It’s not just about managing. It’s about connecting with the team on a level that only someone who’s been in the coding trenches can.

Cultivating Leadership and Technical Skills

All that said, having a development manager who's really good at coding can be a big plus for a software team. It's not just about the coding skills themselves. When team members see that their manager knows the ins and outs of coding, they naturally tend to respect and trust them more. It's like having a coach who's been a player themselves; they just get it.

Well, here's an interesting bit though. You want managers to be smart about when to jump in with their coding skills and when to let the team figure things out on their own. It’s a bit like a teacher who knows when to help out a student and when to let them solve the problem to learn. You don't want them to intervene a lot. If they're always taking over the coding, the team might not learn to solve tough problems on their own. But, if they step in at just the right times, they can guide the team through really tricky stuff and help everyone get better.

So, it’s all about finding that sweet spot. A good manager with coding chops isn’t just a boss; they’re a guide who helps the team grow and become more confident in tackling the challenges of software development.

The question isn't whether development managers can code, but whether they should. Their primary role is to guide, inspire, and lead their team towards achieving collective goals. In certain scenarios, their coding skills may be called upon, but this should be the exception, not the norm. Hence, managers should manage and coders should code.