A framework for doing the right things at the right time
Tags: Engineering Management, Management, Management And Leadership, Software Development

A framework for doing the right things at the right time

Who is this guide for?

This guide is about how to make better decisions as a Manager or an Engineer, and understanding where to focus your limited time and attention. It has been shaped by my experience as an Engineering Manager at Square & SoundHound, and through various books that I have read on the subject.

First, a little bit of context.

It has been 2 months since I joined Square as an Engineering Manager. I spent my first few weeks understanding the product, the business, and the team. This involved lots of reading, listening to others, and taking notes.

After I got my bearings, I started ruminating about where I could add the most value to my team. I kept asking myself:

“Where can I be most helpful?”

This is a question that many people ask themselves in a new role. There was so much going on but somehow, I needed to figure out a few areas where I thought I could make a difference.

I needed a framework that would guide me to focus on activities where I could make a meaningful contribution.

The framework I present is not my own (it’s mostly common sense, actually) but it’s worth sharing. It applies to personal and professional lives; to engineers and managers.

It seeks to answer the question: how do I ensure that I am working on the right thing at the right time?

Gathering Information

When deciding what to work on, the first step is to gather information. You need to be able to understand the following:

What are people working on now?

What are the short-term and long-term priorities of individuals, the team, and the business?

What are people unclear or uncertain about?

What were some recent decisions that were made?

Gathering information gives you the necessary context to do your job. It also helps you make better decisions. The more information you have, the higher the quality of your decisions.

You can only gather information while listening.👂

Initially, spend less time speaking and more time understanding what others say. Ask follow-ups to direct the conversation. Take a look at the famous 5 Whys technique.

Information can be gathered in two ways:

1️⃣ Synchronously, in meetings or through active conversations, chats, etc.

2️⃣ Asynchronously, by reading or listening to past decisions.

Try to focus on 2️⃣ and use 1️⃣ to gain additional context when you have questions.

Distilling Information

Gathering information is pretty easy but distilling it is hard. How do you capture the essence of a conversation? What helps me enormously is to take notes. I never wrote notes before, but now I try to be the notetaker in every meeting. This helps me accomplish three things:

Understanding: By writing something down, I understand it better. Being Helpful: I contribute to meeting minutes. This is a high leverage task that helps ensure meetings stay on track and decisions are made (More on leverage later). Remembering: When I forget something, I can fall back to my notes to remember.

Writing good notes

When taking notes, you should annotate it to make it easy to scan. I usually write who-said-what, and what decision was reached, if any.

So instead of writing this:

- Team chats about keeping CTAs as buttons.

- Team talks about how to approach the launch.

Write this:

- [AF] Should we keep the buttons as CTAs?

- [MR] No, too jarring.

- ✅ Resolution: Disagreed, no action items.

I keep public notes on Google Docs and private notes in a personal Trello Board. I highly encourage note-taking.

Deciding what to do

Information is not very useful unless you act on it. At some point, you will need to take an action and decide what problem to focus on. How do we do this?

To answer this, we have to first answer a more fundamental question: how is a manager’s productivity measured?

Productivity can be measured in the following way:

1️⃣ Doing more work in a given amount of time

2️⃣ Increasing the leverage of the work that you do

3️⃣ Doing less low leverage work, and do more high leverage work

This idea of measuring productivity for managers was suggested by Andrew Grove in High Output Management. If you are not a manager, you have to figure out how your own productivity is measured. (Hint: Ask your manager).

💪 Your productivity is dependent on the amount of leverage your work generates. Understand the high-leverage activities that you are responsible for, and double down on them.

Understanding Leverage

Leverage is a ratio of how important your action is, divided by the amount of effort it took to accomplish that action.

In simpler terms, a high-leverage activity is something you do for a short time, that impacts a person or project’s performance for a long time.

As a manager or engineer, you have the ability to manage leverage for yourself, your team, and even the broader organization. It’s probably your greatest asset.

Here are some examples of common engineering and managerial activities, broken up by the amount of leverage they exert:

😀 High Leverage Activities

One-on-ones

Giving Feedback

Teaching something new

Making a decision that unblocks others

Delegating work

Getting a key piece of information that unblocks a project

Taking part in hiring

Planning a roadmap

Learning something new that is applicable to your work

Writing code that drives business goals

Adding reliable tests to your code

😐 Low Leverage Activities

Work that isn’t aligned to your objectives, or throw-away work

Meetings without clear decisions or next steps

😓 Negative Leverage Activities

Meddling in a project

Not taking a decision when one needs to be taken

Failing to follow up on commitments made by members of your team

Writing flaky tests that fail randomly

Turning low leverage activities into high leverage

Some activities that you are doing everyday at work can be turned from low leverage to high leverage, with some minor changes. Let’s look at some examples.

One-on-Ones

Make a one-on-one higher leverage by keeping a shared document between all participants. Use this to:

Create an agenda of topics to discuss at the next meeting Assign action items to each other, and track progress on them Keep a history of your meetings, include career chats and feedback cycles

If your one-on-one is spent discussing project updates, it has limited leverage as you aren’t taking decisions. You’re just passing information which can probably be done asynchronously.

Teaching something new

This has the potential to be tremendously high leverage depending on how it is done. As an example, consider a new hire who has just joined and is pairing with an experienced engineer. The act of pairing teaches both people new skills.

However, if the senior engineer keeps track of questions that are asked, classifies them, and creates an FAQ that can benefit all new hires in the future, they just multiplied the leverage of this activity. See how that works?

Removing Negative Leverage Activities

Some activities actually have negative leverage, and new managers can find themselves doing them. In fact, I have been guilty of this.

Negative leverage activities are ones where literally doing nothing is a better option. Avoid them at all costs.

What’s an example of an activity that has negative leverage? Meddling in unnecessary discussions is one example.

Let’s assume a manager has been automatically CCed on a pull request. The manager is new and and doesn’t have context about coding practices and review guidelines. Yet, they leave comments asking questions that are (at best) tangential to the PR. This makes the PR messy and adds work for the reviewers and the code authors.

Instead, if the manager read the PR silently, gathered their questions and raised them asynchronously with the author, it would have been a better use of time.

We perform activities that have negative leverage when we don’t know where to add value. We stumble across projects hoping something clicks. Recognize this, take a step back and use this framework to analyze your actions.

Measuring your leverage

You can’t improve what you don’t measure. A reasonable way to measure your productivity as a manager is to go through and classify the activities in your calendar during Friday afternoons.

List all the events that were in your calendar this week on a spreadsheet. Classify each event into high, low, or negative leverage. Figure out the percentages and aim to improve your high leverage activities for next week.

I find that this simple activity leads to introspection. Usually, I’ll realize that some meeting was not very useful, but it is in my control to make it better for next time.

Periodic self-assessment is the best way to ensure that you are working on the things that you deem most important.