Engineering Productivity
Engineering Leadership

Engineering Efficiency: A Guide to Decision-Making During The Recession

José Caldeira
José Caldeira
March 16, 2023
5 min read

It’s a hard pill to swallow, but any engineering leader who’s been through it knows: Growth hurts efficiency.

As a former VP of Engineering to a team of 200+, I’m familiar with the growing pains and the twists and turns on the road to success. 

In the beginning, having limited resources can actually be a good thing. It forces you to focus and prioritize, and software engineers are experts at this.

However, as the business booms, your org grows, and you gain more resources, staying focused and being effective doesn’t come as easy.

At that point, to increase productivity within your organization, there are two options: 

  1. Hire more people
  2. Use existing resources more efficiently.

Today we’re going with option 2 by looking into ways engineering leaders can do more with less, maintain focus as their organization grows, and continuously improve and operate autonomously.

This is a blog post I’ve been meaning to write for a while, but now, more than ever, it’s time to put my ideas on the page. 


To foster autonomous improvement, team leaders should focus on honing processes and measuring engineering velocity to identify bottlenecks.

For managers of managers, the focus should be on coordinating investment and validating goals to ensure alignment across the organization.

It’s also important to have a mix of T-shaped and I-shaped skillsets in teams and reliable data to communicate goals and achieve alignment.

Two Ways Team Leads Can Foster Autonomous Improvement

First, let’s look at a few things Team Leads can do to maximize focus and alignment.

1. Focus on What Matters Most

Assess where you’re investing your time.

If you were a woodcutter, you’d spend some of your time sharpening your axe, and the rest of your time chopping down trees. Chopping down trees is how you make your living. But you’ll be much better at chopping wood if you keep your axe nice and sharp.

It’s the same for software engineering leaders. Spending time delivering your product is how your organization keeps the lights on. But don’t forget to sharpen your axe. Invest some of your time in honing your processes, and your whole team can become more efficient.

For example, you could commit to investing 20% of your team’s time on getting rid of tech debt, which will greatly benefit your throughput.

Setting goals is important at this stage. What do you expect to achieve through investing time into making your team more effective? For instance, you might decide that you want your cycle time to be 20% faster. And to work towards this goal, you need to start measuring your engineering velocity.

👉 Three Ways to Measure Velocity

  • The more traditional one, use Jira to analyze your ticket velocity, focusing on story points and burn down charts.
  • Rely on your gut feeling. You might understand your team and your data better than anyone. Some things won’t “feel” right to you. Focus on these areas, and you might find some bottlenecks.
  • Use specialized engineering software, like Athenian. Read our full guide to choosing the right engineering metrics platform for you.

2. Look For Bottlenecks

No matter how you measure velocity, your end goal should be to identify what you can do to help your team accelerate.

As the team lead, you’re responsible for maximizing acceleration. Once you’ve measured your engineering velocity, you need to start looking for bottlenecks.

👉 You can do this by:

  • Using dedicated engineering software to get total visibility of your data.
  • Surveying your staff, asking where they encounter problems and barriers.
💡 Ideally, you’ll use a combination of software and surveys to find your bottlenecks. But you can still run a survey if you don’t have access to the software.

How to Survey Your Engineering Team:

  1. Ask the team where they feel they’re getting blocked. Ask each member of the team, use 1-1s for this, to bring two or three concrete examples, validate if they are having recency bias.
  2. The team can then consolidate this feedback into an impact list. This is a rundown of common problems, arranged in order of what has the greatest impact on engineering velocity.
  3. As soon as you have your impact list, arrange a team meeting in which to talk about the top three items on the list. The goal of this meeting is to ensure everyone is aligned on those top three priorities.
  4. Finally, pick the one activity that the whole team agrees is the most feasible, and estimate the potential impact this will have on improving engineering velocity. 
💡 When you’re comparing feasibility (effort) to potential impact, you can start drilling down into what you really need to do to achieve your goals, and on the activities that will help your team get there. You are doing technical roadmap here, treat it as roadmap and plan it (you can use a framework like RICE). 

In short, you need to treat the development process as if you’re dealing with a fresh initiative or project:

  • Find opportunities.
  • Define your priorities.
  • Figure out how to achieve them.

Two Ways Managers of Managers Can Foster Autonomous Improvement

