Good Plans, Bad Plans, and Road Trips


Summary

The episode begins by questioning what constitutes a bad plan, arguing that plans are often evaluated based on outcomes rather than their inherent quality. A key hallmark of a bad plan is one that fails to explicitly answer the fundamental question: “What are you trying to do?” When this question is left implicit, it leads to uncoordinated and varied motivations among team members, which can cause conflict and misalignment, especially when teams have competing roadmaps.

The discussion then shifts to how to create better plans. Instead of treating planning as a one-off activity, the host proposes building a “plan maker”—a more abstract, stateless engine for generating good plans. This is framed through a vehicle metaphor: values and principles act as the steering mechanism (defining direction), while processes act as the engine (providing motion and execution). A good process must be able to adapt to inputs (like customer feedback or performance gaps) and move forward effectively.

The host elaborates that inflexible plans are a core reason for failure. The combination of clear values (for aligned motivation and direction) and a robust, adaptable process (for execution) is essential. The process must respect and act upon the values, just as an engine must respond to steering input. The metaphor is extended to discuss the need for warning systems (like an engine overheating) to manage trade-offs and prevent burnout when pushing a team or process too hard.

Ultimately, the episode concludes that good planning requires both a clear sense of purpose (values) and a flexible mechanism for action (process). Separating these concepts allows for more adaptable and resilient plans that can respond to changing circumstances, rather than being rigidly tied to a specific outcome. The host invites listeners to reflect on how they use values and processes as filters for decision-making in their own work.


Recommendations

Books

  • Team Topologies — Mentioned in the context of a Miro extension that provides shapes aligned with the book’s ‘encoded design language.’ The host recommends it, saying ‘if you haven’t, I highly recommend it by the way.‘

Mental-Models

  • Six Thinking Hats — Referenced as an example of a mental model that can be brought into a thinking process using a tool like Miro.

Tools

  • Miro — Sponsored tool highlighted for planning. It’s praised for flexibility, helping capture evolving ideas, and its marketplace with extensions like Team Topologies shapes and an AWS cost calculator that integrates with architectural diagrams.

Topic Timeline

  • 00:00:00Defining what makes a bad plan — The episode opens by questioning how to evaluate a plan, noting that we often judge plans by outcomes rather than quality. A bad plan is one that doesn’t explicitly answer “What are you trying to do?” This leads to uncoordinated motivations within teams, causing conflict when roadmaps collide because the underlying purpose is unclear or varies between individuals.
  • 00:05:07Moving from bad plans to creating good ones — After a sponsor break, the host shifts focus to how we can create better plans. The solution is not just to ask “what do you want to do?” but to build a higher-order “plan maker” or engine. This introduces the core metaphor: separating steering (values/principles) from the engine (process) and the destination (outcome).
  • 00:10:36The steering mechanism: values and principles — The steering mechanism in the planning framework is defined as your values and principles. These are stateless guides that tell you what you care about in any relevant circumstance (personal, team, company). They allow you to test intentions and outcomes, asking “Are we following our values?” and “Are we headed in the right direction?”
  • 00:12:10The engine mechanism: your adaptable process — The engine is your process. It is largely agnostic to direction but must be able to produce a plan based on inputs from your values. A good process adapts to input (e.g., discovery of customer needs, performance gaps) and carries you forward. If a process cannot adapt or move efficiently, it needs work—similar to an engine that overhears if pushed too hard without cooling systems.
  • 00:16:22Combining values and process for flexible plans — The host concludes that inflexible plans are a core reason for bad plans. Values provide aligned motivation and direction (like passengers on public transport heading the same way), while the process is how you connect that intention to action. A plan is incomplete if either component is missing. The combination allows for adaptation to feedback and changing circumstances.

Episode Info

  • Podcast: Developer Tea
  • Author: Jonathan Cutrell
  • Category: Technology Business Careers Society & Culture
  • Published: 2023-12-15T08:00:00Z
  • Duration: 00:19:27

References


Podcast Info


Transcript

[00:00:00] What constitutes a bad plan?

[00:00:15] What is a bad plan?

[00:00:17] This is actually a pretty difficult question to answer because a plan is about decision

[00:00:25] making.

