Video Summary and Transcription
This Talk focuses on the importance of productivity, efficiency, and effectiveness in software development. It highlights the evolving role of leadership, the need for clarity in understanding these terms, and the significance of metrics in driving behaviors and outcomes. The Talk emphasizes the value of aligning with business goals, involving teams in defining productivity measures, and continuously improving productivity to achieve goals.
1. Introduction to Developer Productivity
I'm Lena Reinhardt. Today, I'll talk about business buzzwords like efficiency, effectiveness, productivity, and how to make them work as a tech lead. Efficiency has been a buzzword, but it also has a bad reputation. Let's look at the evolution of developer productivity and its importance over time.
I'm Lena Reinhardt. I'm really happy to be here today and talk to you about business buzzwords like efficiency, effectiveness, productivity, and how to actually make them work as a tech lead with your teams because it's been a bit of a year.
The first time I gave this talk was a year ago and things have changed in the industry over the last couple of years. We all know it. We've all been part of it. And efficiency specifically has been the big buzzword in many tech companies. And I've spoken with dozens of companies and leaders in our industry over the last probably two to three years since things started going into the downturn that we're in right now as a tech industry. And like many of you, I've been trying to make sense of what's going on. And a lot of the things that have been done have been really shocking for a lot of people in our industries, including people in leadership positions. A lot of layoffs were justified by efficiency. And as someone who has worked in finance before getting into tech, as someone who has a business background, I do understand that. And at the same time, I also think efficiency, effectiveness, productivity, all have a really bad rep and for really good reasons. And so I did briefly want to take you down a trip on memory lane and look at how the space of developer productivity has evolved over time.
And of course, when talking about any trends, you have to show Google trends. That's the only thing to look at. This is a chart of how many times people were looking at developer productivity since 2004. And so I wanted to show you what happened over this time. This is a lot of illustrations for one chart. But a couple really interesting things because developer productivity as a topic has been around so much longer than you actually may realise. Not everyone here has been in the industry for 40 years. So for everyone who just joined in the last decade, for example, think of things like XP, extreme programming. That's been around since 1999 when the first book was published and the author has been working on it much longer. The Adler Manifesto was published in 2001. Here you can see a photo of one of the meetings of the people who were involved in that. The Software Craftsmanship Manifesto that Fowler and others wrote was in 2009. Dora, the organisation for DevOps research, was started in 2015. The book Accelerate, that is the basis for a lot of people's thinking about developer productivity, is from 2018. Then the space framework that kind of expanded it was published in 2021 during COVID. And then, of course, the tech downturn started around 2022. I'm showing this to you to illustrate that developer productivity has been on people's minds for a really long time.
2. Leadership Roles and Engineering Productivity
Leadership roles are about helping a business achieve its goals. Connect your work to business value and outcomes for better odds and job security. Roles as leaders are changing, and we need to talk about engineering productivity, efficiency, and effectiveness. Bad things have been done in the name of efficiency.
And a lot of concepts that you've probably been working with for a long time as a developer like Agile or even XP, those concepts are about developer productivity at their core as well. That also means this whole topic really matters. Leadership roles, no matter if you're a tech leader, a people leader, you have direct reports or don't. Leadership roles are business roles. They are about helping a business ultimately achieve its goals. In addition, you actually have the expertise to do this well. You probably work with a team, with a set of services, in a specific domain. You know how to help the people there achieve the goals that they have and the goals that the business has by extension.
And there is the disappointing, sad, annoying side of this, but the time that we're in as an industry right now also means this is also about becoming part of the spreadsheet that has the names of people on it that are going to be laid off. I wish that weren't the case. It's unfortunately the reality of things. And one thing to keep in mind as a leader is the more you're able to connect to the work that you're doing, the work that your teams are doing, to business value, to outcomes, the better your odds are at least going to be. There aren't guarantees, but it's going to help you a lot in your daily work. And it's going to hopefully also help you with job security.
Now that we've gotten the unfortunate part about this out of the way, I do briefly want to recap. Our industry has been changing. And this also means that our roles as leaders are changing. And I use the term leader quite a lot during this talk. And when I say leader, I mean anyone who influences, guides others, gives direction, provides facilitation skills, for example. All of those are leadership skills. Leadership can be at any level. It doesn't have to be about titles or roles. It's about the work that you're doing and the actions you're taking. And so all of these changes mean we really need to talk about engineering productivity, engineering efficiency, engineering effectiveness. And the first thing that we're going to do is tease apart all of those terms. And I've mentioned already that this is an uncomfortable topic. And it's probably not just an uncomfortable topic for you, but also for many of the engineers that you're working with. First of all, of course, a lot of bad things have been done in the name of efficiency. That is the thing that happened. They're also really big words.
3. Understanding Productivity and Idea Impala
Productivity can mean many things, and there's often a lack of clarity. Talking about money and revenue generation is uncomfortable for many. Many leaders in tech lack formal business training. I'm here to help you get started and introduce the concept of idea Impala, representing effectiveness in achieving goals.
We will get to explanations just in a very short time. But people don't really have a very coherent idea of what those things mean. Productivity can mean so many different things. And there's not a lot of clarity about them.
Then in addition, in a lot of cultures, talking about money is pretty taboo. And it's actually kind of frowned upon. And at least for many other people, it's uncomfortable. And even at work, having conversations about money in the sense of how what revenue is engineering work generating or helping to generate, for example, it's not just hard, but a lot of people find it deeply uncomfortable.
And many leaders in tech weren't trained for this. Many leaders and managers never got formal business training, but were promoted at some point. And these business topics just are quite inaccessible, honestly. And so I still am here, of course, to help you get started because I found that this is not as hard as it may look. And I'm here to give you tools to either later today or tomorrow get started on this together with your teams.
This is me wearing a spreadsheets hat because I have one. I'm going to move on and let's get started on actually helping you think about productivity for engineering. And with that, I'm going to introduce you first to what I call idea Impala. Fun fact here is Impalas get just under 5 foot long, but they can leap 32 foot far. That's the equivalent of me making a 38 foot jump right now. That's, I think, about six or eight meters. I forgot the conversion. That is unfortunate. Someone please correct me on this.
So idea Impalas represent the leap. They stand for effectiveness. Effectiveness is one of the three big terms that I'm going to talk about. I'll share with you how they're defined and how they distinguish between each other. And understanding those terms is going to be honestly usually helpful to help you understand the productivity space, but also how to talk about it. So effectiveness is about doing the right thing. It's about achieving our goals. I always remember this because it has the word effect in it, as in a goal, a thing that you achieve, an outcome.
4. Effectiveness, Efficiency, and Productivity
Effectiveness is about doing what's important and achieving the right outcome. Efficiency is about limiting waste along the way. Productivity is doing more with the same, focusing on achieving more within the given resources. It is the most common angle to look at for any leader in tech.
And effectiveness means we do what's most important and we get the right outcome. So that means, for example, you're not just shipping something, but the outcome is that customers are actually adopting it. People are using the feature that you built. Effectiveness also, for example, has things around quality in it. So that's part one.
In contrast, there is efficiency. And with efficiency, I want to introduce you to calculator Capybara. A Capybara, fun fact is that Capybaras live on land and in the water. They've partially webbed feet, and so they're great swimmers. In their natural habitat, they usually don't use calculators, but this one does. And this calculator Capybara stands for efficiency. Like a normal Capybara, it can navigate any terrain to figure out the best path forward. And it asks, what actions are we taking and what's the right way of doing things? Efficiency is about limiting waste along the way. Waste can be things like money, time, technology, huge infrastructure costs, for example, can be inefficient, but also mental focus, like context switching, for example, can be really wasteful as well.
And now here's the fun part, which is where we talk about productivity. And productivity in engineering is about doing more with the same. So I'm not throwing terms at you that are often, honestly, used interchangeably, which is what makes this topic really difficult. The big difference between productivity and efficiency is basically how you calculate the outcome. So efficiency is about just doing the same things, but using fewer resources, for example, shipping the same improvements, but doing so in less time or using this concept switching, avoiding waste. Productivity is using the same time or the same knowledge and the same context switching amount, but doing more in this time. So productivity is doing more with the same. The basis doesn't change. Efficiency is doing the same with less. This is confusing. I'm going to mostly use productivity as a term in the future of this talk. One reason for this is that productivity is honestly most widely used. It's also the term that most people have the best understanding of, and it's at least going to be a good starting point. In addition, if you have a set team, you're usually, you're not able to hire people, for example. The main thing that you can do is improve productivity by doing more with the same. So figuring out how can you work with the team that you have, with the people who are there, the knowledge they have, the skills, the time, the capacity, how can you work with them to do more with the same? So for any leader in tech, productivity is the most common angle to look at.
5. Understanding the Terms and Focusing on Metrics
Know the terms roughly. Listen to what leaders around you are saying and adjust your own language and focus accordingly. Validate your understanding of what your company is trying to focus on. Focus on what's measured and the behaviors that those metrics drive.
That also means, so you have these three terms that we've looked at. We have, exactly, we have efficiency, productivity, and effectiveness. It's very confusing. You'd be correct, as I mentioned, a lot of people struggle with these terms and how to define them. In short, I want to illustrate it a little bit. You help your company achieve its goals. Achieving those goals, here's the impala, means that you're effective. Every day, you make countless big and small decisions with your team to help you achieve those goals, and achieving them in a better way than you did before. That's efficiency or productivity.
Of course, you can walk down this path, or you can just buy a helicopter and fly your entire team up to your goal on the mountaintop, and then hope you don't run out of fuel along the way. That's not exactly efficient because it costs a lot of money, it costs a lot of fuel, you're wasting resources, but it can be productive because you achieve your goal in less time. As long as you achieve your goals, that can actually still be productive. To recap, you have effectiveness, it's doing the right thing. It's about getting the right outcome and the impact you're looking for. There's efficiency, where you do things right. I'm also starting to say it wrong, but it's just to show you that it can happen to anyone, even someone who's been in this for 20 years. Efficiency is about doing things right and using fewer resources to get the output that you want. Productivity is about doing more with the same resources that you have.
Now, we've got the terms. What this means for you is, first of all, know the terms, know them roughly. I have at the bottom of the slide, at bit.ly slash eng-productivity, you can find a cheat sheet that has the terms for you, just so you have them ready if you need them, as well as a lot of the content that we'll have over the rest of this talk. You should know this roughly so you can talk to people about it. The more important thing almost is listening for what leaders around you are saying. What terms are they using? Are they talking about productivity? Are they talking about efficiency? Are they talking about achieving goals? Are there synonyms for some of these terms? Listen on that and adjust your own language, as well as the things that you're focusing on with your teams accordingly. Validate your understanding. If you're not entirely sure what your company is trying to focus on, for example, if efficiency is more important, or if it's more about productivity, validate it. Ask your boss, ask your product manager, ask the people you're working with. Lastly, don't get too hung up on terms. As I mentioned, people aren't always using them in the way that they're technically defined, which happens. Instead, focus much more on what's measured and the behaviors that those metrics drive.
6. Achieving Goals with Limited Resources
Outcome with limited resources is important for businesses. Companies optimize for a mix of effectiveness, productivity, and efficiency. Hiring and retaining talent can be an effective way to achieve goals. Productivity metrics are increasingly important. Reuse resources smartly to help your business achieve its goals.
We'll talk about how to do that in a second. Terms are set. What matters most to most businesses, that's my last pro tip for you on this, is outcome with limited resources, which means you achieve your goals, that's effectiveness. There's also things like quality in there that customers aren't unhappy with the things that you're putting out, and with limited resources, as in with the resources that you have, and that goes to productivity. Limiting waste is a big principle, for example, in Agile, where things like WIP limits are coming from, or the idea of limiting context switching. Efficiency is important in some companies at some points. Don't neglect it entirely, but it's often not the big priority. Companies optimize for a mix of those things. That's also important to know. Some companies, for example, over the last decade, spend a ton of money just on hiring and retaining talent. That wasn't necessarily efficient, but it was a really effective way to help them achieve their goals in a market that was really difficult. Now those things have changed a bit. A lot of companies and a lot of bosses, especially, are looking at productivity metrics. I think, can we do more with what we have? That also means for you, as an engineering leader, it's your job to reuse resources smartly to help your business achieve its goals.
7. Understanding Resources and Taking Teams Along
Resources like time, capacity, and knowledge are important. Taking teams along is crucial. Use a framework with five steps: understanding the organization, defining success, knowing your position, and taking action. Productivity is a team sport. Start by understanding your organization's goals and what is important to your boss. Ask questions and look at documents to gain alignment.
Of course, resources are things like time, capacity, and knowledge. People aren't resources, but I'm sure you know that. I promised you a long-winded way to get started, and this was it. Ultimately, as leaders, we facilitate productivity. I'm here to show you over the next slides how to actually do that.
One thing that's really important to me in all of this is to take teams along. None of us can individually do all the things that our teams have set as goals. We need to take people along. With a topic like productivity that so many people have made poor experiences with, they've worked at companies that just treated people poorly and called it productivity or efficiency. With a topic like this, it's even more important to take people along. I'll show you a framework that you can use to do that. The steps in it are these five, where you know your organization, you define how you will know what success looks like, you know your position, and then you actually make it real. We'll walk through this quite quickly because it's honestly pretty simple. Like many leadership approaches, you can see here we start with understanding things, understanding what success will look like, and then actually taking action. This is just spelling this out a little bit more.
Engineering productivity is a team sport. That's our first rule. You can't do this alone. Productivity is in every decision that you make with your teams. You start by understanding your organization, what are your organization's goals, and also what is important to your boss. If you work in a company that's quite large, what your organization wants and the goals that it has may be not as important as actually just what your boss wants. Here are some questions you can ask to your boss, or you can also look at documents, for example, like roadmaps. Things like, what are our values and constraints? What are we optimizing for as a company? How are we making and costing the business money, either as a team or as a domain, whatever organization or entity you're leading? In addition to speaking with your boss, you can also look at industry news for budget. If you don't have one, you can ask your finance or HR partner for an employee hour. That's a number that a lot of companies use in order to estimate how much things cost. It can be super helpful if you just need a placeholder and don't actually have the compensation of the people who are on your team. It's a good way to still help you make calculations. The whole point of this exercise is essentially your alignment. You need to understand what your company wants, what it's going for, so then you can pass that forward to your team. Now, this step here is kind of a sub-step of each of the main steps that I showed you.
8. Validating Learnings and Aligning with Boss
Validate everything you learn by summarizing and sharing with your boss. Ownership and validation are crucial in leadership. Regularly align with your team and take appropriate action.
The whole idea here is that you validate everything you learn. Say you've looked at a roadmap, you've looked at organizational goals, you have a sense that currently your organization really cares about productivity. In addition to that, your organization also wants to make developers' work a bit more efficient. For example, save some costs on infrastructure. You've seen those things. What you then do in this step is you summarize it and you share it with your boss and say, hey, I've been looking at our goals. I've been trying to understand a bit better our strategies so I can align my team. Here are the main points that I've understood from this. Is this accurate? Does this align with your understanding? Is there any context that I'm missing or that I still need? This kind of validation is honestly a really useful trick in leadership in any case because ultimately you still need to own stuff. You need to be the person who tries and finds those things out, not at every level. Is there going to be a boss who tells you those things proactively, if we're being honest? In addition, it helps you really make sure that you're on the same page as the people you're working with so you can then take appropriate action. I'm not going to show this slide more but this should become something that you do on a regular basis. Now you know your organization's goals. You have a rough idea of where it's looking to go.
9. Defining Success and Metrics
Metrics create incentives, behaviors, and culture. Use metrics that measure what matters to your company. Make a case for productivity. Use effectiveness, efficiency, and productivity metrics. Adjust metrics if needed. Take your team along and involve them in defining productivity measures.
Next up is we define what success looks like. That's a step that's usually very easy to skip but I think it's really foundational because metrics and metrics in any sense, either qualitative things or quantitative ones, metrics create incentives which create behaviors, which create culture. Any metrics that you use matter much more than you may think. That's also why it doesn't matter if you end up using DORA metrics, the space framework, DevEx, Flow, or anything else that's out there. It doesn't matter whatever you use if these metrics don't measure what matters to your company and if you don't have your team and boss on board and you don't keep them in the loop on your decisions.
To help you get started, you will very likely need to make a bit of a case for ultimately what productivity means for your team. You can on this slide see a ginormous list of metrics. Those are for effectiveness. For example, goals are aligned, you have the quality that you're looking for in the delivery of things, customers are adopting the tools that you're using or the features you're putting on. Here's a lot of efficiency and productivity metrics like deployment frequency, lead time to changes. You may have seen a lot of those in other contexts already, those, for example, DORA metrics.
If need be, you could adjust with a balanced metric, for example, cycle time, and in addition, some sort of quality metric, if that's a concern you have. Always make clear if metrics are for or about the group. I mentioned that it's important to take your team along, and this is where you're doing this. You can go to your team and tell them, I'm looking to understand a bit better how we can be more productive as a team. Here's what productivity for us as a team actually means, and here's how we're going to measure it. For example, I found that lead time and the quality of the work that we're putting out are really good measures to get us started. How does the team feel about that? Ask them. They might have some concerns that you'll need to address in the beginning, and that's really an important part of this as well.
10. Metrics and Team Involvement
Consider extreme scenarios and adjust metrics accordingly. Involve the team in defining productivity measures. Make sure metrics are used for or about the group. Keep the team informed and address concerns. Use metrics as a way to learn and improve.
I always like to ask, what if we took this to the extreme? What if for weeks on end we only focused on cycle time? That might actually not be too bad. Depending on which area your team works in, that actually might have harmful consequences, though. It's important to always keep that in mind. If need be, you could adjust with a balanced metric, for example, cycle time, and in addition, some sort of quality metric, if that's a concern you have.
Always make clear if metrics are for or about the group. I mentioned that it's important to take your team along, and this is where you're doing this. You can go to your team and tell them, I'm looking to understand a bit better how we can be more productive as a team. Here's what productivity for us as a team actually means, and here's how we're going to measure it. For example, I found that lead time and the quality of the work that we're putting out are really good measures to get us started. How does the team feel about that? Ask them. They might have some concerns that you'll need to address in the beginning, and that's really an important part of this as well.
I always like to tell people if the metrics that I'm using are for this group, as in for a team, for example, to learn together, grow together, or if the metrics are about a group. For example, if I'm reporting on a team, I'm making sure that my boss has visibility. A team should be able to use metrics as a way to learn, and they should always be aware of what metrics are used to report about them. Talk to your team, keep them in the loop.
11. Developing Productivity and Achieving Goals
Keep in mind that metrics are signals, not targets. Review your team's position and identify areas for improvement. Continually discuss productivity and incorporate it into your team's work. Take these steps to develop productivity and achieve your goals. Access additional resources at the provided link.
At this point, you have probably one or two, maybe three or four metrics. It's really important to keep in mind with metrics that there's signals and not targets. They're just helping you see how things are going. They're not the thing that you run towards. You have your organization's goals. You have a sense of how you will measure if you're doing well or not.
Next step will be to know your position. This is where you just do a short review of where your team is actually at. I usually recommend doing this at least twice a year. If you're in a very fast-moving company, like a startup, it can also make sense to do this more often. At this point, you're, for example, looking at what's our budget, how are we making and spending money, where are the big gaps in our technology, where are some issues maybe in our delivery and our process. You should really also ask your teammates for input on this, because they usually have things that really bug them, that make their job much harder than it should be, or that are just annoyances that could be resolved.
Look at where you can improve as a team, and then prioritize. These improvement opportunities, you have some questions here that you can ask yourself or your teammates about this. Then you can cluster them into things where, for example, you're masting money, areas where you can be more productive, where you can do more with what you have, and near-term improvements, as well as things that are a bit longer term. The whole idea there is to really help you know your position. Honestly, those three steps, if you can do those, and you can probably do them in a couple of hours, but if you can do those, you will have a really good sense already of how your team is doing and where improvement areas are. That's when you start making it real.
The main thing, honestly, is to continue talking about this topic. You've, at this point, begun having conversations about productivity with people. You all have a sense of what it means, what it will look like for your team. You continue weaving this into the work that you're doing together in your stand-ups, in your reviews, in your planning meetings. Talk about how you can do things better as a team collectively. Then, over time, you will actually build the productivity that your team needs and that your company expects from it. You may have noticed that I've only showed you three and a half to four steps to take on developing productivity. That's honestly because I just want you to get started. There is one more step. You can find it at the bit.ly slash ng-productivity cheat sheet and the article that I wrote about this. Thinking about this topic only and talking about it with your teams regularly is going to go a really long way in helping you and your teams be more productive. That's the most important thing I want you to remember. I really hope you can go from business buzzwords to things that are actually empowering for you and your team and things that are going to help you take productivity from something that's tricky, difficult, hard to understand to something that's actually useful for your team in helping them have conversations that they need to have and ultimately help you achieve the goals that you need.
As mentioned, you can find all resources at the bit.ly link below. Thank you so much for having me. My name is Lina Reinhart. Enjoy the heck out of the conference today.
Comments