Productivity is about working towards your goals, and optimization is about sharpening those efforts more directly.
We talk about two forks in the road when you choose the types of optimization you'll deploy in your career and personal life.
This episode is brought to you by LaunchDarkly. LaunchDarkly enables development and operations teams to deploy code at any time, even if a feature isn't ready to be released to users. Innovate faster, deploy fearlessly, and make each release a masterpiece. Get started at LaunchDarkly.com today!
If you enjoyed this episode and would like me to discuss a question that you have on the show, drop it over at: developertea.com.
If you want to be a part of a supportive community of engineers (non-engineers welcome!) working to improve their lives and careers, join us on the Developer Tea Discord community by visiting https://developertea.com/discord today!
If you're enjoying the show and want to support the content head over to iTunes and leave a review! It helps other developers discover the show and keep us focused on what matters to you.
Transcript (Generated by OpenAI Whisper)
In the endless discussion about productivity, eventually, at some point, the conversation will turn to optimization. And in today's episode, I want to present to you two kind of forks in the road that you'll inevitably end up having to decide which direction you're going to take. My name is Jonathan Cutrell, you're listening to Developer Tea. My goal on the show is to help driven developers like you find clarity, perspective, and purpose in their careers. And the idea of optimization is something that developers are intimately familiar with. We know that optimized code is often the end goal in our production processes. But we also are keenly aware that sometimes our optimization has no ultimate effect. In other words, we're optimizing something that doesn't really have a major effect on our actual goal. And as it turns out, with productivity, the same is true. We've been talking about productivity on the show for a long time, and we've kind of focused in on it in the last couple of weeks. And one of the most important kind of central truths about productivity is that productivity means nothing without a goal. You cannot be productive without a goal. And the reason for this is that productivity is not just about output. This is the common misconception. If we increase our output, we will increase our productivity. That is only one part of the equation, the output that you are actually responsible for, whether you are a manager and you're responsible for your team's output, or you are an individual contributor and you're responsible for your own output, or just in your personal life, responsible for the things that you get done on your to-do list. Well, if those things are not carrying you towards an actual goal that you care about, then you might as well not do them in the first place. Output being a thousand, you know, a thousand percent what it was last week takes you no closer to the things that you actually care about getting to. But assuming that eventually you do start having a closer to direct relationship between the work that you're doing, the output that you have and the actual goal you're moving towards when you are talking about productivity. This is a great place to be. But you also face some more dangerous forks in the road. The first fork in the road, the first possible dangerous fork in the road, is choosing your relationship with the laws of nature. This may sound really heady, but let's break it down a little bit. On the one fork, the one side of the fork, you have the option of pushing yourself to your absolute limits. This means trying to find ways to hack your sleep or finding ways to squeeze every little bit of productivity out of your week that you can. You may find yourself trying to move closer to an office, not just so you can shorten your commute, but importantly so you can spend more time at the office. So this kind of optimization is trying to find a way to spend more energy on the same work. Now, assuming that you are pointing all of that energy in the correct direction, if you start doing this, initially you might see a wild bump in output. Then that output may actually go towards something good. This may feel like the right direction. But the other fork in the road is a conscious choice to both respect and use the laws of nature to your benefit. Instead of pushing yourself to limit, you in this decision, in this direction of optimization, you're choosing to find ways to back yourself away from those limits. You're trying to find ways of creating more headroom, getting more rest, finding things that are more healthy and varied in your life. It should be no secret, which one of these forks I recommend that you take and wouldn't present it this way. It seems pretty clear that everybody would want to choose being healthy over trying to push your limits for as long as possible. But accidentally choosing the wrong fork in the road here is the most common mistake you'll see, because it seems like there's only one lever, there's only one variable that you can change, and that is how much you work. It seems like the only way that you can actually get more done towards the goals that you care about, because again, you're aligned on your goals, you know what's in front of you, is to try to push yourself to do more work. And it's no secret that for a short period of time this will have a positive effect on your output. In the long run though, this actually has a lot of, perhaps counterintuitive effects on your output. The quality not only goes back down, but goes into the negative, in the sense that you start producing buggy code, for example, whenever you are stretched to your limits. And the reason for this is very simple. Once again, you're pushing against these laws of nature. And when we say the laws of nature, in this case, you know, we might be talking about the requirement for sleep. Eventually, if you stop sleeping or you chronically are losing a lot of sleep on average per night, then you're not going to operate, at least from a cognitive perspective. And also from a physical perspective, you're not going to be able to operate at your full capacity. And so those hours that you're spending at the edges, well, they're actually reducing your effectiveness. But if you were to flip this around and to respect the laws of nature, then you might, for example, set aside time to exercise. And as it turns out, exercise is correlated with you guessed it, higher cognitive capacity. So be very careful at this particular fork in the road. And it's important to recognize that unlike physical forks in the road, you can make this decision at any point in time. If you've accidentally chosen one direction, well, it turns out that the fork in the road is today. Maybe you didn't see the second option. Maybe you didn't see the option of respecting and then also taking advantage of these laws of nature. Now, it's not going to be good audio, good podcast content for us to go through every law of nature. We've already talked about one. There's kind of biological needs that you have for rest and relaxation. Other examples might include the fact that trying to focus on more than one thing at a time actually reduces your capacity pretty drastically. And so one of the laws of nature as it relates to human cognitive capacity is that you need to focus on one thing at a time and reduce the amount of distractions that you have in your life. So these are the kinds of things that if you start to respect them and then use them, you can actually take advantage rather than be limited by them. So optimization, not to try to break those laws or to try to stretch them or get around them, but instead to reinforce them to work kind of accelerated by those laws. We're going to take a quick break and then we're going to come back and talk about the second fork in the road, which actually has broad applicability and I have a little bit less some opinion on which direction you go. Stick around for that second. Launch StarClean is changing the way you think about delivering software. It's built for the modern enterprise and here's how it works. Launch StarClean enables development and operations teams to deploy code at any time, even if the feature they built isn't ready to be released to users. Rapping code with feature flags gives you the safety to test new features and infrastructure in your production environments without impacting the wrong end users. And then when you're actually ready to release more widely, just update the flag and the changes are made instantaneously by their real time streaming architecture. With Launch StarClean, you can innovate faster, deploy fearlessly and make each release a masterpiece. Get started for free today at launchdarkly.com. We're talking about optimization. We've talked about optimization towards productivity and we specifically talked about trying to fight the laws of nature, trying to optimize around them rather than optimizing to take advantage of them. That was the first fork. The second fork is what we're going to call for the sake of this episode, local optimization versus global optimization. And there's a lot of ways that this can play out. There's a lot of different kind of flavors of the same thing here. So we're going to talk about a couple of those now. Local optimization versus global optimization. If you choose global optimization as a route in life for your productivity, for choosing to improve the way you work in a particular area, in this scenario, you're going to look at your constraints. If you're globally optimizing, you're looking at the things that are holding you back. And this doesn't necessarily mean the things that you're not good at. In fact, you must look at your goals to really know what your constraints are in the first place. Think about this for a second. If productivity is only meaningful if you have a goal, then constraints are only meaningful if you have a goal as well. Why is that? Well, because your constraints are a limit on your productivity. And your productivity can only be limited with reference to a goal. And so a constraint is keeping you from meeting your goals. That's all it is. And so globally optimizing your behaviors, your skills, your productivity, whatever the thing is that is holding you back, globally optimizing, that thing is going to be a goal about relieving a constraint. It's entirely focused on relieving the thing that is holding you back from accomplishing your goals. Local optimization, however, is less about your goals and more about the problems that you're facing right now. And so if you're locally optimizing, you might be choosing a skill that you need to do the job that's in front of you today. If you're locally optimizing, you might choose something that you just want to be better at. And again, except before the break that I don't have as much of an opinion on this one, I do think that overall most of our time should be spent thinking about global optimization in our personal lives rather than local optimization. But there are times where local optimization, this kind of tactical way of thinking is just as important as that global optimization. A perfect example of this for me was when my children were born. Even though I had career goals still, the thing that I needed to optimize for in those moments was my physical, mental, and emotional presence. I didn't need to optimize how much time I was going to spend on tasks that day because no matter how much planning I did, those plans were often, more often than not, pretty much all the time, they were interrupted. And instead of trying to optimize for the goals that I was trying to meet in my life, I needed to locally optimize for the values that I wanted to uphold in that period of my life. There was no actual goal to be met. Being productive wasn't really the point. And there are times in your life where being productive won't be the point. Instead you shift the way you think about your goal as not necessarily related to your output, but instead related to your relationship, your relationship with the world around you, your relationship with yourself, with what's happening in front of you. And this is only one example to be clear of local optimization. Let's take this and apply it to a broader view. If you have local optimization on, let's say, processes in your company, then you might be thinking about cost reduction as it relates to the individual processes. In other words, reducing the cost or improving the efficiency of individual processes across the company. If you're thinking about global optimization, once again, we're going to go back to that constraint concept. Global optimization is looking specifically at things that are holding you back from accomplishing something as a company. Often when you think about global optimization, you're thinking about throughput for the company, with a specific focus on the bottlenecks. And so global optimization is focused on bottlenecks, whereas local optimization doesn't really have a specific focus. For companies that should be doing a local optimization, throughput is not really as much of a problem as cost efficiencies are. The important guiding question that can help you choose between these local and global optimizations, because it can get a little confusing, the question is, what are you optimizing for? What is the goal of this optimization? Is the goal of whatever you're trying to improve on? Is it aligned with your longer term goals, the things that you are shooting towards into the future, the way that you're measuring your actual productivity? Is that what you're trying to optimize for? Or are you trying to optimize for something different for a specific cost category, for example? This has implications that go far beyond your actual day-to-day work. It goes far beyond what your work is doing as a company goes deep into our personal lives. What are we optimizing for? How are we shaping our lives to meet the values that we care about, to meet the long-term goals or to help us create and abide by the identities that we want to carry? This fork in the road probably has more than two directions to be fair. But once again, just like the previous fork, it's more of a virtual fork. It's something that you're facing really every day. What am I optimizing for? Am I thinking locally? Am I thinking globally today? Thanks so much for listening to today's episode. I hope you enjoyed this discussion on optimization, and I know that there's plenty more to talk about on the engineering side of optimization. If you want to share a story about a time when you maybe optimized a little too early or something that you feel like was a huge win in that kind of practical department, share some of those stories, those experienced stories. With the Developer Tea community, head over to developertea.com slash discord. We would love to hear your stories there. Thanks so much for listening. Thank you again to Launch Darkly for sponsoring today's episode. You can get started for free today at launchdarkly.com. If you enjoyed this episode and you want to miss out on future episodes, subscribe in whatever podcasting app you're currently using. And for the longer term, if you want this podcast to stick around, one of the best investments you can make is one that's free for you. It makes a huge difference for me, and that's simply leaving a review in iTunes or whatever podcasting platform that you use. Of course, iTunes has the biggest effect across multiple systems. Thanks so much for listening and until next time, enjoy your tea.