Managers who can’t code are an outdated artifact of corporate America circa 2005. The best managers that I’ve had spend ~80% of their time coding, architecting, or doing technical work that requires engineering experience. If your manager thinks coding and other technical work is “beneath” them then they need a dose of humble pie. Your organization would likely be better off without them.
But Managers Manage People!
There is a long-running stigma associated with developers. The idea is that we are all geeks who can’t handle interpersonal relationships. Due to our code-monkey nature, we need “people people” who can go to meetings for us and communicate our efforts effectively to the higher-ups.
While the above is still funny, it’s outdated. As the developer community has grown exponentially in the last 20 years, so too has the personality diversity among its members. In other words, it is not hard to find developers with the soft skills necessary for management positions.
Managers Should Help
I am a firm believer in the following:
It doesn’t make sense to hire smart people and tell them what to do; we hire smart people so they can tell us what to do.
– Steve Jobs
While the manager doesn’t need to be the most talented developer on the team, they must at least be technically literate. When a team member goes to their boss with a technical proposal, the manager should be able to give valuable feedback.
In this study from Harvard 35,000 employees from the US and Great Britain were polled about their job satisfaction, and metrics were gathered about what influenced their happiness at work. The results showed that the single greatest influencing factor on employee satisfaction was whether or not their boss was technically competent. I practice what I preach, so at Boot.dev, all engineering leadership will forever be responsible for pushing code.
Contrast the idea of a competent boss with the all-too-familiar experience of going to a non-technical middle-management type with an engineering problem, only to be stuck in a teaching session because the boss has never heard of a pub-sub system.
Managers Need Empathy
A good manager has empathy for those who report to them. If the boss doesn’t code or hasn’t written code in a long time, they won’t understand the daily problems that their team is faced with. A good engineering leader will not only understand modern problems, but they make it their role to actively seek technical solutions in an ever-changing innovative landscape.
INB4: “So the CEO needs to be able to code?”
No, but the CTO does.
I am sympathetic to the idea that the CTO will have plenty of business and product-related work to focus on, but they can’t let their technical chops slip. To run the engineering arm of an innovative company, the person at the top should have a firm mental grasp on the implementation difficulties. If this just means reviewing architectural diagrams and reviewing pull requests so be it, but nothing beats hands-on engineering work to stay sharp.
Have you had problems with non-technical leaders, or do you disagree completely with my opinions? Let me know on Twitter.