Habits, Languages, Processes, and Other Behavior Engines
Summary
This episode delves into the concept of ‘behavior engines’—the underlying systems that generate our repeated actions. Host Jonathan Cottrell argues that while habits are a common form of repeated behavior, they are just one example. The most profound impact on our lives comes from the systems that produce these behaviors, which represent a major point of leverage for personal and career growth.
Cottrell categorizes these engines into two types: situational and preferential. Situational engines are created by large, often hard-to-change life choices, such as where you live. Preferential engines involve choices where you have more agency and can more easily switch, like choosing a programming language or a daily routine. Both types precipitate behaviors, and these behaviors can have compounding, second-order effects on our outcomes and skill development.
The discussion highlights how these engines create paradigms and inertia. Using Paul Graham’s ‘Blub paradox’ as an example, Cottrell explains how a chosen programming language can become a cognitive paradigm, making it difficult to see the value in more powerful alternatives. The key takeaway is to shift focus from the downstream behaviors to inspecting the engine itself. By examining and potentially upgrading these high-leverage systems—such as decision-making processes, habits, or chosen tools—we can generate better behaviors that align more closely with our goals and values.
Recommendations
Articles
- Beating the Averages by Paul Graham — Referenced in the episode, this article introduces the ‘Blub paradox,’ which illustrates how a programmer’s chosen language can become a paradigm that blinds them to the power of more advanced languages.
Events
- Trajectory Conference 2021 — A free, virtual conference hosted by LaunchDarkly on November 9th and 10th, focusing on technology, people, and processes for delivering better software experiences.
Topic Timeline
- 00:00:00 — Introduction to the power of repeated behaviors — Jonathan Cottrell introduces the core idea: repeated behaviors have the most profound impact on our lives. The systems that produce these behaviors are a major point of leverage. He distinguishes these from simple habits, noting that habits are usually chosen and changeable, while repeated behaviors encompass more.
- 00:02:15 — How repetition builds expertise and reduces effort — Cottrell explains that we learn the most from things we do repeatedly, not sporadically. By intentionally repeating an action—like using a specific programming language or toolset—we can see small changes between iterations. This leads to improved skill, reduced effort over time, and greater productivity in that direction, essentially developing expertise.
- 00:03:35 — Introducing the concept of ‘behavior engines’ — The host introduces the term ‘engines’ for the things that generate our repeated behaviors. He gives examples like choosing where to live (which creates repeated behaviors of commuting, interacting with neighbors) or choosing a programming language (which shapes how we think about and solve problems). He promises to categorize these engines after a sponsor message.
- 00:07:21 — Categorizing engines: Situational vs. Preferential — After the sponsor segment, Cottrell categorizes behavior engines into two types. Situational engines are created by large, often hard-to-change choices (like where you live). Preferential engines involve choices with more agency that are easier to change (like a preferred tool or method). He notes there’s a gradient between them, but the distinction helps in understanding the leverage we have.
- 00:09:17 — Process engines and their ripple effects — The discussion applies the concept to teams and jobs, introducing ‘process engines’ like development methodologies. These processes create and reinforce behaviors not just for the team, but for users as well (e.g., users waiting for a Friday release). The key is to recognize that repeated behaviors often originate from these engines and have secondary and tertiary effects.
- 00:11:00 — The Blub Paradox and engine inertia — Cottrell uses Paul Graham’s ‘Blub paradox’ to illustrate how an engine (like a programming language) can become a paradigm. When an engine is deeply ingrained, it creates inertia and cognitive biases that make us believe it’s the best, preventing us from seeing the value in potentially more powerful alternatives. Changing engines feels like a departure from comfort and past success.
- 00:14:06 — The call to inspect and upgrade your engines — The host urges listeners to shift focus from the behaviors themselves to inspecting the engines that generate them. While he cautions against constant change (which undermines the learning from repetition), he argues that if a ‘poor engine’ is generating the wrong actions, it’s the highest leverage place to improve. The goal is to imagine new benefits from upgrading these core systems.
- 00:15:38 — Examples of critical engines and a practical exercise — Cottrell lists common engines: self-enforcing habits, programming languages, processes, and especially decision-making processes. He then gives a practical exercise: list the major engines in your life (daily routines, food, leisure). Inspect the preferential ones you have agency over. Finally, imagine changing them to generate better behaviors that align with your goals and values.
Episode Info
- Podcast: Developer Tea
- Author: Jonathan Cutrell
- Category: Technology Business Careers Society & Culture
- Published: 2021-11-02T07:00:00Z
- Duration: 00:18:37
References
- URL PocketCasts: https://pocketcasts.com/podcast/developer-tea/cbe9b6c0-7da4-0132-e6ef-5f4c86fd3263/habits-languages-processes-and-other-behavior-engines/7d25540e-e55a-4d8b-bef7-82897a0338ca
- Episode UUID: 7d25540e-e55a-4d8b-bef7-82897a0338ca
Podcast Info
- Name: Developer Tea
- Type: episodic
- Site: http://www.developertea.com
- UUID: cbe9b6c0-7da4-0132-e6ef-5f4c86fd3263
Transcript
[00:00:00] The behaviors that you repeat have the most profound impact on your life.
[00:00:13] And the systems that produce those behaviors then are probably one of the biggest points
[00:00:20] of leverage that you have for your personal life and your career.
[00:00:25] My name is Jonathan Cottrell.
[00:00:26] You’re listening to Developer Tea.
[00:00:28] My goal on this show is to help driven developers like you find clarity, perspective, and purpose
[00:00:33] in their careers.
[00:00:36] The things that you do over and over, the simple form of this, might be habits.
[00:00:45] But it’s not just habits, because that word comes with a lot of baggage.
[00:00:52] It’s not necessarily bad baggage.
[00:00:54] The habits that we create for ourselves can be good habits or bad habits.
[00:01:01] Habits are usually something that we choose.
[00:01:05] In fact, almost universally, when you hear somebody talking about habits, they are things
[00:01:11] that we have the agency to change.
[00:01:15] Our habits are important for a lot of reasons.
[00:01:18] Perhaps the most important reason is that the things that we do over and over have
[00:01:24] a compounding impact on our outcomes.
[00:01:30] We learn the most from things that we do repeatedly.
[00:01:35] This seems kind of odd.
[00:01:37] You might think that we would learn the most from things that we do sporadically.
[00:01:42] This is intuitive.
[00:01:43] We might think that a variety of experience actually gives us a better learning platform,
[00:01:50] but the truth is that the things that we do repeatedly, we learn from because we can see
[00:01:56] the small changes between iterations.
[00:02:01] The things that we do repeatedly obviously have added up effects over time.
[00:02:08] Those effects kind of self-feed, especially when we’re talking about things like skill
[00:02:13] development.
[00:02:15] As you become better in one particular language, let’s say, for example, as you continue to
[00:02:22] use the same language over and over, and this is not just habitually, not just doing it
[00:02:27] without thinking about it, but doing it very intentionally, choosing a specific framework
[00:02:32] architecture, whatever that is, a series of tools.
[00:02:38] As you become better with those tools, each iteration changes in a positive direction.
[00:02:44] In other words, it improves.
[00:02:47] The amount of effort that you needed to put forth in the first 10 iterations to get something
[00:02:55] done, to get some productive progress towards some goal.
[00:03:01] That effort is reduced dramatically after 100 or 1,000 iterations of the same level
[00:03:09] of effort.
[00:03:10] In other words, you get more done.
[00:03:11] You’re more productive in a particular direction once you’ve done this thing over and over.
[00:03:18] You’re developing expertise.
[00:03:21] As we continue to invest in single directions, invest in habits, it’s worthwhile to consider
[00:03:28] the things that generate our repeated behaviors.
[00:03:35] Think about this for a second.
[00:03:36] We of course do it to ourselves.
[00:03:40] Some of our choices, for example, generate repeated behaviors.
[00:03:45] The most obvious of these might be where you choose to live.
[00:03:50] Where you choose to live will generate a repeated behavior of living in that place.
[00:03:56] Whatever that requires of you, whether it’s a 20-minute drive to the closest grocery store,
[00:04:05] or if you have neighbors that are very close by that you interact with on a daily basis
[00:04:10] just by virtue of being close to them.
[00:04:13] Your physical situation creates some kind of repeated behaviors.
[00:04:20] Of course, this isn’t the only major decision that generates repeated behaviors.
[00:04:27] Choosing a particular language, a particular programming language, this generates repeated
[00:04:34] behaviors both at the very atomic level, like for example, writing more parentheses if you’re
[00:04:40] choosing JavaScript versus Ruby or something, but also at a meta level.
[00:04:48] If you’re using a functional language, you’re going to have a different way of looking at
[00:04:52] the average problem that you’re solving versus if you’re using a more traditional object-oriented
[00:04:58] language.
[00:04:59] I’m going to categorize these kinds of generators.
[00:05:06] We’re going to call them engines for the sake of this episode, and we’re going to categorize
[00:05:10] them into two different categories, which we’re going to talk about right after we talk
[00:05:15] about today’s sponsor.
[00:05:23] This episode of Developer Tea is brought to you by LaunchDarkly.
[00:05:27] LaunchDarkly is joining us once again as a sponsor of the show.
[00:05:32] Software powers the world.
[00:05:34] LaunchDarkly empowers all teams to deliver and control their software.
[00:05:39] DevOps and feature management are reimagining how we build and release new products.
[00:05:45] On November 9th and 10th, LaunchDarkly is hosting Trajectory Conference 2021.
[00:05:51] It’s a two-day event for software innovators who want to break orbit, not systems.
[00:05:58] Trajectory is a fully virtual conference that focuses on the technology, people, and processes
[00:06:04] that continuously deliver better user experiences and more powerful software.
[00:06:09] You can register for free by heading over to www.trajectoryconf.com.
[00:06:22] Thanks again to LaunchDarkly for sponsoring today’s episode of Developer Tea.
[00:06:33] In today’s episode, we’re talking about generated repeated behaviors.
[00:06:37] These are not just habits that you choose, they are behaviors that you engage in repeatedly.
[00:06:45] Everyone, for example, engages in the behavior of eating and drinking repeatedly.
[00:06:52] To call this purely a habit is probably not sufficient to explain that behavior.
[00:07:01] If we were to talk about the kinds of food or where people tend to eat or what time they
[00:07:06] tend to eat, or maybe if they choose to fast some days, these are the kinds of things that
[00:07:13] you might call a habit, but repeated behaviors are not necessarily purely habits.
[00:07:21] We said that there are essentially two kinds of engines.
[00:07:26] These engines create or at least encourage the repeated behaviors.
[00:07:34] One type of engine is a situational engine.
[00:07:38] A situational engine is most often created by some large choice in your life.
[00:07:44] We already talked about one, where you choose to live.
[00:07:48] And it may not necessarily be up to you, per se.
[00:07:54] Not everyone can choose where they want to live, as a very simple example.
[00:07:59] But often our situational engines generate behaviors and we can change the way that our
[00:08:07] situation generates those behaviors.
[00:08:08] We’ll talk a little bit about that in a minute.
[00:08:10] The other kind of engine is a preferential engine.
[00:08:16] This is something that you have chosen where you had multiple options, where you had agency
[00:08:22] that could easily be changed.
[00:08:25] In other words, a situational engine is much harder to change.
[00:08:31] The transition between one situation versus another situation is much harder than the
[00:08:37] transition between one preference and another preference.
[00:08:41] And arguably there’s probably somewhat of a gradient between these two types, but it’s
[00:08:47] likely that you would know which one of these you’re talking about in your personal life,
[00:08:53] in your personal situation.
[00:08:55] For example, you may have organized your life so that you are very nomadic.
[00:09:00] In other words, you can move from one place to another much easier than someone who has
[00:09:05] put down roots and has bought a house, maybe they have a mortgage.
[00:09:09] So you kind of have to decide or categorize the types of engines that you have in your
[00:09:15] life.
[00:09:17] On your teams, in your job, some of the engines that we can look at are process engines.
[00:09:24] And this isn’t the forum where you’re going to hear us fight about agile versus some other
[00:09:28] methodology or some sub methodology, but rather understanding that whatever of the methods
[00:09:35] that you choose, whatever processes you choose, they’re going to create and reinforce various
[00:09:43] behaviors.
[00:09:45] And it is behaviors not only for you, but also for the people that employ you.
[00:09:49] It’s behaviors for the people who are using your software.
[00:09:53] As a simple example, if you have releases every other Friday, then people who use your
[00:09:58] software may wait until that Friday to use that software so they can get the latest release.
[00:10:06] The important factor here is to recognize that a lot of the repeated behaviors that
[00:10:12] we engage in, that others engage in around us, come from these engines.
[00:10:17] In one way or another, the engine is precipitating a behavior.
[00:10:21] Now it might be a secondary behavior, right?
[00:10:25] So in other words, because you are releasing on Fridays, you might choose as a team to
[00:10:31] avoid adding new features on Thursday so that the release can be thoroughly tested on that
[00:10:39] Thursday before the release.
[00:10:42] There’s a lot to think about when it comes to these engines, though.
[00:10:45] Not only do they precipitate behaviors and then those behaviors lead into other behaviors
[00:10:51] as second or third or fourth order effects, but these engines also tend to create paradigms.
[00:11:00] A great example of this is in software programming languages, the idea that your language encompasses
[00:11:09] all possible utility of a given programming language.
[00:11:14] This is best summarized in Paul Graham’s article, Beating the Averages, and this was written
[00:11:21] back in the early 2000s, and Paul is well known to be a fan of Lisp.
[00:11:30] In this article, he talks about something called the Blub paradox.
[00:11:34] Blub is a fictional programming language that is the perfect middle of all languages.
[00:11:40] If you were to organize every language out there into terms of how powerful it is, Blub
[00:11:48] is right in the middle.
[00:11:49] It’s the average of all languages.
[00:11:51] And so he coined this idea of the Blub paradox.
[00:11:55] This is what he says in the article.
[00:11:57] As long as our hypothetical Blub programmer is looking down the power continuum, in other
[00:12:02] words, language is less powerful than Blub, he knows he’s looking down.
[00:12:07] Languages less powerful than Blub are obviously less powerful because they’re missing some
[00:12:11] feature he’s used to using, but when our hypothetical Blub programmer looks in the other direction,
[00:12:17] up the power continuum, he doesn’t realize that he’s looking up.
[00:12:21] What he sees are merely weird languages.
[00:12:23] He probably considers them about equivalent to power in Blub, but with all this other
[00:12:28] hairy stuff thrown in as well.
[00:12:30] Blub is good enough for him because he thinks in Blub.
[00:12:35] In this Blub paradox that Paul Graham is talking about, the hypothetical language has become
[00:12:42] a paradigm for the programmer, and it’s an engine for so many of their behaviors that
[00:12:49] when they look at some other engine, especially one that has more features, another language
[00:12:55] that has more features than Blub, they can’t really think about changing all of those kind
[00:13:03] of ingrained behaviors.
[00:13:06] If they look at something less powerful than Blub, they can simply see it as less powerful,
[00:13:13] and they choose to kind of return back to their preferred engine.
[00:13:19] So there’s a lot of inertia in trying to change your engines, in trying to upgrade
[00:13:25] your engine because changing all of those behaviors seems unnecessary.
[00:13:33] It seems like a departure from what is comfortable.
[00:13:37] It seems like a departure from what has made you successful to this point.
[00:13:42] And there are a lot, a lot of biases and kind of cognitive dissonance that will cause
[00:13:48] us to reinforce the belief that our particular engines are the best engines, that the behaviors
[00:13:56] that they create are good behaviors, and that we couldn’t possibly imagine upgrading our
[00:14:03] engines.
[00:14:04] But this is the thing that I want you to understand.
[00:14:06] Instead of focusing on those behaviors, right, instead of focusing on the downstream effects
[00:14:11] of those engines, I want you to inspect the engine itself and imagine what new benefits
[00:14:18] could come from changing, upgrading that engine.
[00:14:21] Now to be clear, I’m not telling you to go and try changing languages every single week.
[00:14:28] That kind of goes against the principle that we were talking about in the beginning, that
[00:14:31] we learn the most from the things that we repeat.
[00:14:35] But if we are repeating the wrong actions as a result of choosing a poor engine for
[00:14:42] our behaviors, then it makes sense to take the time to inspect the engine itself.
[00:14:49] Recognize that these large kind of generators of behavior are the highest leverage place
[00:14:56] for us to improve.
[00:14:59] Some of the most common examples of these engines, we’ve already talked about them,
[00:15:02] the self-enforcing habits that you’ve chosen, the ones that you have picked for yourself,
[00:15:08] that you’ve established through behavioral patterns.
[00:15:12] That’s a huge generator of behavior.
[00:15:15] Other ones are choosing programming languages.
[00:15:18] We’ve already mentioned this.
[00:15:19] Don’t be too quick to change because you may not actually know what those behaviors are.
[00:15:24] You may not have explored all of the habits that could come from a particular language
[00:15:31] engine.
[00:15:33] Other ones are processes.
[00:15:34] A really important one is decision-making processes.
[00:15:38] This is a very critical engine to pay attention to.
[00:15:42] How do you make decisions consistently over time?
[00:15:45] This is an engine because it’s going to change the way that you make decisions for every
[00:15:49] decision, not just this particular one.
[00:15:51] If you have a decision-making framework, this pays you back over and over and over.
[00:15:57] Drop a list of these engines in your life.
[00:16:02] The biggest ones, you don’t have to be 100% comprehensive, but think about the habits
[00:16:07] that you have and the repeated behaviors that you have.
[00:16:11] Some simple examples might be your daily routines.
[00:16:15] When do you wake up?
[00:16:17] Where do you go in a given day?
[00:16:19] What kind of food do you eat?
[00:16:21] Who do you talk to?
[00:16:23] What’s on your mind?
[00:16:24] What is your leisure activities?
[00:16:26] All of these things are probably things that you repeat on a regular basis, and then think
[00:16:31] about the various systems that influence those decisions.
[00:16:36] Some of those systems you may have a little control over or they may be much more difficult
[00:16:40] to change, but others, especially the ones that land more on that preferential side of
[00:16:47] the gradient between preferential and situational, you may have a lot more agency over.
[00:16:54] Inspect those preferential engines that create your habitual behaviors.
[00:17:00] Once you’ve had a chance to inspect these, imagine what would happen if you were to change
[00:17:05] them.
[00:17:06] Now, in combination with your personal values, your goals, the things that we’ve talked about
[00:17:11] on other episodes of Developer Tea, what kinds of systems could you change?
[00:17:18] Which of these engines could you adjust so that you generate better behaviors that lead
[00:17:25] you more towards your goals or fit more in line with your values?
[00:17:31] Thanks so much for listening to today’s episode of Developer Tea.
[00:17:34] Another huge thank you to LaunchDarkly.
[00:17:38] You can join the fully virtual TrajectoryConf.
[00:17:42] That’s TrajectoryConf, c-o-n-f dot com.
[00:17:46] It’s totally free registration for LaunchDarkly’s event on November 9th and 10th.
[00:17:53] Thanks so much for listening to this show.
[00:17:55] Developer Tea wouldn’t exist if it wasn’t for you.
[00:17:59] And if the show has provided you even one insight, hopefully that makes it worth your
[00:18:06] time.
[00:18:07] But also, I’d like to ask you to share that experience in the form of a review and a rating
[00:18:12] on iTunes.
[00:18:14] As you certainly know at this point, this is the way that podcasts continue to grow
[00:18:20] and sustain themselves.
[00:18:22] It’s all on your shoulders.
[00:18:24] No pressure.
[00:18:25] Thanks so much for listening.
[00:18:26] And until next time, enjoy your tea.