Engineering Managers Handbook
Engineering Managers Handbook
Table of contents
Introduction 3
Bit Fiddling 4
Pinpoint commits 6
Code And Clean 8
Domain Expert 10
Code Hoarding 12
The Hero 14
High Churn Rates 16
The Overhelper 18
Zoning In 20
2
Introduction
By searching for the cause, they discover how their teams work and what is
the correct way of solving the problems. We aggregated a collection of work
patterns that we’ve observed by working alongside thousands of engineering
managers. We hope that you will use this handbook to gain better visibility of
how your team works, identify roadblocks, advocate for your team members,
and manage your team using concrete data.
3
Bit Fiddling
Bit Fiddling happens when an engineer gets stuck. Even though
they tried every solution at hand, it seems that they are not
making any progress.
4
How to identify it
For example, watch for a standard library call getting refactored into
customized code for some optimization that is difficult to articulate. Another
example would be to watch for code that gets polished and refactored
multiple times with disinterest — light code review and pull requests with
generic submitter comments, followed by generic reviewer comments. The
Review Workflow report can help you spot generic contributions in pull
requests.
What to do
Explore ways to revitalize the engineer with a new project. Find a ticket, even a
small one, that will lead to new and interesting areas of the code — even if it
might negatively impact the team’s productivity in the short-term. Creative
people thrive when tackling new and challenging issues, even if they are
reluctant to work outside their area of expertise. New challenges lead to
learning something new - a process that most engineers enjoy.
5
Pinpoint commits
Of course, not all the commits in the project will be Pinpoint commits, but the
ones that are, generally carry a small to moderate impact and were carefully
reviewed and approved on the first try. Recognize these small wins!
6
How to identify it
Pinpoint commits can be spotted by looking at the time they were submitted
compared to the deadline, the manner in which they were reviewed, and their
overall impact. Normally, the commit was completed before the deadline,
with an insignificant amount of churn, and its impact was small to moderate.
The Developer Summary report will help you identify this type of commits,
along with the Review Workflow feature, which will assist you in measuring
the thoroughness of the code review process.
What to do
7
Code And Clean
8
How to identify it
An engineer that falls within the “Code And Clean” work pattern contributes
new code, while also fixing legacy code in the codebase. Their commits
usually carry a high amount of Legacy Refactoring, together with a fair
amount of New Work. You can see an overview of their commits in the Work
Log, then dive deeper using the Developer Summary report. Engineers that
follow this work pattern can be spotted as the top performers in Legacy
Refactoring, in the Project Timeline.
What to do
Publicly recognize contributions that fall into the “Code And Clean” archetype.
Use them as an example to reinforce this habit amongst other team
members - daily stand-ups and retrospectives are a great occasion to do so.
Consistently acknowledge such efforts to let your team members know how
important these are. Support “Code And Clean” engineers in documenting the
process that they follow. Other engineers will be able to abide by the same
pattern, ultimately minimizing technical debt throughout the team.
9
Domain Expert
Truthfully, they probably created most of the code in that area. The Domain
Expert is not just “the engineer that knows a framework by heart”. Domain
Experts only work in their areas of expertise, every time, every day.
How to identify it
Domain Experts will always contribute to the same area of the codebase. You
will also notice the tendency of perfectionism - they will be rewriting their own
code all over again. The Developer Summary report can help you identify this
pattern. By looking at Churn and Legacy Refactor percentages, you will be
able to tell whether an engineer falls into the Domain Expert model.
Being extremely familiar with their domain, they will submit small and
frequent commits, and their impact will be above the team’s average. Since
these engineer archetypes are the most knowledgeable of their domain,
there’s not much feedback that other team members can provide in code
review. In consequence, the team will experience a lower receptiveness in
integrating review feedback. Engineering managers can check their team’s
receptiveness in the Review Collaboration report.
Domain Experts will never appear blocked. In the short-term, this is productive
and beneficial for the team, but it’s not sustainable in the long-term, and can
often lead to attrition.
10
What to do
11
Code Hoarding
It may come naturally for engineers to wait until the work is done to push it to
the Git repository. Even though this is against Agile practices, there are some
factors that prevent engineers from frequently committing. The most
common factor is that engineers fear that others might judge their work in
progress.
The problem with code hoarding is that it doesn’t enable code collaboration,
which is a crucial aspect of software development. The habit of working
privately doesn’t just slow down individuals - it also affects the velocity of the
project. Submitting one giant chunk of code doesn’t create any collaboration
opportunities throughout the team. Moreover, another team member will
have to review that code in a short period of time, which naturally leads to
lower code quality.
How to identify it
The most common indicators that an engineer is code hoarding are rare,
large commits. You can identify this pattern in the Work Log, but it can also be
spotted in the Review Workflow report. These types of pull requests pop up
during the late stages of the sprint and are larger than usual. The PR
Resolution report is also designed to indicate, on a higher level, if such
outlying pull requests correspond to a habit or an exception.
12
What to do
First of all, you need to empathize with the engineers. Chances are that you’ve
spotted this pattern just before the end of a sprint, or after the end of one, so
these engineers are most probably worn out, stressed, and tired. Ensure that
they receive the time and space necessary to recover. This could also be a
good time for a one-on-one with the engineer. Look back at the sprint and
learn from them what went well, what didn’t, and recognize their wins. During
the one-on-one, let them know why hoarding code doesn’t help the learning
process. When working collaboratively, team members learn from each other
and move faster in finding solutions to the problems.
13
The Hero
Having such an engineer in the team is certainly helpful, but if this becomes a
regular occurrence, it can have negative consequences on team dynamics
and discipline. Otherwise strong engineers can develop self-doubt over time,
the feedback loop gets damaged and ultimately the growth process stops.
How to identify it
One of the sure ways to spot this pattern is to analyze the top performers for
the Help Others metric in the Project Timeline report. These individuals will
dominate it, mostly with late coming check-ins, which you can see in the
Work Log.
In the code review process, Hero engineers tend to self-merge PRs right
before the deadline. You can spot self-merged PRs in the Review Workflow
report. Their pull requests will usually display a very low level of engagement,
which is understandable given the changes made late in the sprint.
14
What to do
Instead of focusing on the Hero, focus on the code review process. You can
set up a target for your team to make small and frequent commits, and
identify such commits by looking at the risk metric in the Work Log. Smaller
commits are tagged as low-risk, therefore, you should watch out for
high-risk commits.
Once your team has made a habit out of submitting small and frequent
commits, they will become open to participate in the review process. By
incorporating these changes into your team’s workflow, everyone, including
the Hero, will develop healthier collaboration patterns.
Coach the Hero to provide actionable feedback to their teammates, instead
of ‘fixes’.
15
High Churn Rates
Testing, refactoring and exploring various ideas are part of the development
process, and churn rates vary between people, projects, and phases of the
project cycle. Getting accustomed to your team’s regular churn levels is
required before identifying unusually high churn rates.
High churn rates aren’t a problem per se. They are caused by an array of
external factors, such as hassling with a task, perfectionism, or external
stakeholders.
How to identify it
By checking the top performers in churn, in the Project Timeline report, you
can get a pulse of who might be struggling with an assignment. Zoom in to
your team members’ efficiency in the Developer Summary report to see if
this is an ongoing issue. We recommend correlating churn spikes with the
stage of the project to get a better understanding of their struggles.
16
What to do
If so, show the data to the stakeholders, and explain how last-minute changes
are negatively impacting the velocity and quality of the project. Alternatively,
you could pull the ticket from the sprint, or decide on an MVP and split off the
additions into a refinement sprint.
17
The Overhelper
The overhelping pattern works like this: one engineer submits their code, then
the Overhelper engineer cleans up their code repeatedly. This is a common
pattern among project-based teams, but if this becomes a habit, that is an
issue.
Constantly cleaning someone else’s work takes away one’s time to work on
their own assignments. It also damages the original author’s learning
opportunities, independence, and sense of ownership.
18
How to identify it
What to do
Adding more engineers into the code review process will even out the review
distribution. Doing this will also lead to a broader knowledge of the codebase
for the whole team. Another recommendation is to cross-train and assign
these engineers to different areas of the codebase.
You can assign the senior engineer to a more challenging project, ensuring
that they won’t have the time or energy to review another team member's
work. The Overhelper is inclined towards leadership and coaching. As a
manager, you can offer them the opportunity to join a mentorship program.
19
Zoning In
How to identify it
When zoning in, engineers have the habit of organizing their schedule in a
way that eliminates distractions and allows them to focus solely on delivering
business value. Their Active Days are constantly above average, their churn
rates are commonly lower than average, and they score high on Impact in
their Developer Summary profile.
Their pull requests, which you can track in the Review Workflow report are
timely, decently sized, and uniformly paced. They also participate in the code
review on a regular basis.
20
What to do
Acknowledging this pattern, publicly or privately, will help build a team culture
that values consistency and cadence in work. The Work Log can help you
identify this pattern and support the story.
If you want to increase your overall team velocity, you can start helping the
other team members find their ‘zone,’ by looking at the Activity Heatmap
report, which is designed to highlight your team members’ peak productivity
hours. By using the Activity Heatmap report, managers can schedule
non-disruptive meetings, so that engineers can focus on delivering value.
About Us
21