There is very little difference between an engineering manager and traditional business manager. Both types of managers need to be able to organize, motivate and help teams as well as meet business goals in a cost-effective way. The difference is the work that is being managed.
According to Lorenzo Pasqualis, vice president of engineering at DreamBox Learning, to be an effective manager, you need to be a domain expert in whatever it is you are managing.
“An engineering manager needs to understand the work of software engineers and guide them through a career path that is very technical. Without that programming background, it is unlikely that an engineering manager could gain the respect of their [team] and lead them appropriately,” he said.
RELATED CONTENT: Defining development roles in today’s modern software world
Yoav Cohen, CTO and co-founder of the data security startup Satori Cyber, also explained that an engineering manager “that is viewed by his or her team as not technical enough would find it hard to drive the team to deliver extraordinary results due to lack of credibility.”
However, Cohen noted that there is a fine balance between having that technical knowledge and knowing when to use it.
To code or not to code
According to Scott Berkun, author of “Making Things Happen: Mastering Project Management,” how hands-on a manager needs to be really depends on the size of the team. If it is a team of six to 10 people, there should be enough programmers on the team to do the work without the manager stepping in.
Pasqualis explained that while coding is a way for managers to stay close to the technology, it is very rare that they will be able to consistently produce production-quality code and excel as a leader.
“The reason is that the two types of work are very different,” he said. “Coding requires intense uninterrupted concentration, while management requires dealing with constant interruptions and context switching. Being able to do both is not something that a lot of people can do in practice.”
Instead of coding as part of a team, Pasqualis recommended managers code in their free time.
If an engineering manager takes on the same tasks as the team as part of their everyday responsibilities, it creates a confusing dynamic, according to Richard Wong, vice president of engineering at Coursera. Wong found that when managers code, they will only spend time on the interesting tasks and leave the less interesting, more tedious stuff to the team. That can cause the team to feel very unsatisfied. “A manager’s contribution is not as big as the damage they can do to their team,” he said.
“Many people don’t like the managers they work for, and the reasons are pretty consistent… they don’t feel like they are trusted, they aren’t given work that is challenging or interesting, and they don’t feel like their boss looks out for them,” Berkun added.
Cohen believes managers should still be able to code though, just not 100% of the time. According to Cohen, coding can help managers understand their teams better as well as the work. Some tips he has for continuing to code while managing include:
- Setting up the development environment on their laptop. “This alone will surface a lot of workarounds, tribal knowledge, and technical debt, especially around developer productivity,” said Cohen.
- Picking easy tasks like fixing a typo in the user interface. This will help managers experience the end-to-end process of committing code and how it makes its way into the product, according to Cohen.
- Taking on less critical tasks in the backlog. “Pick something small, around two hours of uninterrupted work, which you might be able to get done in 1-2 days, depending on how busy your calendar looks like. Get help from your team members if needed, they’ll jump on the opportunity to deliver more value,” said Cohen.
“The role of management should maximize the impact of the company by understanding what are the most important goals of the company and how to contribute to those goals,” said Wong. “One skill that is hard is that even if managers aren’t coding, they definitely have to have good empathy for technical challenges associated with engineers. If they don’t understand it they need to be able to ask and learn about it.”
How technical should managers be?
While it is possible to manage a software development team without having an extensive programming skillset, Cohen believes in order to truly be a successful engineering manager they need to have a programming background.
As you go higher up the corporate ladder, Pasqualis explained the need to have a programming background will go down, even if the company has a software division. “It is probably possible for a CTO or maybe even a VP of engineering to be more high-level, assuming that there are several layers of middle management under them that are deeply technical,” he said.
But for managers directly involved in the software engineering team, they “should have substantial background, and be experts in the field the team operates in,” said Cohen.
Great companies are the ones that will even go as far as placing newly hired managers as team members for a few months before officially taking on a managerial role just to ensure they have the right level of background to be effective as managers, Cohen explained.
This can be effective because for any given team, engineering managers need to understand the process their engineers use to make decisions, to prototype, to test code, and to do all the software development related things necessary, according to Berkun. “If a manager doesn’t understand those things well, how can a manager go into a meeting and make a decision on behalf of their team that isn’t going to cause them a lot of pain, suffering or effort,” he said.
According to Berkun, having technical understanding is not the same as knowing how to code. It is more about understanding how decisions are going to impact the people coding. “You don’t need to have a computer science degree to have that kind of awareness of aptitude,” he said.
For managers that don’t have a software development background, Cohen explained the team will need to be set up in a way to compensate for that. “One way to do that is to introduce technical leaders that are not managers to take on more of the technical leadership work, leaving the manager to focus on people management,” he said.
The most successful non-technical manager relies on their domain expertise in other fields such as quality assurance, project management and product management, Cohen added. “I believe that people management principles are applicable and transferable across many fields, and engineers are not unique in that respect,” he said.
However Cohen does note that the speed in which technology is evolving is different on a software development team than other teams, and managers need to be able to lead their teams not only from people skills, but from their technical skills.
Managers should be constantly keeping up with the latest tools, frameworks and technologies. This doesn’t mean they have to read every single book and blog post to understand what is going on, according to Wong. Instead, they should delegate and have team members assigned to go out, find what is going on in a particular area, and come together to share their research and findings. “Then the leadership will be able to understand the trends and make decisions on behalf of the team,” said Wong.
How to transition from programmer to manager
Since manager and developer roles are very different, not every developer is going to be well suited for a managerial position, and they should really take into consideration the different roles and responsibilities before taking the leap.
When you have a programmer move into management, you get a Peter Principle effect, Berkun explained. “Someone may have been a great programmer, but now you ask them to be a manager that is more about communication, setting goals, dealing with politics, which they may not have any aptitude for at all. They are put into that role because they were good as an individual contributor and that happens way too much in organizations.” said Berkun. “In many organizations, the only way to get promoted is by moving into management, even though a developer doesn’t really like it and isn’t really good at it, that is the only path they are given.”
The prime candidates for managerial roles are engineers who are passionate about leading people and are able to positively influence others, according to Cohen. “Identify those people who have potential and have conversations with them to make sure this is something they are passionate about,” he said
What ends up happening if you put a developer who isn’t well-suited to be a manager in that position, is they become micro managers because they know they can just jump into the code, look around, and fix things, according to Berkun.
Developers also have a certain style of getting things done and expect their team members to follow that same style when they become managers. “When the team deviates from their behavior, they think the team is not doing a good job without seeing the actual outcome, how they collaborate, or the final impact of the work,” said Wong. In order to let the team and team members become successful, the manager has to let people make mistakes, embrace different working styles, and understand how different types of people working differently can result in the same impact.
Additionally, Wong explained that it is hard for someone to give up something they were really good at and do something they aren’t so familiar with. They have a natural tendency to do things themselves because they know they can do it faster and better than the people on their team. “The problem, though, is even if you can get it done faster, if you don’t give people the opportunity to learn, grow and even make mistakes, they will always take longer to get the job done,” said Wong.
“The switch to focus from just technology to technology and people is perhaps the biggest barrier for a software developer to become an effective engineering manager. Engineering managers, to be effective leaders, need to be able to define reality for others and communicate complex ideas with simple words. Moreover, they need to be able to hire great people and create an environment where those people can thrive and grow, including fostering a high performing culture of innovators,” Pasqualis added.
While managers need to ensure work is getting done and teams are operating smoothly, it is still important to allow team members to be able to contribute or express their ideas. According to Sergei Anikin, CTO of cloud-based sales software company Pipedrive, managers and leaders need to give team members the time and opportunity to step outside the status quo and create freedom of thought, or a “culture of choice.” He explained too often team members are undermined or ignored when they try to bring new ideas to the table.
One way Pipedrive enables team members to contribute is through “Pitching Tuesdays.”
“Every Tuesday, across our organization, team members from every level have an open forum to propose projects/initiatives (missions) and present them to the entire company. The best and most pressing ideas are put into action. The team members who propose the mission then work to coalesce an appropriate group to address the challenge,” Anikin said. “The team members for each mission are naturally attracted to the projects they find most interesting and compelling. They are invested in the project and motivated to discover a solution. With team members choosing projects they are most passionate about; we have created a ‘culture of choice.’ ”
According to Anikin, Pitching Tuesdays have enabled his company to define a culture, serve as a training ground for leaders, and explore new ideas. It is especially important that leaders go into something like Pitching Tuesdays with an open mind.
“Managers are using Pitching Tuesdays to grow and become better managers. Remember, Pitching Tuesdays are a focal point to drive our self-managing, agile organization,” said Anikin. “And, the journey from a traditional hierarchical management structure to decentralized, self-organizing teams requires a lot of confidence and commitment and deep understanding of reasons behind the change.”
Some ideas that have come out of Pipedrive’s Pitching Tuesdays includes Leadbooster, a conversational bot that engages with web visitors in order to find leads and help book meetings.
“Because our development team is connected to the product team and customers, we were able to identify this need with Pipedrive customers. As a result, our entire Prague team engaged and developed this capability over a period of months, including testing and feedback from customers,” Anikin explained.
In addition, Pitching Tuesdays led to Hovercards, a capability that allows Pipedrive users to hover over information and see details without having to navigate away from the current view.
“In a Pitching Tuesday session, the development of Hovercards started like all missions begin — with a problem statement. The problem is always from the customer’s point of view,” said Anikin. “Great leaders understand they can control the effort, but cannot control the outcome. To get the best effort and an opportunity for the best outcome, senior leadership will support and encourage a joint team effort through commitment and buy-in.”