TLDR; Here’s the .PPPPT file of things to do as a Director of Engineering.
There’s a lot of advice out there on the internet for the entry-level positions in software engineering. Do you want to know how to be a good Senior Engineer? Solve lots of problems, ideally with a growing sense of technical, product, social and corporate complexity.
If you want to learn how to make the leap from Senior Engineering Manager to Director, the answer is similar but with less tangible output and outcomes to latch on to. All I can do is speak from my own experience but here is how I think about the broad categories of leadership on the manage-y side of the career ladder.
For managers and senior managers:
You deal with the day-to-day execution and performance of your team. You unblock the team, clarify goals, set expectations and communicate to the broader ecosystem what you are doing.
For directors and senior directors:
You are still, primarily focused on execution but the great ones are frequently learning and applying themselves to the grand endeavor of contributing to “strategy”. Not only are you responsible for doing things but you are also responsible that those things are the right things and that they generally align to the vision, mission and strategy of your company and area.
For vice presidents (and up, let’s not separate out the C-suite today):
Congratulations, you are in charge of the soul-crushing, anxiety-inducing responsibility of setting the direction and strategy. Yes, you will help with execution and you will frequently have to jump in to the messiest situations to support your directors and managers. But your primary job is to look at the vastness of time and space, the wavering and unending distance of the Sahara desert, the dense and inscrutible markings of the slightest path through the Amazon and point your finger and say, “That way”.
The Director Function
Today however, we step back from the abyss and we look at what it is that you will do (or perhaps currently attempt) as a Director of Engineering. In my own history, I have spent years in the nebulous “Head of Engineering” role at a few small startups and I have also spent time in a specific “Director of Engineering” role. While I have been in board rooms, “senior leadership” offsites, and managed everything from a team of four to the entire engineering vision, the Director position is the one that I have inhabited the most thoroughly.
So let’s break the Director role down into categories of work. Depending on the company, team size, culture, and a hundred other variables, each Director position is going to be somewhat unique and the time and effort in each of these categories will swing wildly between roles and even as circumstances change in the same role. People, Product, Process, Public and Tech, these are the five categories of work that you will see on your docket each and every day when you are trying to sort through all of your todo lists.
As a Director of Engineering, your bread and butter is still managing people. You are coaching and training managers underneath you on how, in turn, to coach and train their teams. You are challenging people directly when you foresee a performance problem or you are giving that extra support to a manager who needs to have a difficult conversation.
One of the biggest differences for people management now, in comparison to a Senior Manager, is that you will need to be able to clearly articulate how you think about managing people. When do you promote, when do you fire, how do you exert the appropriate amount of pressure into the system and when do you give someone or a team some space to sort things out on their own. You can do this sort of work by instinct as a Senior Manager, and if you are a manager with relatively high emotional intelligence, there is a good chance that this sort of work comes natural to you. It may even be difficult to explain your actions to someone new to management because you just do what is instinctually correct.
In an effort to hone these instincts into a proactive management philosophy here are some things that you can try:
- Expand your sphere of influence for people management and be seen as a leader in this space for the company.
- Present to your team your approach for career development
- Mentor a more junior manager with a difficult team member
- Participate in any HR-related management committees
- This could be, helping to write or update the company’s career ladder documentation
- Plan a book club for your team on a career-related book
- I recommend starting with “Staff Engineer: Leadership beyond the management track” by Will Larson.
- Get your own leadership coach
- Everyone needs help and if you are struggling with making time for some of this work then find someone who can keep you on track.
The greatest Directors have an uncanny sense of what is right for their product. Not only in the same broad, strategic sense that a VP would have, but in the day-to-day minutiae of building software. Product Managers work best with a strong Engineering counterpart that can help make tough trade-offs between the effort involved and the ultimate impact to the customer.
I don’t believe that “some people just have it” when it comes to product-sense but rather our gut feel and intuition is built on top of a strong and constant exposure to the problem and surrounding market conditions. You have to be right most of the time when influencing Product direction and you have to be confident. The toughest and most critical decisions also tend to attract the largest peanut gallery of people, all of whom are willing to poke holes in your plan but very few are willing to propose their own. To be great at this you have to be confident and resolved, while simultaneously listening to your team, peers and leaders to adjust and flex as needed.
If you don’t feel like you could swap into the PM role for a period of time then here are some things to try:
- First and most obviously, use your own product
- Build something real with it, try and use it like a customer truly would
- Do your own competitive analysis
- Hone your product sensibilities in relation to your company’s business model
- The best way to know you are right and have confidence is to spend time doing competitive analysis
- Talk to Product leaders in other parts of the organization
- Make your own proposals for specific features and show them to your PM team
- Ask for critiques, often PMs will be happy to see an engineering leader willing to put skin in the PM game
- Join customer calls every so often, especially ones that are escalated
Everyone hates process. Good process is good because you won’t be able to tell that any process has happened at all. Also, it is your job to grow and scale processes so that your teams can grow and scale in turn. If you are a Senior Manager then you likely have established a few processes that work well for your team, now it’s time to apply these processes more broadly. This is a good way to learn how to influence outside of the culture of your own team. Maybe your processes don’t work well for other teams, is there a way to adapt the process to be more inclusive of other perspectives? How flexible can you make the process without losing the core value it provides?
Pick a few places to expand on what processes work well for your team and find ways to apply them more broadly:
- Create/own SLOs for bugs, flaky tests, tech debt
- Run a department-wide team meeting
- Improve common processes for collaborating with the Support team
- Investigate pain points in existing department-wide process
- Take on a leadership task that goes beyond your own scope
- Perhaps this is improving documentation
- Clean up the backlog
- Document “unwritten” policies
How much you participate as a public leader in the broader industry is completely up to you but it is a way to grow leadership presence. One of my own weaknesses and a common one for many, is practicing presentation skills. Speaking in front of your own team is one thing, but presenting to hundreds or thousands of people requires effort, timing, charisma and planning.
There are plenty of leaders with rough edges in this space but a great way to distinguish yourself is finding your own voice and style for broad communication. I sometimes joke that being a leader is at least 20% having an “entertainment factor”, if you can make an hour long status update (is this a meeting that should be an email?) fun and exciting, or at least interesting, your team will love you for it.
Here are some easy places to start:
- Contribute to or write a blog post either on your own blog or ideally for your company
- Present at a local meetup group
- Take a current meeting and spice it up…
- Add some memes, tell a story don’t just rattle off things from a list
Finally, unironically last on the list, you should feel comfortable contributing to technical decisions. This is an important aspect of the job but also the area where you have the least expertise, there are plenty of people on the team who can own technical contributions. Your primary job here is to ask questions and watch for over-engineered solutions. Remember, the technical solution must match the customer impact in effort.
You should have an ROI (return on investment) calculator in your head and if an engineer starts describing a multi-week/month solution to a low impact problem it is your responsibility to pull the team away from sunken-cost fallacy and find another way or shut it down. This can be a gut-wrenching, painful experience at times. Once you give an engineer a problem and they become invested it is so hard to turn it back off. You have to show the team that it is not worth solving with the current constraints. Ultimately, you should have some strong Tech lead partners in this category but you are still responsible for poor technical decisions.
If you feel like you have lost your coding mojo:
- Gain expertise in the codebase by writing a test, fixing a bug, or writing documentation
- Understand the infrastructure model for your major services
- What technologies do they use, how are they setup from an infra/devops perspective
- What are the potential scaling and performance challenges
- Learn about the system your team uses for tracking performance and health in your services, become an expert on this data and what we can learn from it
Just do all the things…
That’s it, surely you can tackle all five of these categories all the time, everyday on top of the regular fires, mayhem and chaos that you get to deal with. Unsarcastically, this is a lot to keep in your brain. Don’t feel pressure to be hitting it out of the park on every topic, every leader will naturally gravitate to a subset of skills within these major areas. That’s what makes you, you.