Comparing Cost Curves and Second Order Thinking
Summary
This episode introduces the concept of a cost curve—a model for visualizing the cost of a decision over time. The host emphasizes moving beyond first-order costs (like initial development time) to consider second and third-order effects, such as ongoing maintenance, support, operational scaling, and risk mitigation.
The discussion applies cost curves to software feature development, illustrating how different architectural or implementation choices create distinct cost profiles. Some features require high upfront investment but lower ongoing costs, while others (like operational resources) may see costs increase over time as user load grows.
The host extends the framework to personal decisions, using health investment as an example. Investing in healthy habits may have an upfront cost that decreases as systems form, whereas not investing leads to a flat curve that spikes dramatically later due to health decline. The episode also contrasts relative cost curves (theoretical best) with absolute curves (constrained by real resources), using examples like buying versus renting a home or buying versus building software.
A key caution is that all models are imperfect; the host advises estimating variance and confidence intervals for different parts of the curve. Cost curves are presented as one tool among many for decision-making, most useful when comparing options with significantly different long-term cost profiles. The goal is to foster second-order thinking to make better, more informed choices in both professional and personal contexts.
Topic Timeline
- 00:00:00 — Introduction to decision costs and second-order thinking — The episode opens by framing every decision as having a cost, which extends beyond money or time to include second and third-order effects. The host introduces the core idea of thinking more deeply about the long-term implications of choices, setting the stage for the concept of cost curves.
- 00:01:01 — Defining the cost curve concept — The host formally introduces the ‘cost curve’ as a model for cost over time. It’s immediately applied to software feature development, where the first-order cost is the initial build effort. The discussion notes that much software engineering methodology is optimized around this first-order cost, but it’s not the only cost to consider.
- 00:02:34 — Exploring second-order costs of a feature — The host lists various ongoing costs beyond initial development: operational costs (DevOps, servers), support costs when things break, dependencies created upstream and downstream, risk mitigation, and the cost of talent attrition if a complex feature requires specialized knowledge to maintain. These are the uncertain, long-term second-order considerations.
- 00:04:36 — Examples of different cost curve shapes — Different cost curve profiles are described. Some require high upfront investment with lower ongoing costs (like building a feature). Others increase over time, such as operational resources scaling with user load. The host simplifies comparison by assuming equal benefit from different options to focus purely on cost differences.
- 00:05:25 — Applying cost curves to personal health decisions — The concept is applied to personal decision-making, using investment in health as a case study. Investing now (costs for healthy food, exercise, learning) may have a curve that starts higher but flattens or even decreases as habits form. The alternative—not investing—has a low, flat cost now but a curve that spikes dramatically later in life due to health decline, illustrating a powerful long-term trade-off.
- 00:07:42 — Relative vs. absolute cost curves — The host distinguishes between relative cost curves (theoretical, infinite resources) and absolute cost curves (constrained by actual resources). The example of buying vs. renting a home is used: buying may have a better relative curve, but the absolute upfront cost makes it impossible for many, so renting’s smoothed cost curve becomes the practical choice.
- 00:09:23 — Buy vs. build decisions in software — The buy vs. build decision is analyzed through the cost curve lens. Buying (e.g., SaaS) typically smooths costs over time but commits to ongoing payments and vendor risk. Building incurs a high upfront cost but potentially lower long-term costs, though it includes variability for maintenance and breakage. Each option represents a different risk and cost profile over time.
- 00:10:44 — Acknowledging model uncertainty and variance — A crucial caveat is added: all models are wrong to some degree. When building cost curves, it’s important to estimate variance and confidence levels. Uncertainty can differ across the timeline (e.g., high variance in build cost, low variance in maintenance cost). Understanding this uncertainty helps assess the risk of choosing one curve over another.
- 00:12:08 — Cost curves as one tool in the decision toolkit — The host cautions that cost curves are not a complete decision-making framework on their own, as they omit factors like return on investment. They are best used as an additional informational tool, particularly valuable when comparing options with significantly different long-term cost profiles. This ties back to the episode’s opening theme of second-order thinking.
Episode Info
- Podcast: Developer Tea
- Author: Jonathan Cutrell
- Category: Technology Business Careers Society & Culture
- Published: 2023-01-17T08:00:00Z
- Duration: 00:14:21
References
- URL PocketCasts: https://pocketcasts.com/podcast/developer-tea/cbe9b6c0-7da4-0132-e6ef-5f4c86fd3263/comparing-cost-curves-and-second-order-thinking/a8f5dd18-04ca-4ed0-9d6c-744e212f7340
- Episode UUID: a8f5dd18-04ca-4ed0-9d6c-744e212f7340
Podcast Info
- Name: Developer Tea
- Type: episodic
- Site: http://www.developertea.com
- UUID: cbe9b6c0-7da4-0132-e6ef-5f4c86fd3263
Transcript
[00:00:00] Every decision you make has a cost.
[00:00:15] And if you aren’t thinking about the cost of your decisions in today’s episode, hopefully
[00:00:21] I can encourage you to do so.
[00:00:24] And when we’re talking about cost, we’re not just talking about monetary cost.
[00:00:30] And we’re also not just talking about the cost of time, although that is kind of the
[00:00:35] common binding factor for everything that we do.
[00:00:39] There is some cost of time.
[00:00:43] But I want you to start thinking on the second or third order effects of your various decisions.
[00:00:55] Specifically in today’s episode, I want to introduce to you the idea of a cost curve.
[00:01:01] This is cost over time.
[00:01:06] This very quickly applies, and you can see this applies very easily, to most of the features
[00:01:13] that you might develop in an application in your day-to-day work.
[00:01:18] Let’s imagine that your company decides to adopt a feature, and you as the engineer,
[00:01:27] you have to determine what is the cost of this feature.
[00:01:31] The first order cost is whatever it takes to build the feature.
[00:01:38] This means that you might take the work, you might break it down, you might try to
[00:01:44] understand the architecture or the implementation.
[00:01:48] What kinds of services are we going to integrate with?
[00:01:53] Whatever it is, some kind of cost estimate, some input estimate in order to make the feature
[00:02:01] exist in the first place.
[00:02:05] And there’s various different models for understanding even this kind of cost, this first order cost,
[00:02:12] different ways of accomplishing things.
[00:02:14] And a lot of the kind of methodology that we follow as software engineers is optimized
[00:02:23] around this first order cost.
[00:02:28] But it’s not the only cost of the feature.
[00:02:34] There are other costs to consider with everything that we do.
[00:02:38] For example, what is the ongoing cost of operation for this feature?
[00:02:43] Not just the DevOps resources, the server or whatever, but the support.
[00:02:51] What happens when it breaks?
[00:02:53] Or the various dependencies downstream that this feature creates?
[00:02:59] What about the dependencies upstream?
[00:03:02] What about mitigating risk over time?
[00:03:05] Are there external partners that if those partners go down, we have to do something
[00:03:10] about it in order to make this feature accessible still?
[00:03:15] What is the cost of attrition if we do indeed have to cut the feature?
[00:03:19] Is the feature complicated?
[00:03:21] If it is, then the support of the feature itself might mean that we have to retain talent
[00:03:28] that we otherwise may not even need in order to continue operating efficiently.
[00:03:34] These kinds of second order cost considerations, the ones that extend over time and have a
[00:03:40] lot more uncertainty attached to them, especially extending further out over time, these are
[00:03:48] the kinds of things to consider when making significant decisions, especially the kinds
[00:03:53] of decisions that are difficult to come back from.
[00:03:57] This concept of a cost curve is essentially what are you putting into this over the course
[00:04:02] of time?
[00:04:05] The cost curve doesn’t explicitly cover your return, although generally speaking you are
[00:04:10] going to have different returns, but in order to make these kinds of decisions we’re going
[00:04:15] to equalize the return.
[00:04:17] In other words, given two decisions that have different cost curves, to keep things simple
[00:04:22] we’re going to assume that the benefit from both of these is the same.
[00:04:27] But in practice, that is rarely the case.
[00:04:31] With that said, imagine the different kinds of cost curves that you could adopt in order
[00:04:36] to deliver a feature to your platform.
[00:04:40] Some cost curves require a lot of upfront investment and then some lower ongoing investment.
[00:04:48] As an example, releasing a single feature to an existing app, you may have the upfront
[00:04:55] development cost of that and then the ongoing support of that, like we were mentioning earlier.
[00:05:02] Other cost curves may actually increase over time.
[00:05:05] For example, operational resources.
[00:05:08] This tends to increase over time as your user load increases, as your data load increases,
[00:05:14] your computational load, whatever it is.
[00:05:17] Over time, the cost curve tends to go up and to the right.
[00:05:22] Let’s talk about something a little less conventional.
[00:05:25] Let’s talk about the cost curve of healthy decision making.
[00:05:29] Maybe healthy decision making has costs of investment in exercise or investment in healthy food.
[00:05:38] That food may be a little more expensive than the food that you were eating before.
[00:05:41] The more readily available processed food is probably a little bit cheaper than raw foods.
[00:05:47] You may have to invest time in learning how to cook, perhaps increasing the frequency
[00:05:52] of your doctor’s visits or various health equipment or supplements or whatever it is.
[00:05:59] We are certainly not here to offer you health advice, but in order to invest in a healthy
[00:06:07] life, you may have some ongoing costs right now.
[00:06:13] In order to not invest in a healthy life, in other words, to maintain the status quo,
[00:06:19] assuming that you are not doing any of those things may have a very low cost, at least right
[00:06:25] now. This illustrates a good example of considering the cost curves. What is the cost over time?
[00:06:36] If you invest in healthy habits now, most of those habits will have lower overhead
[00:06:42] as you begin to create systems that support those habits. It becomes a part of your life.
[00:06:47] You begin to kind of integrate it with your other activities and so the cost kind of goes
[00:06:52] down a little bit over time. That investment overall is going to be a small ongoing cost
[00:06:59] probably throughout the rest of your life. The alternative might mean a curve that stays
[00:07:05] relatively flat and then starts to go up. As you age those investments that you could have made
[00:07:12] in your health, if they weren’t made, your health may start declining and costing you
[00:07:19] money, comfort, time, functionality, whatever it is. Over time, if you don’t invest in your
[00:07:27] health becoming unhealthy, the cost curve goes dramatically up to the right. It’s important to
[00:07:35] look at these and decide which one of these seems like the best one for me. Keep in mind that there
[00:07:42] are two kind of ways of looking at cost curves. The first is the relative consideration. So this is
[00:07:50] kind of looking at the theoretical side of the cost curve. That is, if you had an infinite amount
[00:07:57] of money, which of the curves is best for you? On the other hand, you could look at the absolute
[00:08:03] curve. The absolute curve actually assigns numbers. This is most relevant, of course,
[00:08:08] when you’re talking about actual money. For example, you might look at cost curves between
[00:08:15] buying or renting a home. Initially, the curve itself, if you were to kind of normalize it,
[00:08:22] make them relative to each other, the curve of buying seems attractive, especially if you could
[00:08:27] buy all upfront. You’re going to spend less money, generally speaking, purchasing a home than you
[00:08:34] would renting for the rest of your life. However, if you look at the absolute cost of that,
[00:08:42] most people can’t just buy a home outright. And so even though that one-time expense
[00:08:49] would yield a better cost curve or a more kind of amenable cost curve over the course of your life,
[00:08:57] it also has some absolute limits. And so we need to keep this in mind when we’re looking
[00:09:03] at different cost options, different cost curves. What is it that makes sense for us,
[00:09:09] not just in theory, but with our actual situation, with our actual resources, what makes the most
[00:09:15] sense? You can also apply the same concepts to buy versus build decisions. A buy decision
[00:09:23] might smooth out your costs over time. You purchase something off the shelf, it reduces the cost, but
[00:09:30] you keep paying that same cost indefinitely. Whereas if you build something, you pay a pretty
[00:09:36] high upfront cost, but then you start paying less over time. Remember, the cost curve of building
[00:09:44] something also includes the variability of what happens when it breaks or what is the cost of
[00:09:50] maintenance. While the cost curve of buying something is only volatile related to whether
[00:09:58] or not the provider of that particular thing is going to sustain their business and whether they
[00:10:05] will change their prices once you’ve already bought in. I’d encourage you to play around with
[00:10:10] this concept of cost curves. Try to imagine what the cost curve is for even your personal decisions
[00:10:16] and what kinds of investments you’re making, what are the costs of those investments over time,
[00:10:21] and compare them. Compare one cost curve to another. One other thing to keep in mind as
[00:10:28] you are building these out, conceptual models of these cost curves, you can imagine
[00:10:33] that this is essentially investment over time, so it’s a x y graph if you need to visualize it.
[00:10:39] But another thing you should keep in mind is you’re almost certainly going to be wrong.
[00:10:44] These are all models, right? Models all are missing something. So when you’re building these cost
[00:10:49] curves out, it makes sense to capture what you believe is the variance, the potential variance.
[00:10:56] Another way to express this is your confidence in how accurate that curve is.
[00:11:03] And this accuracy or the variance can change over the course of the curve. For example,
[00:11:08] you may have a lot of confidence that once the thing is built, the maintenance on it is going
[00:11:14] to cost only so much money. So you have a relatively tight range that you imagine that
[00:11:20] feature costing you over time, but the variability is very high for the cost of building.
[00:11:27] In other words, once the feature is there, it’s pretty easy to maintain, but we have no idea
[00:11:33] how much of an investment it will take to actually build it in the first place.
[00:11:37] Similarly, there may be a lot of unknowns about the market conditions. There may be a lot of
[00:11:43] unknowns about your personal future. If you’re talking about personal decisions, what is the
[00:11:49] cost curve on those? And so expressing the variance, the level of uncertainty that you
[00:11:55] have about a given decision can help you understand what are the risks in choosing one cost curve
[00:12:02] versus another. One final word of caution here, you’re not going to be able to make a decision
[00:12:08] solely based on cost curves. This is one tool in a larger tool set to help wrap your mind around
[00:12:16] various options that you may have. But only looking at cost curves is going to skip out on
[00:12:21] a lot of information, like we mentioned before, the return on investment that you’re looking for.
[00:12:28] So this is not a decision making framework altogether on its own. This is more a way of
[00:12:34] adding more information if you’re struggling to make a decision. And in particular, if you have
[00:12:40] cost curves that are significantly different from each other, that becomes a more relevant factor
[00:12:46] in your decision making. These kinds of things can sometimes go under the radar. This is why
[00:12:51] we were talking about second order thinking in the beginning of this episode. Thinking about cost
[00:12:56] curves over time may be a significant enough factor to choose one option versus another,
[00:13:03] but it’s going to be most relevant when those cost curves are significantly and clearly different
[00:13:08] from each other. Thanks so much for listening to this episode of Developer Tea. I hope you enjoyed
[00:13:13] this discussion on cost curves and hopefully you can find a way of applying this in your personal
[00:13:20] life or in your work in a way that benefits you and helps you make better decisions. I hope that
[00:13:26] you have good stories about doing this in the near future. And if you want to share your opinions or
[00:13:32] your stories about maybe doing this in the past, maybe you had a different name for it, I don’t
[00:13:37] know that cost curves is the accurate name for this. It’s just what we’re calling it on this episode.
[00:13:42] Maybe you have an example of this investment over time concept that you’d like to share. Well,
[00:13:48] you can join us on the Developer Tea Discord community and share it today. developertea.com
[00:13:52] slash discord. That’s totally free for you to join. It will always be free. We have a great
[00:13:58] community of people over there asking questions about their careers, asking questions about code
[00:14:02] they’re working on, talking about books and other resources, podcasts. You don’t want to
[00:14:08] miss out on that developertea.com slash discord. Thanks so much for listening. And until next time,
[00:14:12] enjoy your tea.