Engineering Management: The Nine Challenges by@alex.circei
710 reads
710 reads

Engineering Management: The Nine Challenges

by Alex CirceiOctober 14th, 2020
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Engineering Management: The Nine Challenges: Engineering Management. Pusher Engineering Manager David Ives: Engineering manager is a Sergeant Major. A good engineering manager knows how crucial it is to provide a productive development environment. Git Analytics tools can help you spot engineers at risk of losing motivation and fix issues before they impact the project. The Spotify model is the model of this practice with the Scrum network network, and Spotify started working with Scrum teams with a similar model with their Scrum-network model.
featured image - Engineering Management: The Nine Challenges
Alex Circei HackerNoon profile picture

“I would describe an engineering manager as a Sergeant Major. They are very much part of the mission delivery team and manage a group of experts to perform specific tasks,” says David Ives, Engineering Manager at Pusher.

1. Motivating their team members

Motivation might not be exactly a tool, yet it keeps people interested and driven towards a goal. As a manager, you can do your best to keep the spirits high, but you should know that the most effective way of getting your team motivated is to give them projects that balance their skills with their interests at large while still keeping the tasks challenging.

Why do engineers lose motivation

Engineers can lose motivation by being regularly assigned to trivial tasks, staying stuck with a problem for a long time, or the lack of recognition. Git Analytics tools can help you spot engineers at risk of losing motivation and fix issues before they impact the project.

How to keep engineers motivated

Another way to keep the people focused on the final goal is to show them the impact of their work in the company. Everybody likes the sense of ownership, feeling like making a difference, like contributing to something bigger, especially if these individuals value their visibility in the company.

2. Improving team performance

You can’t improve something if you don’t measure it. Before thinking about improving your team’s performance, you have to start measuring it. In this way, you can understand your current level. 

Defining team performance

While doing this, you need to create your own definition of performance. Then, compare it with the metrics you’ve gathered. In engineering, we encounter another problem: what metrics should we use to measure our teams’ performance? Several engineering performance metrics that engineering managers follow include impact, efficiency, time to resolve, and review coverage.

Aligning engineering performance to business

People tend to change their working system to obtain better results once managers evaluate the performance based on metrics. This is why you have to align metrics with your business goals. Sticking to old productivity metrics like Lines of Code or function points delivered, you risk creating an unhealthy team environment.

3. Setting clear goals and expectations 

One of the responsibilities of engineering leaders is driving the team towards a common goal. To do this, you have to consider the working style and efficiency levels of your team members. After that, set clear expectations from them.

Prashant Pandey, Head of Engineering at Asana, claims that “At Asana, we believe in creating alignment through clarity. It’s how we approach building our product and how we set our goals as a company.”

Improving visibility across the engineering department

If you want to make your business more agile, you need to improve the real-time visibility across the engineering department. Increased visibility will allow you to prioritize goals and make data-driven decisions.

When it comes to engineering leaders and their role in the organization, Prashant also argues that “one of your key responsibilities as an engineering leader is to create clarity out of ambiguity. If you find yourself in this position, think of it as an opportunity—not just a challenge—to take something vague and give your team clarity on how to approach it. You’ll earn credibility when you can create a clear plan for both your executive stakeholders and your team.”

4. Providing an environment that encourages development

When talking about the success of development teams, the working environment is often neglected. A good engineering manager knows how crucial it is to provide a productive development environment. 

How to encourage personal development

Whether we are talking about giving your team the right tools, finding a balance between releasing new features and refining existing ones, or designing onboarding processes for new engineers, managers are the key to creating an environment fit for progress.

A good leader will recognize the potential of onboarding as a tool for empowering new hires. It can also give existing team members the chance to share their knowledge and mentor. Like this, your new team members will feel welcomed and able to find their bearings faster. You will also be able to detect team members with leadership qualities and define their growth trajectories.

5. Creating a strong team culture

One of the most exciting aspects of engineering management is creating a unique team culture. Our advice is to understand the existing team culture, how the team functions, and what works for them. After you’ve acquainted yourself with your team’s habits and practices, you can build from there and implement new things.

The Spotify model

