If you spend any time on developer-dedicated forums you’ll notice a common theme of programmers loving to hate on their managers. The issues seem to magnify if the manager never held a coding job and doesn’t have the necessary technical knowledge about what the developer actually does. On the other hand, good developers don’t automatically make good managers.
Here are some of the common problems developers encounter with their managers, at least from my perspective :)
Micromanagement and meddling
For many developers, the only way to earn a promotion is to take the manager route. If the best developer on the team gets promoted their time then has to be split between coding and managing other people’s work. Unfortunately for developers on their team sometimes they can be much worse than managers who don’t code. Instead of keeping their eye on the big picture they can be sidetracked by little details and insist on being involved in every minor decision. Reluctance to trust in the capabilities of others, being afraid to delegate, always expecting perfection are some of the characteristics of a micromanaging boss.
Ideally, a good manager should have both the technical but also soft skills necessary for a leadership role.
Time estimates and impossible deadlines
“I love deadlines. I like the whooshing sound they make as they fly by.” -Douglas Adams
Software development is not an assembly line. Time estimates are tricky to get right even for the most experienced developers and project managers. Sometimes a task that seems simple at first will become a major hurdle as problems around it multiply like rabbits. A good manager understands this and will work with their team to find the right solutions; whether it be scope creep, funding resources, more manpower, or simply access to information. A bad one will talk about deadlines and lay down the law. The bad solution usually leads to a lot of overtime work. But every overworked developer is familiar with the concept of “negative work” where the code you write is so bad and riddled with so many bugs that it would have been better not to write it in the first place. Bad code only increases the amount of remaining work.
Too many interruptions
Must attend every meeting and reply to all emails. Every developer has their own quirks and a preferred way of working, but what no one likes is the constant interruptions. Software development is complex, multifaceted work highly dependent on the programmer’s state of mind. Meetings and endless emails can help in giving clear direction and setting goals but trying to fine-tune an intricate algorithm require a certain brain shift and endless disruptions certainly don’t help.
Managers seem to be obsessed with measuring productivity. The most hated word on the aforementioned forums is JIRA. On one hand, tracking everything that you’re doing is good for technical documentation, yet on the other abundance of these minor tasks can be a major impediment to the core work itself. So how do you measure productivity? By counting lines of code, or bugs fixed, or new features added? Every method has its pitfalls and can be gamed by various means like writing lines of useless code, or intentionally creating bugs and then fixing them, or writing too slowly in an effort not to create any if that’s the metric that counts.
The main objective is finishing the work, and to do that managing the workflow, delegating tasks, and tracking bugs should be imperative.
But how do you measure the elegance of smartly crafted code that gets the job done? (you’re welcome, my fellow developers)
Lack of empathy
The ability to put yourself in another person’s shoes and really understand others’ points of view is essential when it comes to being an effective leader. However, despite all those business brochures emphasizing the necessity of soft skills, many managers lead with intimidation and fear. Everyone probably has at least one horror story with managers who can’t control their temper, who are self-centered, don’t communicate, or manage conflicts well. Working for such a person can have far-reaching consequences.
However being too empathetic has its drawbacks as well, like excusing all sorts of behavior, the inability to say no, avoiding unpopular decisions. Being considerate, kind and thoughtful can sometimes be too much of a good thing.
Being a good manager is about finding the balance between empathy and the ability to say no, all the while leading the team with a clear sense of direction.
Thanks for reading this article! Leave a comment below if you have any questions.