Do Software Managers Need to Be Good at Coding
There are a lot of discussions these days about whether software managers need to be good at coding.
Some people say that it’s essential for leaders to lead a technical team. Others say it’s not necessary.
I believe if you are a technical manager directly managing developers, you need to be good at coding.
I have seen many software managers who are clueless about their codebase. As a result, they make decisions that are not in line with the technical needs of the application. They also don’t know which developer is truly contributing and who is faking it.
This usually causes frustration on both sides and ultimately leads to the team’s poor performance.
Let’s look into seven reasons why software managers with good programming knowledge have definite advantages over their peers.
1. They can build a solid vision for the systems
Applications need long-term technical vision to remain valid for an extended period. They need to evolve and stay relevant to their customers’ needs.
Often, companies build incredible products that fail to keep pace with market demand. They start great. But due to poor management with no technical vision, these applications become legacy before realizing their full potential.
A technically savvy manager with excellent development experience understands how to shape the future of the application.
They know constant technological improvements are equally necessary as continuously delivering business features. Their vision helps the teams produce quality products that meet functional and technical needs.
This also helps the company prevent stagnation by ensuring the team is constantly learning and investigating new technologies. All this together keeps the team’s motivation level high and the customer happy.
2. They can empathize with their developers
Having faced the challenges of a programmer in their career, technical managers can relate to them better. They can understand what motivates the developers. This helps managers build rapport with their teams.
It can get frustrating when the manager does not understand developers’ everyday challenges at work.
Technical managers know programmers need uninterrupted time to think and write code. Hence, they do not burden their team with unnecessary meetings. They also prefer not to interrupt their team members by frequent ask for status updates.
Efficient tools contribute a lot to developers’ productivity. It is easier for technical managers to understand it as they must have faced similar challenges in their career. Hence, they do not hesitate to invest in quality tools for improving their team’s output.
3. They can better estimate timelines and project costs
Software managers are responsible for providing project timelines and cost estimates. This requires an understanding of how long it takes to implement various features.
Often teams either underestimate or overestimate the efforts required to deliver a project. This can be due to business pressure or their inexperience in providing estimations.
A manager with programming experience can better understand the trade-offs involved in implementing requirements. They will know what is easy to code and what is not. This can help them to guide their team’s estimate accurately.
Also, having a better understanding of the ground-level coding helps managers identify potential risks and plan ahead of time. This can result in fewer surprises during the execution phase.
4. They understand the best ways to interview developers
When hiring a programmer, a manager must make two major decisions. First, to identify the technical skills required for the job. Second, to decide how to assess these skills in potential candidates.
Often non-technical managers give a lot of importance to the candidate’s attitude than their technical expertise.
Attitude is necessary, but it needs to be paired with good coding skills. A poor programmer with a good attitude might create less friction for the manager. But they will create more problems for the rest of the team.
A manager who knows how to code can use their experience to assess the potential candidate effectively. They can better evaluate the depth of a candidate’s knowledge and suitability for the team.
This can help managers weed out people who claim to know a lot but do not have the required technical skills. Doing the interview right can help build a strong team with appropriate expertise.
5. They can represent their team better to the senior management
A team’s success depends on how well its manager can represent them in front of the senior leadership. The manager is the voice of their team and needs to fight for them.
A good manager without technical expertise might as well support their team. But when they come under intense scrutiny, they may not know how to justify the technical details.
A manager with coding experience can stand up for their team better. They can explain why their team needs more time or resources to complete a project. They can also use their expertise to explain why an upgrade or a technical shift is necessary.
6. They can better assess their developers’ performance
Managers who are good at coding have an advantage in evaluating their developers. They can easily identify incompetent programmers as they understand a developer’s skillset better.
In software development, someone spending long hours at work is not the same as contributing the most to the team.
Incompetent developers can spend days in front of their system without delivering anything worthwhile. Simultaneously, efficient programmers can contribute a lot without doing frequent late nights.
An excellent technical manager can understand the genuine contribution of each developer. They will know how to evaluate a developer’s performance properly.
This can promote meritocracy based on contribution and not on showmanship.
7. They can communicate better with stakeholders
Building trusted relationships with stakeholders is highly essential for a software manager. Their delivery success depends on how much support the team gets from everyone in the company.
Managers who are good at coding have a distinct advantage in building rapport with their stakeholders.
Such managers can translate the technical challenges into simple business language for their customers. They can help clients understand why certain features need extra time to code or cost more.
Stakeholders will be more willing to listen to a manager who they know understands both business and technology.
Simultaneously, these managers can better explain business challenges to their programmers. They can quickly identify potential solutions and workarounds thanks to their technical expertise.
As a result, the collaboration between clients and teams will be smoother, leading to better delivery.
At the same time, much time is wasted in friction between interlocks in enterprise applications.
A manager who is good at programming can effectively coordinate discussions between application teams. They can use their position and technical expertise to drive the conversations and arrive at mutually beneficial solutions.
I have worked as a software developer for 16 years. Among all the leaders I have reported to so far, the ones with good programming experience have been most beneficial.
This does not mean the manager should spend most of their time coding. It is better to remain an individual contributor if you want to focus on programming heavily.
It can even become a problem when the manager cannot let go of the urge and spends too much time writing code. But that’s a topic for another day.
However, being technical and keeping pace with the programming world can help managers better understand their developers and manage technical challenges.
Hence, I believe being good at coding is a major asset for software managers.
What do you think? Do you believe that software managers need to be good at coding? Let me know in the comment section.
Subscribe to my free newsletter to get stories delivered directly to your mailbox.