[00:00:27] And it’s about decision making based on some kind of context or foreknowledge.

[00:00:33] And our evaluation of plans is very difficult to perform because by the time we can evaluate

[00:00:43] the plan we tend to evaluate it based on outcomes rather than on the quality of the plan itself.

[00:00:52] And so a bad plan may have good outcomes and a good plan may have bad outcomes.

[00:00:59] Good and bad in all of these cases is dependent on your intentions.

[00:01:04] What you want to make true in the universe or more practically what you’re trying to

[00:01:11] accomplish with that piece of code you’re writing.

[00:01:13] Or maybe the middle ground between those two extremes is what are you trying to do as a

[00:01:21] business, as a team?

[00:01:23] What are you trying to do with your product?

[00:01:27] One of the hallmarks of a bad plan is one that doesn’t actually answer that question.

[00:01:32] What are you trying to do?

[00:01:35] And in fact because of this you see most of the conflict between teams for example at

[00:01:42] a given company who have competing projects because they haven’t answered collectively

[00:01:50] What are you trying to do?

[00:01:54] And even though they haven’t answered that question explicitly, they do answer that question

[00:02:02] implicitly.

[00:02:05] Sometimes the question is answered by individuals.

[00:02:08] Sometimes the question is answered at the team level or a couple of people on the team

[00:02:12] may get together and have an answer to that question.

[00:02:14] What are we trying to do?

[00:02:17] Everyone has an answer to that question but if you don’t ask the question explicitly then

[00:02:25] the answers can vary.

[00:02:27] And when you have variation of motivation that is uncoordinated, that’s a very important

[00:02:34] combination right?

[00:02:36] Variation of motivation that is uncoordinated then two different motivations may be competing.

[00:02:45] The classic example of this is two teams that have different roadmaps.

[00:02:49] Each team’s motivation is to accomplish their roadmap in order to let’s say get a raise

[00:02:54] or get a positive review or avoid uncomfortable situations.

[00:03:00] There is some kind of existential threat ostensibly with not delivering on your roadmap and so

[00:03:05] if you have two teams who have roadmaps that end up colliding, especially this tends to

[00:03:12] happen when the roadmaps are defined in an advanced position like three months in advance

[00:03:17] let’s say and by the time you get to month two or three you realize that something has

[00:03:22] changed that causes there to be competing motivations between the two roadmaps.

[00:03:28] And instead of alignment on a question like what are we trying to do if both teams continue

[00:03:35] heads down with their existing uncoordinated varied motivations then they will pull apart

[00:03:43] from each other because of the lack of coordination.

[00:03:50] And so a bad plan tends to be one where the question of what are you trying to do is implied

[00:03:59] or otherwise left to the individuals.

[00:04:02] I want to address one thing I mentioned there the uncoordinated qualifier here.

[00:04:06] It is absolutely normal for everyone on a team to have different motivations.

[00:04:13] There’s nothing wrong and in fact there’s everything right with individuals on your

[00:04:18] team asking what’s in this for me.

[00:04:22] If you don’t have varied motivations then you still do you’re just hiding them.

[00:04:29] Individuals on your team or groups of individuals will have their own motivations whether you

[00:04:34] coordinate them or not.

[00:04:37] And the uncoordinated part of that is the problem not the varied part.

[00:04:42] The simplest example of varied motivations that are coordinated is a bunch of people

[00:04:48] taking public transport.

[00:04:51] We all have different places to be we all have different reasons to go to those places

[00:04:55] but we travel a common path.

[00:04:59] And we have a coordinated effort to accomplish our varied motivations.

[00:05:07] So how do we better create good plans?

[00:05:11] How can we set ourselves up for more success on our plans?

[00:05:16] We’re going to talk about that right after we talk about today’s sponsor Miro.

[00:05:29] We’re nearing the end of the year and that means most people are doing some kind of planning

[00:05:34] whether you’re doing individual planning or team planning.

[00:05:37] And today’s sponsor Miro can help you with all of the above and one of the things I want

[00:05:42] to focus on when we’re talking about Miro today is the illusion of perfect memory.

[00:05:50] The short version of this is that as you leave and come back to an idea you are in many ways

[00:05:57] a different person.

