« All Episodes

Comparing Cost Curves and Second Order Thinking

Published 1/17/2023

What does a feature cost? Your first answer will probably focus on the time to build, or the features needed... Maybe the amount of hiring necessary to deliver. But what about after that?

The cost of our decisions is not limited to the short term - usually, a decision has a long term cost curve. Knowing what the cost curve is for any significant investment helps you make better decisions and have clearer anticipation and planning intuition.

📮 Ask a Question

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.

📮 Join the Discord

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!

🧡 Leave a Review

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)

every decision you make has a cost and if you aren't thinking about the cost of your decisions in today's episode hopefully i can encourage you to do so and when we're talking about cost we're not just talking about monetary cost and we're also not just talking about the cost of time although that is kind of the common binding factor for everything that we do there is some cost of time but i want you to start thinking on the second or third order effects of your various decisions specifically in today's episode i want to introduce you to the first order effects to you the idea of a cost curve. This is cost over time. This very quickly applies, and you can see this applies very easily, to most of the features that you might develop in an application in your day-to-day work. Let's imagine that your company decides to adopt a feature, and you as the engineer, you have to determine what is the cost of this feature. The first order cost is whatever it takes to build the feature. This means that you might take the work, you might break it down, you might try to understand the architecture or the implementation, what kinds of services are we going to integrate with, whatever it is. Some kind of cost estimate. Some input estimate in order to make the feature exist in the first place. And there's various different models for understanding even this kind of cost, this first order cost, different ways of accomplishing things. And a lot of the kind of methodology that we follow as software engineers is optimized around this first order cost. But it's not the only cost of the feature. There are other costs to consider with everything that we do. For example, what is the ongoing cost of operation for this feature? Not just the DevOps resources, the server or whatever, but the support. What happens when it breaks? Or the various dependencies downstream. What about the dependencies upstream? What about mitigating risk over time? Are there external partners that if those partners go down, we have to do something about it in order to make this feature accessible still? What is the cost of attrition if we do indeed have to cut the feature? Is the feature complicated? If it is, then the support of the feature itself might mean that we have to retain the support of the feature. If we have to retain the support of the feature, then the support may contain talent that may otherwise may not even need in order to continue operating efficiently. These kinds of second order cost considerations, the ones that extend over time and have a lot more uncertainty attached to them, especially extending further out over time, these are the kinds of things to consider when making significant decisions, especially the kinds of decisions that are difficult to come back from. This concept of a cost curve is essentially what are you putting into this over the course of time. Now, the cost curve doesn't explicitly cover your return, although generally speaking, you are going to have different returns. But in order to make these kinds of decisions, we're going to equalize the return. In other words, given two decisions that have different cost curves, to keep things simple, we're going to assume that the benefit from both of these is the same. But in practice, that is rarely the case. With that said, imagine the different kinds of cost curves that you could adopt in order to deliver a feature to your platform. Some cost curves require a lot of upfront investment and then some lower ongoing investment. As an example, releasing a single feature to an existing app. You may have the upfront development. Cost of that and then the ongoing support of that, like we were mentioning earlier. Other cost curves may actually increase over time. For example, operational resources. This tends to increase over time as your user load increases, as your data load increases, your computational load, whatever it is. Over time, the cost curve tends to go up and to the right. Let's talk about something a little less conventional. Let's talk about the cost. The cost curve of healthy decision making. Maybe healthy decision making has costs of investment in exercise or investment in healthy food. That food may be a little more expensive than the food that you were eating before. The more readily available processed food is probably a little bit cheaper than raw foods. You may have to invest time in learning how to cook. Perhaps increasing the frequency of your doctor's visits or various health issues. Equipment or supplements or whatever it is. We are certainly not here to offer you health advice. But in order to invest in a healthy life, you may have some ongoing costs right now. And in order to not invest in a healthy life, in other words, to kind of maintain the status quo, assuming that you were not doing any of those things may have a very low cost, at least right now. And this illustrates a good example of considering the cost curves. What is the cost over time? Well, if you invest in healthy habits now, most of those habits will have lower overhead as you begin to kind of create systems that support those habits. It becomes a part of your life. You begin to kind of integrate it with your other activities. And so the cost kind of goes down a little bit over time. That investment. Overall is going to be a small ongoing cost, probably throughout the rest of your life. The alternative might mean a curve that stays relatively flat and then starts to go up. As you age those investments that you could have made in your health, if they weren't made, your health may start declining and costing you money, comfort, time, functionality, you know, whatever it is. Over time, if you don't invest in your health becoming unhealthy, the cost curve goes dramatically up to the right. And so it's important to look at these and decide which one of these seems like the best one for me. Keep in mind that there are two kind of ways of looking at cost curves. The first is the relative consideration. So this is kind of looking at the theoretical side of the cost curve. That is, if you had an infinite amount of money, which of the curves is best for you? On the other hand, you could look at the absolute curve. The absolute curve actually assigns numbers. This is most relevant, of course, when you're talking about actual money. For example, you might look at cost curves between buying or renting a home. And initially, the curve itself, if you were to kind of normalize it, make them relative to each other, the curve of buying seems attractive, especially if you could buy all up front. You're going to spend less money, generally speaking, purchasing a home than you would renting for the rest of your life. However, if you look at the absolute cost of that, most people can't just buy a home outright. And so even though that one-time expense would yield a better cost curve or a more kind of a minimum cost curve, over the course of your life, it also has some absolute limits. And so we need to keep this in mind when we're looking at different cost options, different cost curves. What is it that makes sense for us, not just in theory, but with our actual situation, with our actual resources? What makes the most sense? You can also apply the same concepts to buy versus build decisions. A buy decision might suggest, smooth out your costs over time. You purchase something off the shelf, it reduces the cost, but you keep paying that same cost indefinitely. Whereas if you build something, you pay a pretty high upfront cost, but then you start paying less over time. Remember, the cost curve of building something also includes the variability of what happens when it breaks or what is the cost of maintenance, while the cost curve of buying, is only volatile related to whether or not the provider of that particular thing is going to sustain their business and whether they will change their prices once you've already bought in. I'd encourage you to play around with this concept of cost curves. Try to imagine what the cost curve is for even your personal decisions and what kinds of investments you're making, what are the costs of those investments over time, and compare them. Compare one. Cost curve to another. One other thing to keep in mind as you are building these out, conceptual models of these cost curves, you can imagine that this is essentially investment over time, so it's a XY graph if you need to visualize it. But another thing you should keep in mind is you're almost certainly going to be wrong. These are all models, right? Models all are missing something. So when you're building these cost curves out, it makes sense to capture what you believe, what you believe is the variance, the potential variance. Another way to express this is your confidence in how accurate that curve is. And this accuracy or the variance can change over the course of the curve. For example, you may have a lot of confidence that once the thing is built, the maintenance on it is going to cost only so much money. So you have a relatively tight range that you imagine that feature costing you over time. But the variability, the variability is very high for the cost of building. In other words, once the feature is there, it's pretty easy to maintain, but we have no idea how much of an investment it will take to actually build it in the first place. Similarly, there may be a lot of unknowns about the market conditions. There may be a lot of unknowns about your personal future. If you're talking about personal decisions, what is the cost curve on those? And so expressing the variance, the level of uncertainty that you have about a given decision can help you understand what are the risks in choosing one cost curve versus another. One final word of caution here. You're not going to be able to make a decision solely based on cost curves. This is one tool in a larger tool set to help wrap your mind around various options that you may have. But only looking at cost curves is going to skip out on a lot of information. Like we mentioned before, the return on investment that you're looking for. So this is not a decision making framework altogether on its own. This is more a way of adding more information if you're struggling to make a decision. And in particular, if you have cost curves that are significantly different from each other, that becomes a more relevant factor in your decision making. These kinds of things can sometimes go under the radar. This is why we were talking about second, order thinking in the beginning of this episode. Thinking about cost curves over time may be a significant enough factor to choose one option versus another. But it's going to be most relevant when those cost curves are significantly and clearly different from each other. Thanks so much for listening to this episode of Developer Tea. I hope you enjoyed this discussion on cost curves. And hopefully you can find a way of applying this in your personal life or in your work in a way that you can use it in your personal life. And I hope you have a great day. That benefits you and helps you make better decisions. I hope that you have good stories about doing this in the near future. And if you want to share your opinions or your stories about maybe doing this in the past, maybe you had a different name for it. I don't know that cost curves is the accurate name for this. It's just what we're calling it on this episode. Maybe you have an example of this investment over time concept that you'd like to share. Well, you can join us on the Developer Tea Discord community and share it today. DeveloperTea.com. That's totally free for you to join. It will always be free. And we have a great community of people over there asking questions about their careers, asking questions about code they're working on, talking about books and other resources, podcasts. You don't want to miss out on that. DeveloperTea.com. Thanks so much for listening. And until next time, enjoy your tea.