A good example of this practice is the now-famous Spotify model. Spotify started working with the Scrum network. Over time, as their teams grew, they noticed it wasn’t working well for them anymore.

So, after learning the rules, they decided to break them. More exactly, they got rid of things that got in their way, like Scrum roles, artifacts, and events. Instead, they focused on Agile principles. For instance, they renamed the Scrum Master as Agile Coach because, in their vision, “servant leaders” were more important than “process masters.”

This is how Spotify has created an autonomous, people-driven model for scaling agile, all while emphasizing the importance of culture.

Improving the team culture

After you’ve accustomed yourself to your team’s culture, it’s time to remove the bad habits and introduce some new practices. The best way to determine what kinds of values and practices you should introduce to your team is to define the values that embody the company’s vision and culture. Then, observe if they match your personal preference.

The next step is identifying what behaviors align with these values and encourage them. The introduction of new, concrete practices, like code reviews, weekly development sharing, or hack days, should be preceded by building a foundation of strong values for your team.

6. Mentoring your team members   

You need more than a title to convince people to listen to you; this is why communication skills are high on the list of qualities an engineering leader should have. Everybody can give commands; what makes an engineering manager is the ability to inspire and guide their team members.

The benefits of mentorship

Firstly, we have to admit that mentorship is no easy feat. It’s time and emotionally consuming, yet the results are worth the effort. Mentoring can be a great tool for managers who want to keep their team members engaged, continuously learning, and evolving. 

Gergely Orosz, Engineering Manager at Uber, offers an instructive opinion on this matter: “When they learn, they are engaged. When developers are engaged, they are a lot more likely to stay. Thus, recognizing and encouraging mentorship within teams and companies is one of the most important things managers can do and advocate for.”

As an engineering manager, you can facilitate mentoring relationships because you know your team members’ strengths and weaknesses. You also have the authority to reach out to potential mentors and pair them with apprentices.

If you want mentorship to be spread across the organization, you have to make it a part of promotions, performance reviews, and competencies. Simply put, mentoring should be an expectation from senior engineers.

7. Taking ownership of your decisions

A great leader can make decisions and take responsibility for them. Jace Ju, Senior Developer from KKBox says: “They understand that admitting mistakes is not shameful; instead, it’s a chance for growth. That’s why they’d go back and review their mistakes after the problem has been solved.”

Making mistakes is inevitable, and there’s no need to live with the fear of doing something wrong. This is why engineering leaders have perfected the art of handling mistakes and owning up to their decision. After all, there is wisdom in knowing that you’re wrong.

8. Hiring the right talent

Hiring new talent is challenging for an engineering manager, mostly because they focus on hiring the best talent instead of the “right” talent. As an engineering manager, you need to ask yourself how much a new hire will impact the team and organization at large.

Defining the right talent

To define the “right” talent, an engineering leader must understand team dynamics and short and long-term goals.

As Naveen Veeravalli, Engineering Leader at Uber, eloquently puts it: “There are several things that you need to consider while hiring someone for your team. Are you looking to hire someone who can coach other team members? Do you already have a team of leaders who are thrilled by the opportunity to mentor new engineers and scale the team? Do you have a giant backlog, and you are looking to hire someone to help deliver specific features in the near future? Are you looking for a particular skill that your current team does not have? These are just some plots I’ve been in. There is no general hiring advice that works for everyone.”

9. Using the wrong metrics

We live in a data-driven world, where statements like “information is power” are universally acknowledged. This is why any engineering manager will agree that metrics are crucial in measuring performance and making decisions. Some even believe that the easier it is to collect a metric, the more likely it is useless.

We can give an example in this sense. When Bill Atkinson was a principal developer at Apple in the 80s, he was working on optimizing Macintosh’s fundamental graphics toolbox. He made the region engine six times faster by using a simpler algorithm. While filling out the management form, he was asked how many lines of code did he write. He answered -2000.

The meaning behind this story is that lines of code are an inaccurate engineering performance metric. This goes to show that contributions in software take on different forms. Based on these learnings, Git Analytics tools were created. They help engineering leaders measure their teams' performance with respect to software engineering nuances.

Also published on WayDev