[00:05:59] Various aspects of your memory have changed various aspects of your thinking process have

[00:06:03] changed you’ve grown maybe you’ve learned something more tangibly or maybe something

[00:06:09] has connected more intangibly that you can’t quite explain.

[00:06:13] The great thing about Miro is that it helps capture all of these different inputs from

[00:06:17] you as if you were a crowd of people.

[00:06:20] One of the things I love about Miro is just how flexible it can be.

[00:06:24] If I wanted to, for example, bring a mental model like the six thinking hats from Debono

[00:06:28] into my thinking process for myself or for my team, I can do exactly that.

[00:06:34] If Miro was just a blank canvas then it would still be incredibly useful but Miro goes well

[00:06:40] beyond that with the Miro Marketplace which allows you to connect over a hundred of your

[00:06:45] favorite collaboration tools, design tools like Sketch or Figma, but there’s also extensions

[00:06:50] to Miro.

[00:06:51] Another thing I just found is the Team Topologies extension which provides you with some easy

[00:06:56] to use shapes that align with the Team Topologies kind of encoded design language.

[00:07:02] If you’ve read that book, if you haven’t, I highly recommend it by the way.

[00:07:06] Another very cool option, let’s say you’re working in architecture and you’re building

[00:07:10] with AWS, there’s an AWS cost calculator.

[00:07:13] This lays right on top of your architectural diagram so you can move boxes around and see

[00:07:18] how that impacts your total cost per year on AWS.

[00:07:22] There are so many opportunities here that go beyond just a whiteboard, a digital whiteboard

[00:07:27] or something like that.

[00:07:28] Go and check it out.

[00:07:29] Head over to Miro.com slash podcast.

[00:07:31] That’s M-I-R-O dot com slash podcast and you’ll get your first three boards for free.

[00:07:38] That’s Miro.com slash podcast.

[00:07:40] Thanks again to Miro for sponsoring today’s episode of Developer Team.

[00:07:49] So if a core reason that we end up with bad plans is not answering, what is your reason?

[00:07:59] Why are you doing this?

[00:08:00] What are you trying to do?

[00:08:02] And the expression of that or the symptom of that is a variety of uncoordinated motivations

[00:08:09] amongst those who are executing on the plan, then we should be able to improve our plans

[00:08:16] by asking, what are you doing this for?

[00:08:20] This might be a minor improvement on plans if you were just to say, what do you want

[00:08:25] to do?

[00:08:26] And then wrap a plan around that.

[00:08:28] But a more sustainable approach is to rethink where your plans come from.

[00:08:36] Instead of dealing with plans on a one-off basis where you’re just kind of functionally

[00:08:40] asking the question, what do you want to do now?

[00:08:44] Let’s think about a higher order concept and a more abstract concept.

[00:08:48] What can we do to have a plan maker?

[00:08:52] What is a good machine or engine for generating good plans?

[00:08:58] The interesting thing about machines or engines is that they can be expressed or described

[00:09:03] in a stateless manner.

[00:09:05] In other words, the plan is stateful.

[00:09:09] You go from point A to point B or you’re trying to change something from one state

[00:09:15] to another.

[00:09:16] An engine is an expression that can adapt.

[00:09:21] The engine can affect external state.

[00:09:25] It can carry you where you want to go.

[00:09:27] If you’re thinking about this through the metaphor of a car or any kind of vehicle,

[00:09:33] the engine can carry you where you want to go, but the engine does not have any concept

[00:09:38] of where you want to go.

[00:09:39] The important insight here is that your engine supports whatever plan you choose.

[00:09:45] So how do you get to where you’re going?

[00:09:47] Well, you have to have some mechanism of steering.

[00:09:51] You need to know where do you want to head and steer in that direction.

[00:09:57] And then the engine helps carry you that direction.

[00:10:00] So the metaphor is separating these three concepts of steering, the engine, which generates

[00:10:06] that motion.

[00:10:08] And then finally, the actual intention, the outcome that you’re trying to get to.

[00:10:14] With this framework, we end up seeing that a lot of plans end up being stiff or inflexible.

[00:10:23] They focus on the actual position rather than the outcome.

[00:10:30] And they don’t consider detours to that position.

