Market Leader in Development Analytics (G2 Crowd’s Winter, Summer & Spring 2022)
Backed by Y Combinator experience featured in TechCrunch
New Case Study: Learn how WOM leverage Waydev
Remote work? Learn how to gain visibility into your engineering teams and accelerate your product velocity.
Meetings, daily standups, reports, hiring interviews. And most of all, people: engineers, managers, product leaders, directors. If you just started as a software engineering manager (or aspire to be one) that’s how your schedule looks like.
That’s a lot to learn and balance at the same time. Especially the “people” part. Which is usually what makes a software engineering manager’s job a bit harder than it looks on paper. But we’ll get back to that soon.
However, it is a transformational experience. And, as soon as you know what you’re getting into, what is expected from you and how to pave your way through the challenges, you’ll already be one step ahead.
The truth is (or actually, two truths):
With the second part, a Development Analytics tool like Waydev could be quite helpful from day 0. Our tool measures engineers’ performance and tracks goals and projects, to get you visibility into engineering work and understand the alignment with business goals—Try Waydev for FREE (no credit card needed).
Now, let’s dive into the thrills and spills of engineering management today, starting with the basics.
What an engineering manager does is to direct, plan and coordinate activities, while supervising a team of engineers. It’s juggling people management, project management and technical knowledge to deliver the right product, the right way.
And is quite like product development—you do need to know the specs well (duties), build a roadmap (planning and scheduling), negotiate and allocate resources (people, budgets, tools), make sure the result (tracked performance) meets the specific client’s needs (company’ business goals), debug and update (unblock and support engineers).
Here’s an overview of the most common tasks and duties that usually come with the software management job:
Your role will change a lot in time, as the company grows and you take on new responsibilities.
Remember that no one is born a manager. It’s a 100% learned role that requires effort, empathy and continuous learning to be a good software manager, day after day.
If you want to be one step ahead right from the start, adopting an Agile data-driven approach will go a long way. By tracking your team’s performance, you enable engineers’ autonomy, productivity and motivation in a healthier work environment.
Waydev has already helped 1000+ engineering leaders worldwide, by analyzing codebase, PRs and tickets to improve engineers’ work—Try it for FREE and start making objective decisions based on data, not hunches.
Whether you’re leading a small team of junior engineers working on projects from scratch, or a large team working on projects with years of legacy code, your role is less about specific job tasks and more about these responsibilities: communicating with other human beings, catering to stakeholders’ needs and goals, managing the team for performance.
These are all part of day-to-day management. But how can these responsibilities translate into your checklist as an engineering manager? Because it’s harder than it looks.
Well, good thing that we’re engineers and managers working for engineers and their managers, looking to solve their biggest problems today, here at Waydev.
We’ve built Waydev as a single app for the three aspects of software development: code reports, code review metrics, and project management benchmarks, necessary for successful data-driven leadership.
The thing is, we wouldn’t have gotten this far if we hadn’t worked alongside hundreds of engineering managers. Thanks to their input, we now have a modern view on a typical day in the life of a software engineering manager.
And according to them, the core areas that you will spend your time on are:
A typical day starts with a daily-standup, to get an accurate view of your team’s output, strengthen team communication and support engineers to do their tasks without any friction.
This is an important part of your day as a software engineering manager. It allows you to learn quickly about each individual’s status, as well as about potential blockers and problems they face.
Then, you can start thinking how to fix these issues, finding solutions together and delegating tasks to ensure better coordination.
Daily stand-ups allow you to keep meetings at a minimum because engineers often see meetings as unnecessary interruptions in their daily work. By having agile-driven stand-ups, on the other hand, you can better promote team communication.
Apart from daily stand-ups, you’ll have regular sprint kickoffs and retrospectives that are equally important.
Turn daily stand-ups into agile-driven conversations based on objective data. With Waydev, you get a complete visibility of your engineers’ output and work habits, without hindering them.
Most engineering managers are still, well, engineers at heart—only now, they get to take up technical challenges and solve problems through others. So your primary responsibility is helping your people succeed at their tasks.
You do that by scheduling enough time to be available for them, and also by trying to fix those issues that keep them blocked, frustrated and unproductive.
Sometimes, it means pairing engineers stuck with a technical issue; collaborating with a product manager to prevent or eliminate a roadblock or get a clear understanding of what needs to be built next (unblocking the team is also about collaborating with other leaders).
Keeping the team on track requires you to prevent issues from happening and keep engineers unhindered by any unnecessary, endless meeting that can disrupt their entire day.
Part of your job is also about planning the workload for everyone—not too much to burn them out, but enough to motivate them to become better and happier. And you have to clearly communicate the direction on their assigned tasks, be there to encourage them when your engineers need it—and learn when to stay low (when they don’t need help).
Meetings are a big part of your days as the engineering manager, as the interface between engineers, other teams and stakeholders.
Oftentimes, you will get to:
And it’s good to be prepared. Whether it’s about accessible executive reports on resource planning, project costs and timelines, or benchmarking to better focus on decisions, Waydev brings the data you need to support your story in front of the stakeholders. Learn how it works.
One of the most enjoyable parts of the day for many software engineering managers is holding one-on-one meetings.
It’s a valuable time of your day as a manager. You have the chance to start meaningful conversations, understand how they’re doing and where they need support, acknowledge and encourage their accomplishments and efforts.
And during these meetings, you are able to actually cultivate trust and a culture of feedback that works for engineers. One way to do that is with a Git Analytics tool, which lets you know what’s going on before starting a one-on-one.
One of your key responsibilities is to help everyone in your team reach their career goals. And one-on-ones allow you not only to talk about current work and coach engineers through the challenges, but to find opportunities to grow and cultivate their talent as they deserve.
With a clear view on work patterns and progress over time, you gain valuable insights into each engineer’s output. This helps you direct one-on-one meetings effectively based on relevant metrics and identify coaching opportunities exactly when it’s needed. This approach is better appreciated by engineers than a series of hunch-based questions.
You ensure both the success of projects and the well-being of your team, the most important duties as their engineering manager.
A big part of your day-to-day management is to keep track of them and manage projects at the same time with no delays.
This goes from taking the time to plan sprints, to analyze, discuss and negotiate resources and requirements with customers, to supporting the team in meeting project milestones.
It is also about sitting with engineers to assess risks or dependencies and make decisions to move forward, and with other leaders, making sure everything is aligned with the company’s business goals.
Another responsibility on your side is to regularly look for ways to improve methodologies, frameworks and management processes that would optimize development processes. Try Waydev with your team for free and see how fast you can improve your engineers’ performance.
While you spend most of your time on people and project management, there’s also something that requires your attention: documentation, reports, check-ups, learning and other admin tasks.
Most engineering managers are able to make some time for this part at the start of the day or in the evenings. If you can, schedule some “alone time” at least a couple of days every week to handle the admin part.
This can involve:
The tricky thing with metrics is they’re not always so simple like lines of code written or tickets cleared. The most relevant metrics respect the nuances of engineering work, such as the significance of code changes, the percentage of time engineers spend on new features vs. maintenance, churn or risky commits, and so on.
With Waydev, you can actually track, understand and optimize the meaningful metrics you need to actually pay attention to. Request a demo and see how you save time while measuring engineering performance automatically.
If there is some time left at the end of your day, you can return to your technical roots, assisting with some hands-on coding. It will probably be glue code or user interface.
Most managers are engineers who realised they had a flair for leadership and loved helping others in their technical career paths. This knowledge and set of skills are great because one can empathize with engineers, understand work habits and address conflicts, as well as advocate for them. This is an essential part of being an engineering manager.
It’s not your job to write a lot of code, but it’s nice to be a code contributor once in a while. You can take a look at code reviews and pull requests, or write a bit of code to solve annoying tasks that could disrupt engineers’ performance.
Besides, you know how software is designed and developed, and you will become able to manage projects from within rather than outside.
You’re also there to provide technical guidance and ask the right questions when they’re actually stuck. And, at the same time, having technical expertise helps you evaluate people better, be it new hires or current employees.
Last, but not least, you’re likely to be the one responsible for recruiting new engineers in your team.
You know best what your team needs and what types of people would be culturally aligned. And hiring the right people is key to supporting the well-being and productivity of your team.
Recruiting new engineers is not something you spend most of your time on, but it’s an important process in your role. Make sure you plan your time well so that you manage to schedule candidates and set up interviews on an ongoing basis.
Usually, it’s because people management is hard. No one is born a selfless leader so great at managing others and ready to put people first all the time. And being an engineering manager means you’re probably better with data than with people.
So it takes time and practice to become a good manager, giving the team credit when there’s a victory to celebrate and taking responsibility when there’s been a mistake.
Plus, no one knows how to best manage engineers. Most of them have a rather introverted nature and a data-driven mindset, which can be extremely good and challenging at the same time.
If we’re to sum up what makes the job of an engineering manager difficult, it’s:
As an engineer, your job is all about communication with computers. If it doesn’t get your command, it responds with an error message. Then you fix the problem and move to the next line of code.
People don’t work like that. Each individual is different and sees the world differently. This means you have to get to know each one personally and learn about their work habits and passions, their way of thinking and how they communicate best.
This requires incredible interpersonal skills from you as a manager, as well as a sense of camaraderie… and data to support your stories. Trying to persuade people (engineers or not) to listen to commands without actual logical reasons it’s not the way it works (and shouldn’t).
Besides being a leader for your team of engineers, your management role means you’re also expected to support the business goals.
You need to gain the trust of your stakeholders, making them accept your decisions and honest narratives, either good or not so good (making and admitting mistakes is part of the process).
This requires being decisive and able to communicate effectively – including technical aspects to both technical and non-technical stakeholders -, aligning team efforts to the company’s goals in a scalable way, and genuinely care about having a connection between stakeholders, other teams and engineers.
These are plenty of stories about managers who were told by their teams they checked in too often. It’s understandable: managers cannot read minds and prefer to over communicate. Or on the contrary, they might give too much freedom and become absent.
The best way to overcome this is to get to know your team members, adjust to their work habits and actively listen to their feedback. It’s a big part of your responsibilities as a software engineering manager.
It’s tough to go from the comfortable world of coding to the uncomfortable world of managing people and projects.
But, truth being told, it will be all worth it. You’ll grow into your role. You’ll get to enjoy a different way of building software, where thinking of technical strategies while supporting others will soon feel more rewarding than you thought.