A Developer’s Guide To Becoming an Effective Developer Manager
Congratulations! You’ve just been promoted from senior developer to developer manager—and just came to the realization that managing a team of developers requires significant cross-functional skill sets.
Foundationally, you know that in order to be a successful developer manager, you must be knowledgeable when it comes to software development, be passionate about the value of security, and come equipped with communication skills that will enable you to bring siloed teams together. More often than not, these skills will come naturally, but there may be areas where you could use some insight.
Worry not, because that’s what I’m here for! I spoke with a handful of my fellow colleagues about what they think are the most essential qualities to have as a developer manager, in order to lead a successful development team. In this post I’ll share my findings with you, helping you get off to a good start in your new role.
Become a Supportive Advocate
One principal software engineer shared, “Always be the team’s advocate, protect the team from the often-changing priorities and occasional unreasonable demands from higher up.”
Unreasonable requests can cause unnecessary stress and disrupt or even derail projects. So it’s important to know the difference between recognizing and communicating a five-alarm fire situation and a simple fire drill.
Being supportive includes:
- providing opportunity for professional growth.
- being an anchor for your team and their spirits.
- acting as a bridge of communication between siloes often, such as security and development.
- nurturing soft skills (this article is a good place to start).
How can you be a bridge of communication between siloes? Facilitate shared expertise and experience through appointed representatives on different teams, or through your own words on a regular basis, make sure everyone is on the same page.
Be a Tank for the Team
A software engineer I chatted with stressed the importance of managers protecting their teams to shield developers from organization overhead. “Push back to give developers the time to do things right,” he said. “But ensure that ‘right’ is always aligned with business interests. Security usually is!”
We should know our team can buckle down under pressure and get things done. Having a manager to shield teams and allow them to keep projects on track and meet deadlines is important. He also mentioned establishing boundaries with other team leaders so that:
- everyone understands how your team functions.
- everyone knows which tools your team uses.
- everyone understands one another’s communication preferences.
It’s only a matter of time before a project request is made with an unrealistic timeline expectation. Instead of passing that on to your developers to stress over until they either fail to hit the deadline or complete it with poor quality, communicate with higher-ups and with your team on the situation. Let your team know you don’t expect them to complete the project in the timeline given and to prioritize and focus as best they can. Communicate with those outside of the team that this deadline is not possible and rushing this project will result in a product that is less than the quality you hold yourself and your team to.
Set Realistic Timeline Goals
Another software engineer highlighted the importance of deadlines when trying to code. She said, “Understand that it's very difficult to actually figure out how much time something will take if things are done properly. And ignoring technical debt—the cost of additional rework caused by choosing an easy or limited but less efficient solution upfront—makes working conditions worse.”
It’s a reality that projects change on the fly, but setting expectations ahead of changes of direction or implementing steps to manage these changes are important to keeping a happy, healthy team of developers.
Overlooking security debt can also create further issues and place more pressure on teams of developers to write quality code under deadlines. You should work with the security team to set priorities for remediating vulnerabilities.
Provide Mentorship Resources for Success
Experience varies within a team: Some developers have been working for years; others have just begun their journey. It's important for a developer manager to make sure less experienced team members have access to the resources they need. Indeed, an experienced DevOps engineer I know shared his experience on this. “I think development managers should provide any resource the developer needs for success. A development manager also needs to offer some type of mentorship program to less experienced developers.”
Being a mentor can involve simple things like providing opportunities for developers with an interest in security or recommending materials (like this) that helped you along your career path. You can consider creating a security champions program to empower a team member to keep security top of mind. For example, a security champion can then encourage the team to shift security left in the software development lifecycle (SDLC), reducing the number of flaws potentially discovered later in development.
Offer Engaging Training Solutions
Developer training is essential to the growth of your team and to the business overall. As the development process gets quicker and security shifts left, developers need to be confident and equipped to spot and fix vulnerabilities before they become a problem.
The director of product management and strategy I spoke with offered some thoughts on this: “Support training initiatives.” These can range from eLearning tutorials and courses on various languages to workshops and webinars that cover professional growth, ideally with interactive training that allows for hands-on practice.
Now, more than ever, your development team needs the skills, tools, and ongoing training they may not have had in school or early on in their careers when it comes to security. Look for online education, secure programming workshops, and hands-on training opportunities that teach developers how to exploit and fix real-world vulnerabilities. Is a team member struggling with Java? Point them to a resource that can help. Lead by setting an example, and show your developers that they should never stop learning if they want to be successful.
An Effective Developer Manager Leads by Example
It all boils down to a simple principle that every type of leader should maintain whether for a developer manager, a CEO, or a captain of a soccer team. Lead by example. If you want your team to be supportive of one another, be supportive of them. If you want your team to be organized and on top of it, empower them with the tools and resources they need to be effective.
Think of how you got to where you are today: the resources, training, or mentors you had that helped you learn and grow; the articles you read and what support you wish you’d had. Provide those same resources to your team, and do your best to be that mentor to them.