[00:10:33] So let’s talk about what is the steering mechanism?

[00:10:36] What is the engine mechanism?

[00:10:38] The steering mechanism in this framework is your values, your principles.

[00:10:45] These are what tell you in a stateless manner what you care about.

[00:10:53] This can be at the personal level, it can be at the company level, it can even be what

[00:10:56] you care about in a given context.

[00:10:59] It doesn’t even have to be your values as a general rule, it can be your values at work.

[00:11:05] And it’s useful to define and understand these things at various levels as well, maybe

[00:11:09] at your team level.

[00:11:11] It might be a subset of values or an interpretation of the company’s values for your team.

[00:11:20] And this is a steering mechanism because you can test your intention, you can test your

[00:11:25] outcomes from your plans against these values.

[00:11:28] Are we following our values?

[00:11:31] Are we headed in the right direction?

[00:11:33] How do you know what’s right by looking at those values and principles?

[00:11:37] These are, once again, these are stateless in the sense that they don’t have to have

[00:11:42] any context to be applicable.

[00:11:45] These are things that are true in all circumstances, or at least in all kind of circumstances that

[00:11:51] are relevant to the point at which the values are defined.

[00:11:55] So in other words, if you have team values, then anything that the team does, the values

[00:11:59] would apply, the principles would apply.

[00:12:02] The engine in this metaphor, the thing that provides you some kind of motion is your process.

[00:12:10] It’s important to understand that your process may be informed in some ways from your values,

[00:12:15] but largely speaking, your process is agnostic to where you’re headed.

[00:12:20] The process that you adopt is stateless in that way.

[00:12:24] And so it should be able to produce a plan.

[00:12:29] You should be able to use your process to produce a plan based on your inputs.

[00:12:37] The inputs here are coming from your values.

[00:12:41] The process itself is based on your inputs and it’s also responding over time to your

[00:12:45] inputs.

[00:12:46] So your process is, you’re looking at your values, maybe part of your process is discovery

[00:12:52] process to understand how is the world different from how we want it to be?

[00:12:57] How is this software project different from what we want it to be?

[00:13:00] What kind of customer feedback do we have that we’d like to affect?

[00:13:05] What kind of performance gaps do we have in this project that we want to improve on?

[00:13:10] So that’s part of your process.

[00:13:12] You’re able to use your values of we want to be able to improve on these particular

[00:13:17] metrics or we want to serve our customers well.

[00:13:20] You can use that value to inform the process of let’s go and gather customer feedback.

[00:13:28] The process itself is going to respond to those inputs.

[00:13:33] And here’s how we validate this.

[00:13:34] If you have good intentions, you have good values, you have good principles, but your

[00:13:39] process is poor.

[00:13:40] In other words, you’ve decided to have those values and intentions, but your process doesn’t

[00:13:45] respect them.

[00:13:46] It doesn’t put them into action.

[00:13:49] It would be like having a steering wheel that is totally disconnected from the wheels

[00:13:53] or perhaps even worse, is connected in a nonspecific way, in some way that you can’t really predict

[00:14:00] what it’s going to do if you turn right or left.

[00:14:02] So the engine needs to receive that input in a way that aligns with the values that

[00:14:08] generate it.

[00:14:10] And then the process carries you forward in a direction.

[00:14:14] That’s it.

[00:14:16] The whole idea of the process to be able to respond to input and carry you forward.

[00:14:21] If your process doesn’t do those two things, if either you’re missing the steering wheel

[00:14:25] altogether, you can’t adapt to any kind of input, you can’t adapt to pressing the accelerator.

[00:14:31] If you can’t adapt to that situation, or if your engine is so inefficient that it doesn’t

[00:14:37] really matter where you’re steering because you can’t move forward at any reasonable

[00:14:41] pace, then your engine, your process needs work.

[00:14:45] That’s how you judge your process.

[00:14:48] Can we adapt to inputs?

[00:14:50] Do we have those feedback mechanisms in place?

[00:14:52] Are we running retros?

[00:14:54] Are we responding to feedback?

[00:14:56] And can we move forward?

[00:14:57] Now, interestingly, this metaphor does extend quite well because we can also talk about

[00:15:02] what happens when you press on the gas and you hold it down for an extended period of