Managers of managers can maximize focus and alignment in much the same way as team leads. But their role should be more about calibrating and challenging processes

They need to ask team leads what they’re willing to do and why. They need to promote platforms or enablement clusters.

1. Coordinate and Approve the Teams’ Investment

Imagine you’re managing two teams. One team tells you that they need to invest 30% in improving engineering velocity. The other team claims they need to invest 40% in improving engineering velocity.

The problem is that if everyone is investing time in improving engineering velocity, then who’s going to deliver the software? 

Sharpening your axe is important, but only until a certain point (forgive my pun). 

When you’re tweaking effectiveness, you’re not delivering. And the opposite can be true, too – teams can spend so much time on delivering that their tech debt will pile up, and their velocity will suffer.

So pay attention to where your teams are investing their time, and work on balancing their investments. 

You need to coordinate this investment. Your teams should prioritize the organization's velocity as a whole rather than their own individual engineering velocities.

👉 Managers of managers need to foster autonomy among their teams. The team leads should define the investment, but their managers should coordinate between them to ensure that the whole organization’s working towards a shared goal.

💡 Let me stop you here!! Yes, I’m saying your leaders are responsibile for delivering value and optimizing the process, and that you need to help them understand that they are responsible for that, not you.

2. Validate Goals

As I explained above, software engineering teams should define their own velocity improvement goals. Then, the manager of managers ensures that these goals are for the good of the whole organization rather than just for the team.

How can you do this? By asking team leads to come back to you with their drafted objective by a specific date. That way, you’ll have time to discuss synergies to ensure alignment.

👉 Schedule a meeting where you and the team leaders will discuss everything together – opportunities, synergies, and alignment.

Managers of managers will have unique insights into what other people in the organization are doing. So look for synergies not only within your group but also within other groups. Remember that you’re responsible for managing the org, not just your teams.

Following this meeting, you might find that you need to set up a dedicated platform/devex group to help coordinate your goals (namely when you get to +80 engineers). Alternatively, you might establish a transversal guild.

💡 Some software engineering organizations have an in-house guild of Dev Experience. Rather than acting as an official team in itself, it instead features multiple people from multiple teams who help work towards goal alignment.

Coordinating across your organization helps remove bottlenecks. For example, you might end up with one team working on improving the build or testing system, which will actively benefit another team in improving their throughput. So in coordinating your teams, you’re ultimately avoiding waste.

A Note on Letting People Go

It’s the unavoidable elephant in the room. 🐘

So let’s address it.

When you take this transversal approach to maximizing throughput, you might start to recognize different mindsets across your teams. And in the current economic environment (I’m writing this in March 2023), letting people go is an unavoidable discussion. 

Some team members will have specialized skills best suited for performing specific tasks. Others will have a more broad skillset. They’re good generalists who’ll work well at any task they’re set.

Think back to your startup mentality. Ask yourself: “Who are the people in my teams who will help across multiple areas, and who are the people who can only help me in one area?

You want your teams to be full of high-energy, committed people with T-shaped skillsets rather than I-shaped skillsets. This is extremely important the smaller your company is.

But there’s still room for people with highly specialized I-shaped skill sets. For example, that one extremely talented engineer who works in teams across your entire organization, helping every team they work with improve their efficiency? They have space in your organization, as they’re positively impacting everyone else’s work.

The key point here is that you need to carefully re-think your organization over this new reallity, and see who helps you the most to deliver value and sharpen the axe.

Final Thoughts

Too many people seem to forget that autonomy comes with responsibility.

Team leads are responsible for making decisions locally. Managers are responsible for coordinating efforts globally.

Fostering autonomous improvement is a continuous job. During recessions, you need to be laser-focused when you have to do more with less. But staying lean, addressing bottlenecks, and reducing waste should always be top of mind.

To guarantee alignment across your entire organization, you need to be able to sell people on your goals. For this, you’ll need reliable data and visible insights that will help you communicate what you’re trying to achieve and why in a consistent way.

Athenian can give you end-to-end visibility of your software delivery pipeline. So you’ll know what you need to prioritize, improve velocity and align teams with company goals. Request a demo today!

Get engineering leadership
content in your inbox!

Sign up for tidbits and bigbits of engineering leadership knowledge.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.