Working as software engineering management is no easy feat. This job requires exceptional patience and excellent time management skills. It also requires an ability to guide projects and work closely with other employees.
Take a look at any successful development team, and you’re bound to find a great manager working behind the scenes. That’s just the way it is.
This post outlines some common challenges that software engineering management face every day, as well as some strategies that you can use to up your game and enhance your department. Keep reading to learn more about what it takes to be a better software engineering manager.
Common Mistakes That Software Engineering Management Make
Every day is a new adventure in software engineering management. Projects are rarely cut and dried, and as a manager, you need to be ready to field a variety of issues that may come your way.
How you respond to challenges as a manager will have a big impact on your overall career trajectory—and the success of your team and company.
For example, if you keep a level head and respond efficiently, you could rise to director or executive status. But if you fail to drive optimal results or if you let team members and projects get the better of you, it will be difficult to advance in your organization or industry.
As such, it pays to focus on improving however you can.
With this in mind, here are some common issues that software engineering managers often encounter.
Mistake #1: Thinking Like a Developer
Successful developers are often moved into management roles assuming their skills and expertise will automatically transfer. But oftentimes, highly successful employees with top-notch skills fail to be great managers. In large part, this is because they lack the right experience or an ability to work with others and motivate them to perform their best.
In light of this, it’s important to adjust your mindset before stepping into a role as a manager. As a best practice, stop thinking like a developer. Instead, start thinking like a supervisor, coach, and mentor. You may even want to take a leadership course and consult with other managers to gain expert insights and pick their brains.
We sat down with AMEX VP of Technology, Sarvenaz Myslicki, to get her take on how to fix tech’s mentorship problem. Check it out below.
Mistake #2: Missing Iteration Deadlines
Iterations don’t always go according to plan. For example, team members may change positions or take leave. And other projects or issues sometimes may materialize and get in the way, making it difficult or impossible to meet deadlines.
Good software managers are realistic about project deadlines and avoid overpromising to stakeholders. Remember to budget for challenges and delays so that you always have wiggle room before deadlines.
Mistake #3: Mismanaging Workloads
Workload distribution is a delicate issue for software teams. In some cases, managers tend to dump more work on developers who are highly capable and proficient. It can also be tempting to avoid giving exceptional developers too much work out of fear of causing them to burn out and quit.
As such, workloads often lack proper distribution and balance. And when this happens, team members can become unhappy.
Good managers are strategic and fair when distributing work. To this end, one strategy is to make workloads public to team members so everyone is on the same page about what others are doing throughout the day. This can avoid conflicts and build trust with team members.
At LinearB, we track WIP by correlating data across your tools to identify when someone may have too many active branches or has worked too many days in a row.
Many managers choose to discuss workloads openly during iteration planning. In these meetings, team members should be able to share what they have on their plate and request support if they need it. By taking this approach, it’s possible to make sure everyone feels good before the sprint begins.
Mistake #4: Ignoring Code Smells
Code smells are red flags within source code that indicate a potential deeper underlying issue. This can include issues like duplicate code, dead code, and message chains.
Despite what the name might suggest, code smells are generally positive because they help reveal technical issues within applications. They also sometimes expose interesting problems and opportunities for improvement.
But identifying smells is only half the battle. Discovering and eliminating root issues is another challenge entirely. And unfortunately, it’s common for managers to ignore code smells and wait for underlying inefficiencies to become bigger problems before they take action.
It’s possible to avoid complications by encouraging team members to detect and eliminate smells during development. In fact, some managers even choose to reward developers who discover and fix smells before they make it into production. This helps create a culture of preventative maintenance—and a team that delivers higher-quality software.
Mistake #5: Overlooking Security Vulnerabilities
Engineering managers can no longer sit back and expect security teams to protect their code. More and more companies are merging development, operations, and security into DevSecOps and asking developers and managers to take on security roles.
Overlooking issues like permission escalations, vulnerabilities, and cloud misconfigurations opens the door for critical cybersecurity issues. These can threaten operational stability and require expensive rework. Software engineering managers should therefore consult with security specialists and cross-train developers to learn security functions.
Making security a team-wide effort and encouraging more testing during development create a safer and more efficient environment with fewer incidents and production bottlenecks.
Tips for Being a Better Software Engineering Manager
As you can see, managing software engineers is no walk in the park. Many issues can disrupt software delivery pipelines and push projects behind schedule.
But with the right engineering management platform, strategy and a proactive mindset, it’s possible to avoid complications and improve productivity and output. Here are some tips that you can use to improve workflows and build better relationships with team members and executives.
Tip #1: Maintain Deep Visibility
One of the best things you can do as a software engineering manager is to have deep visibility across all levels of production. In other words, you should be able to access instant status updates over a single dashboard and track key performance indicators during iterations.
Check out this awesome dashboard we use for our standup. It identifies who’s blocked, who has too much WIP, and if our work is aligned with the business priorities. Learn more about Pulse!
Tip #2: Establish Real-Time Communication
Communication is critical in a busy production environment. It’s a good idea to centralize communication over a channel like Slack, Discord, or Teams. This way, your engineering team members can quickly and securely ask questions, share ideas, and work through problems together from any location.
Tip #3: Be Empathetic and Inclusive
Being a successful manager means working with others who have cognitive, emotional, and physical differences. One of the most powerful things you can do as a manager is to be empathetic and inclusive when working with others. When you take the time to understand their needs and working habits, great things happen.
By doing this, you will build trust with your team members and develop closer relationships. This can lead to a healthier, happier, and more productive work environment.
Tip #4: Use Data to Inform Decisions
Managers act as liaisons between developers, executives, and customers. To be a good manager, you have to communicate project delivery updates with confidence and accuracy.
The industry average for planning accuracy is below 50%, which means software development managers are wrong more than they’re right. This is because the standard issue tracking and Git tools are just not good enough. It’s difficult to extract insight. There’s a lot of manual work. And issues are not well organized.
With the help of LinearB’s Project Delivery Tracker, it’s much easier to improve your planning accuracy and let stakeholders know about upcoming delivery times. On a single dashboard, you can see investment being made by issue type, allocation of employees by project, progress of projects, your planning accuracy, and delivery reports.
Grow with Our Community of Engineering Leaders
Finally, if you like these tips, join Dev Interrupted, our community of engineering leaders. Join our Newsletter and subscribe to our weekly podcast, where our COO Dan Lines interviews engineering managers from companies like Stack Overflow, GitHub, and Netflix.
Also, sign up to attend Interact, our free, virtual engineering conference. Twice a year we bring together the brightest minds in the industry to discuss how to improve engineering efficiency and developer workflows.
Join our 3-part summer workshop series for engineering leaders