[00:15:06] time.

[00:15:07] Eventually, your engine may overheat.

[00:15:11] If you have a more advanced engine, for example, it may actually govern the RPM when it recognizes

[00:15:18] that the temperatures are heating up faster than they can cool down.

[00:15:22] You may have an advanced cooling system, right?

[00:15:25] All of these things can actually kind of come back to how do we manage our process on a

[00:15:31] given team.

[00:15:32] If we’re pressing the gas, we have to expect a trade off.

[00:15:35] There’s going to be a rise in temperature and eventually there’s a breaking point.

[00:15:40] Does our process have controls or at least warnings?

[00:15:43] Do we see a warning light whenever we’re hitting those breaking points?

[00:15:47] Ultimately, your plan is going to be affected by both of these.

[00:15:53] As you begin to travel in the direction you want to go, which you’ve decided using your

[00:15:58] values and you’re executing on using your process, you may see feedback in the world

[00:16:04] that requires you to change your plan.

[00:16:08] Do you have a flexible enough set of values and a flexible enough process to change your

[00:16:14] plan?

[00:16:16] Inflexible plans are once again a core reason for a bad plan.

[00:16:22] So we’re largely fixing the what are you wanting to do with that first part, the values discussion,

[00:16:29] the principles discussion.

[00:16:31] This is where we find that aligned motivation concept.

[00:16:35] This is where we find that public transport.

[00:16:38] We all are headed in the same direction.

[00:16:41] Even if we have different outcomes that we care about, we’re all headed in the same direction.

[00:16:46] In the process, that engine is how we connect our intention or our values to action.

[00:16:54] This is what generates our plan.

[00:16:56] When we combine our process with our values, when we combine the engine with the steering

[00:17:02] input, this is the only way to actually get where we’re trying to go.

[00:17:06] If either one of those parts are missing, then our plan is simply incomplete.

[00:17:12] Thanks so much for listening to today’s episode of Developer T. I’d love to hear your thoughts

[00:17:17] on this kind of framework of thinking about planning and why it’s so important to have

[00:17:22] these stateless precursors or generators in advance of your plan.

[00:17:28] How are you deciding what to do through these kind of filters?

[00:17:33] I’d love to hear any extensions or adjustments you would make to this framework.

[00:17:37] You can tell me about those and tell others about those on the Developer T Discord community.

[00:17:42] Head over to developert.com slash discord to get started totally free today.

[00:17:46] It’s always free.

[00:17:48] We never going to charge for that discord community.

[00:17:51] And speaking of free, you will get your first three boards on Miro totally free.

[00:17:56] That’s our sponsor today.

[00:17:57] It’s miro.com slash podcast to get your first three boards for free.

[00:18:02] Thanks so much for listening to this episode.

[00:18:04] If you enjoyed this discussion and you want to miss out on future episodes of this show,

[00:18:08] subscribe and whatever podcasting app you’re currently using, we are barreling towards

[00:18:12] the end of this calendar year.

[00:18:14] And in fact, we’re only a few short weeks away from the ninth anniversary of the show.

[00:18:19] It kind of blows me away that we’ve almost been going for a decade here.

[00:18:23] Many of you have actually listened for much of that decade, and I really appreciate you

[00:18:27] sticking around and learning and growing with me as I go through my own career as a software

[00:18:34] engineer and as an engineering manager and as a director and all the other various things

[00:18:39] I’ve done in my career.

[00:18:41] Thank you for coming with me.

[00:18:43] I really appreciate each and every person who listens to this show, and I have loved

[00:18:48] getting your messages over the years.

[00:18:51] I always love hearing from listeners.

[00:18:52] I think it’s one way that you can help this show continue and also get those messages

[00:18:57] to me because I read every single one of them.

[00:18:59] So leave a review in whatever podcasting platform you currently are using.

[00:19:05] This is a huge help to help other people like you who haven’t decided to listen to the podcast.

[00:19:10] Maybe they’re looking for something to listen to.

[00:19:12] Your review might be the thing that pushes them over the edge.

[00:19:16] So that’s a huge help to the show.

[00:19:17] Thanks so much for listening.

[00:19:18] Until next time.

[00:19:19] Enjoy your tea.