Today, I talk about a particular framework for making decisions. The framework presents a specific dichotomy between concreteness and subjectivity.
The paradox we have to deal with is that a lot of non-trivial outcomes come from decisions that fall on the subjective end of the scale. It is necessary for us to move these trivial and subjective decisions towards concrete if possible to funnel more energy into our decision making energy for subjective decisions.
Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Tea. My name is Jonathan Cutrell and today I'm going to be talking to you all about decision making. And specifically I'm going to give you a framework for thinking about decisions on a continuum between subjective and concrete. Today's episode is brought to you by spec.fm. As is every other episode of Developer Tea, you can find every episode of this show on spec.fm. Go and check it out spec.fm. It is the podcast network that I teamed up with the guys from design details to create. So go and check it out. There's other great shows on spec. In fact, immutable just launched. And it's a great show if you like Developer Tea, you will probably like immutable as well. Go and check that out. So I want to talk today about decisions and different types of decisions that we make specifically through the light of concrete decisions versus subjective decisions. And on one end of that spectrum, we have one kind of decision that we have to make and on the far other end of the spectrum we have another type of decision that we may or may not make. And I want to talk about a way of thinking about these decisions. So first let's talk about the far end of concrete. These are the essential decisions. Essential decisions are the kinds of decisions that we don't really have to think about in order to make them. For example, am I going to eat today? Now unless you are intentionally fasting for some reason, that is an essential decision that you don't really have to think about whether or not you are going to eat today. Now you may make the decision of what you are going to eat, but making the decision of whether or not you're going to eat is no longer really a cognitive load to you. You know that you are going to eat because it is essential to your life that you eat. So essential decisions in business as well. Of course, you have to be able to make money in order for a business to sustain different ways of making money may present themselves to you. For example, you may find an investor or on the opposite end of the spectrum, you may be paid hourly. These are two very different ways of making money, but the essential decision is that you must make money. Now this may not sound very much like a decision, but really decisions are building blocks. They create the structure for other decisions. So because you are making the decision to make money, then choosing a business strategy becomes a little bit easier when you can filter out all the ones that quite simply don't make money. You may, as many people do, look at your personal value sets and your personal beliefs or desires as essential that those things are not going to necessarily change. And so you make decisions through those frameworks. Now what decision you make might be more on the subjective scale, but those frameworks are essential to who you are and how you think or how you determine what you're going to do. So I'm going into the spectrum. We have essential decisions. These are the obvious and relatively easy to make kind of decisions that we don't really think about because they are fundamental to who we are or what we must have, what we must do to continue sustaining our lives. Now I'm going to step one by one towards the other end of the spectrum and I'm not going to reveal what the other end is yet until we get there. But the next step towards the subjective side of the scale is concrete input concrete output. Now these decisions are not necessarily essential because they may not necessarily be automatic, but they do have well-defined parameters and they have well-defined outputs once you have chosen those parameters. When stacked on top of essential decisions with concrete input and concrete output decisions, we have things like paying the bills. We have a specific amount of money that we owe and we must pay that amount of money in order for the bill to be set to zero. And we must pay our bills in order to not go to jail. We must pay our bills in order to stay current and not go into debt. So these are essential decisions and concrete input and concrete output decisions. Many engineering decisions are concrete input and concrete output. For example, if you have specific requirements for file size or maybe input type, if you are validating your input type like an email field, that is concrete input with concrete output. If you put in the proper email, then you have a specific outcome. And if you input the improper email, then you have a specific outcome. Usually with concrete input concrete output decisions, we aren't really dealing with a lot of human factors. We don't have a lot of psychology going on. We don't have a lot of experimentation. Typically we're adjusting specific variables and we know what the outcome will be. Obviously, if you don't pay your bills, then you will go into debt or somebody is going to come and try to collect that money from you. We know what the outcome is when you have a concrete outcome. That's why those decisions are typically easier to make. And they're just above the essential decisions because we don't necessarily have to make these concrete decisions and they don't necessarily come automatic to us. Whereas you'll see in a few minutes, it is possible to take decisions that are otherwise subjective and make them concrete. And we'll talk about why you would want to do that towards the end of this episode. The next step on the spectrum towards subjectivity is concrete input but subjective output. And this is the space where software developers live most often. A lot of the time we create systems for humans to interact with. Now what the human does with that system and what it affects in the world in particular ways is not necessarily fully predictable. This is in many ways the fundamental nature of experimentation. We have very controlled input variables and by control, I mean concrete. Very obviously concrete variables that we input into a given system and then we observe the output that observation implies that there is some subjectivity or unknown nature to what's going to happen when we input whatever those concrete variables are. A simple example of this is trying a pricing scheme on a given market. So you have a pricing scheme that is concrete. In fact, you could describe it with code, a pricing scheme that is easily described with code or you can write it down on a piece of paper. But what it does in the market is not necessarily predictable. Of course, we can use this information that we get from the market when we actually perform these types of experiments. We can take the information and feed it back into tests that we've created and try to predict what our outcomes will be and try to make the things that are subjective more concrete so that we can refine the concrete inputs to gain some desired outcome. But the reality is there are some things that will always be subjective. There are some things that we will not be able to convert over into that concrete territory. And that is just the reality of some decision making. Of course, it's incredibly important that we continue to try to find ways to make those subjective outputs more predictable. Otherwise, making decisions becomes very difficult if the outcome is always subjective and those concrete inputs are relatively useless. Unless we can measure what changes in those inputs produce what changes in the outputs. Now, because developers are particularly prone to having to make the concrete input subjective output decisions, we have to come up with ways of making that subjectivity more concrete or of justifying those decisions and having a positive or at least a well-defined hypothesis for what the subjective output will be. A lot of the time, this is also charged with a desired output. Now, in strict scientific terms, experimentation doesn't really have a particular desire for an output. There are a hypothesis, but usually the desire is to learn more about a particular subject rather than to produce a particular output. In this way, if you were to compare the work of, say, for example, somebody who's doing experimentation in a lab, we aren't really doing experimentation with development. A lot of the time, if we have business goals, we are doing experimentation, but it's being charged with money. In other words, we are doing experimentation on behalf of somebody else who is trying to convert business goals into products. So when we make our concrete decisions and we know that the outcome is going to be subjective, we have to make those concrete decisions with some reasonable expectation of what the subjective output will be. The next decision type, as you might have already guessed, is the subjective input concrete output decision type. These are a little bit more difficult to come by because a lot more things are concrete input than we expect. For example, it's easy to think that design is a subjective input, but the reality is that design is a concrete input. We have very specific aesthetic decisions that we make and those go into a decision as concrete input. However, I would still classify design or aesthetic decisions as subjective input and their outcome may have a very specific effect. So for example, there are design decisions, there are aesthetic decisions that you can make on the web that will affect your conversion rates very specifically, and you can even perform the calculations or measurements to determine which of those aesthetic decisions made that particular difference in conversion rates. And that is a, for example, I would say the most pure example of a subjective input producing a concrete output, a concrete measurable output, especially. Now, the final end of the scale and I would say perhaps the most useless type of decision that we have to make on a daily basis are the subjective input and subjective output decisions. I would call these arbitrary decisions or trivial decisions, mostly because the subjective input and the subjective output are so difficult to control that it's almost impossible to determine which is causing what. Now, the interesting thing here is that most interactions, most relational decisions that we make are subjective input, subjective output. Part of this is because the unpredictability of a given person's response to your actions or your words. Now, don't misunderstand me. I definitely think the relationship management is a very important part of what we do on a day to day basis, but I do think that it's very difficult to measure that output, measure how those relationships are going to work and to be able to pre-plan all of the decisions, all the words you're going to say based on, you know, the inputs and outputs and outputs are going to be very important. For this reason, we have to kind of reach to canonical science and research about relationships and determine what has worked for most people in the past and also just connect with people on a very human level and try to determine what things are important to them. That is a decision making framework for relationships. So, what we do with relationships, the reality is that we never will have a perfect way of predicting how somebody is going to react to a given thing. And hopefully intuitively you know this. Anybody who comes across as calculated, they come across as cold. If you try to make decisions to manipulate other people for given outputs, you can't make people concrete. It's very difficult to try to manage relationships in a calculated way. The rest of the decisions that we make, for the rest of the things that we talked about on the scale from concrete to arbitrary or concrete to subjective, there are ways of making decisions easier and making decisions more efficiently, specifically find ways of moving decisions more towards the concrete. So, we move away from subjective or arbitrary and towards concrete when possible. A very simple example of this is choosing what you are going to wear based on the day of the week. And immediately what you've done is you've created a system that converts what otherwise would be a relatively subjective input in terms of what you would wear that particular day. And it turns into a concrete decision. You have no questions about what you're going to wear that day because it has become concrete. You have created a system for turning that thing that previously was subjective and arbitrary into something that is now concrete and definitive. Now why would you want to do this? Well, because it's easier to make these decisions. You spend far less time determining what to do in a given scenario if you've created systems that convert these otherwise arbitrary things into easy to make decisions. Now it's not always about converting subjectivity to concreteness. It is also about understanding each of these decisions in terms of their importance and in terms of their cost. Obviously if you can identify something that is extremely important but is also very low cost to actually implement to actually execute on. And those things should be prioritized the things that are low effort and high output. And this is where those relational mechanics can start coming into play. It's very easy to show appreciation for the people around you, for example. And that can go a very long way, even though it is a very small amount of energy on your part. It is a very large payoff in the end. Of course you aren't doing this simply because you want the payoff, but rather you're doing it as a gesture of honesty. You want to show the other people that you appreciate them and that you want to have a good relationship with them. That is a relational dynamic that you can have a very simple, small investment in and it has a huge impact on the outcome. And I challenge you to find these other things that you can convert from subjective towards concrete and then also find the things that are of high importance and lowest cost. They're very simple systems that you can implement in your day to day life that will make your life easier, that will make decision making easier. For example, if you are trying to make an arbitrary decision between one thing, one task or another task and let's say that their importance and their complexity is both the same, perhaps that is an arbitrary decision, but you can make it concrete by simply picking one and you can even create a system where you alphabetize all of your tasks that have the same level of importance and the same complexity. And simply choose the one that comes first and the alphabet, this seemingly simple change in the way that you determine between two arbitrary tasks can make your decision making process automatic and you no longer have to make that decision, it is already been made for you by the system. What you'll start to notice is that the important decisions tend to be more on the subjective end of the scale in terms of the decisions that truly require your energy and your thought. Remember the essential decisions, although they are very important, don't really require much of your energy or thought to be solved. As it turns out, perhaps the most important decisions you make are subjective input and subjective output. They seem arbitrary or trivial, but a lot of the decisions that you make that are subjective, end up having a huge effect on your life. Remember we said that the relational decisions happen to be subjective input and subjective output. If you find a decision that seems to be out of place on the scale, for example, something that seems completely unnecessary or a very low priority, if you find it on the subjective end of the scale, perhaps it either needs to be removed entirely or you have some work to do to move it to another part of the scale. In other words, if you're spending too much energy or too little energy on a given thing based on the value that that decision provides, then it's likely that your energy is not being put into the right decisions. Don't waste your time making decisions that have little to no impact on your life. Try to automate those decisions or make them as simple as possible. Come up with a decision making framework, even if it's alphabetizing, go ahead and make a decision making framework for yourself for these things that are otherwise arbitrary. This will free up your decision making power to spend it on things that are truly important. For example, the product ownership and the product leadership that you as a developer have to make concrete input, concrete solutions, and to test those in the market to look at the subjective output. And refine your concrete input. These are the things that you should be spending most of your energy on. Not the arbitrary decisions, not the things that have very little effect on your life, but instead those things that have the highest amount of impact on your life. Thank you so much for listening to Developer Tea. I hope today has given you some food for thought, and I hope it sparked some conversation between you and your family and friends and colleagues. And I really hope that you shared this particular episode with other people you care about and with other people that you think would get some value out of it. This episode of Developer Tea was brought to you by spec.fm. You can find this and every other episode of Developer Teaon spec. Thank you so much for listening and until next time, enjoy your tea.