It is very common for new managers, especially the ones with no technical background to find managing engineers a bit difficult. Some find it intimidating because they are not very knowledgeable about the technicalities of the projects. Others overlook the importance of engineering and often lose some of their leadership within the engineering team. In both cases, managers either force their decision using their managerial authority, or they totally lose control over the project's course.
As an engineer who participated in many projects where I was both managing and being managed, I would like to share with you some of the things a manager should be aware of before managing a team of engineers.
Engineers are known to have an attention for details and specifics. When writing requirements (user stories ), make sure you are as specific as possible so that you can get exactly what you need, nothing more or less. If you are not specific enough, an engineer will either do the minimum possible for the task to be legally considered "done" or will end up spending too much time doing more than he was asked for. In both cases, it's a loss. Do not assume anything, write it all down.
DO : the user should be able to see a button close the chat input, which leads to his gallery of pictures, he can choose at most 10 pictures to send. He should be able to see the progress of the upload for each picture on a blurry preview.
DON'T : the user should be able to send pictures on the chat.
Don't override technical decisions
Sometimes, engineers will try to defend some technical decisions which wont necessarily change the business outcome, but will make their work more efficient. In this case, you should try to understand if their decision is a response to an urgent problem or can it wait. If it can wait, you can delay it for later, if not, you should apply it. But rarely use your managerial power to override technical decisions. You want to lead without authority.
Another important thing is, you should share with the engineers your thoughts process before you say Yes or No. This way, they can also learn how to prioritize on their side. More on this in the next section.
Engineers are not pairs of hands
No one likes to be treated as a pair of hands, people might be enthusiastic about solving challenging technical problems for a while, but if they feel disconnected from the end result, they will certainly be somewhat disappointed. It's like when you are an intern somewhere, and you know no one cares what you are doing and that you have no impact on anything. Sometimes, very smart engineers perform miserably just because they can't see the value of their work.
Do not hesitate to share the long term vision of the project with the engineers you are managing and take their input into consideration.
Do it yourself if you can
Value their time. Do not call for an engineer to write you an sql query you could do yourself with after some googling, or by using a BI tool instead. Disrupting someone's flow of thoughts every now and then shows that you value your time over theirs. As a manager, you should be the one who unblocks team member not the opposite.
DO : make different attempts to troubleshoot the problem. if it doesn't work, ask for help and tell them what you tried.
DON'T : immediately call for help when you get a technical problem.
Don't neglect technical debt
One of the main struggles of engineers is explaining technical debt to management.
Definition by example, imagine you are an artist and you have a set of tools that you use for painting. At first, you have all your tools clean and organized. The more you work with them, the more they deteriorate, and the harder it becomes to do your work. At some point, you can't help but take some time to clean and maintain your tools. That's a simplified definition of technical debt.
If your engineers are talking about technical debt, listen to them and try to negotiate how soon they can take care of it instead of just ignoring it. If it becomes too hard for them to do the most simple tasks, you end up with a project nobody wants to work on due to how difficult it is to change and maintain. Learn to empathize.
Read the documentation
As a manager, you should take a look at the technical details of what your team is working on. Read the documentation, participate in the testing process and understand technical obstacles. The documentation contains the knowledge every team member should have access to in order to have a healthier conversations about the technical aspect of the project.
In this article, we discussed some of the main ideas to keep when managing engineers. Each one taking into consideration the concerns of engineers and aligning them with the project goals without using managerial authority.
I hope this article added value to you, do not hesitate to recommend and read more on the blog. Thank you for your time.