Prioritization Using Critical Path Thinking
Published 4/23/2024
In today's episode, we talk about the counterintuitive process of prioritizing based on critical path. This is not a novel concept that I've invented, but rather a revisiting of the classic discussion started by Eli Goldratt in his book "The Goal", and later in his book "Critical Path", based on the theory of constraints.
๐ Today's Episode is Brought To you by: PropelAuth
If you're building a B2B product and looking for an auth provider that can support you now and as you grow, give PropelAuth a try. All of their features are available to test without a credit card, and you can get started at www.propelauth.com today!
๐ฎ 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)
In today's episode, I want to share some of the most basic prioritization advice that you'll ever hear. And hopefully, hopefully this is not groundbreaking. This should be just a reiteration of some principles, a revisiting of the basics of prioritization. And this concept is one that actually does trip people up a lot, even though it is very fundamental. And the reason it trips people up a lot is because we tend to think in terms of individual tasks. We try to prioritize by thinking in terms of, let's say, one ticket at a time. If we're lucky. We're thinking at least on the epic scale, right? If you're using epics in your planning, some selection of a group of stories, a group of tickets, tasks that all are related to something together. Now, it seems intuitive that we would prioritize this way. It seems like we can look at a pool of things to do and pick any number of those things. And. Let's say we have a pool of 100 items. We could take five items and compare them in terms of their relative priority to each other. How much value gets delivered by this atomic piece of work? And we think about our lives this way as well. We think about most business processes this way. In fact, for many years, this is the way that factories were managed. You think about each individual. Each discrete delivering mechanism. This machine has some amount of utilization rate, for example. This is the language that you would use in a factory setting. And the utilization rate of machine A and machine B and machine C can all be evaluated separately from each other. And there is some imperative in traditional kind of old school factory management. To try to keep your machines running at the maximum utilization rate. But this kind of prioritization, this kind of energy spend, this kind of unit economics thinking breaks. Instead, I want you to think in terms of the critical path. I'll share a short anecdote. My wife's birthday is tomorrow. So she is on my mind and she does a very good job. In fact, she does a very good job of doing a very good job of doing a very good job of doing a very good job of doing a very good job of doing a very good job of doing a very good job intuitively and understanding the critical path. And specifically, our two young children, when they are getting ready for school in the morning, my wife understands the critical path of getting them to school on time. It all starts all the way back at a wake-up time. And if things are not sequenced properly, then it's very possible that we threaten getting the kids to school on time. She has this intuitive understanding. Of what things can we trade off? What things can be parallelized? What things must be done in a certain order? Of course, you're not going to put your shoes on before you change your pants, for example. So I'm going to ask a very simple question, perhaps a confusing question, and then we're going to take a quick break and then we're going to come back and talk about how the critical chain works in your work life. The simple question is, what does toasting a bagel have to do with my project? We'll talk about that right after we talk about today's sponsor. that right after we talk about today's sponsor. Today's episode of Developer Tea is sponsored by Propel Auth. Propel Auth is a B2B authentication and user management company built for every stage of your business. Whether you're a pre-launch startup looking to get up and running quickly, or a company's finding that your current auth provider is more expensive than useful, get your users onboarded smoothly with support for login methods like traditional passwords, SSO, and SAML, and then empower your customer support and success teams with user impersonation and built-in admin dashboards. Propel Auth understands that choosing an auth provider isn't just about the feature set. You want to make sure you're getting into a partnership with the company you can trust for the long haul. That's why they offer transparent pricing, the ability to try out all their features in a test environment with no credit card required, and top-notch customer support. One happy customer recently said, Propel Auth has been my go-to for quick and easy authentication for a while now, but I had yet to interact with an actual person there. This week, I finally needed to in a bit of a pinch, and they came through in a big way. If you're ready to give Propel Auth a try, head over to www.propelauth.com and sign up to start exploring. That's www.p-r-o-p-e-l-a-u-t-h.com. Thanks again to Propel Auth for sponsoring today's episode of Develop a Team. What does a bagel have to do with your project? As I mentioned before, my very intelligent wife who works in product herself, she has an excellent handle on the critical chain for getting the kids out the door. Of course, she brings this kind of skill to work, but this is where I see it most readily, apparently. Perhaps this is why she's such a good product leader. But she recognizes that there are some things that are sequential. You have a dependency that may seem like, in an atomic sense, not a big deal. Toasting the bagel on time is necessary because if you don't toast the bagel on time, you won't have time to spread the cream cheese on the bagel before you have to walk out the door with the bagel in hand. Spreading cream cheese is not something that can happen in parallel in the car, but the kids putting the shoes on can. Instead of trying to help the kids get their bagels out the door, you can spread the cream cheese on the bagel in parallel. You can spread the cream cheese on the bagel in parallel in the car, but the kids putting the shoes on can. Instead of trying to help the kids get their bagels out the door, you can spread the cream cheese on the bagel in parallel. Instead of trying to help the kids get their bagels out the door, you can spread the cream cheese on the bagel in parallel. Instead of trying to help the kids get their bagels out the door, you can spread the cream cheese on the bagel in parallel. Instead of trying to help the kids get their bagels out the door, you can spread the cream cheese on the bagel in parallel. Instead of trying to help the kids get their bagels out the door, you can spread the cream cheese on the bagel in parallel. probably get the bagel out of the fridge and get it into the toaster as soon as you can. And this kind of feels counterintuitive. You would think that, well, shoes are more important than bagels, right? This is the kind of unit economics thinking. We should prioritize shoes because the kids having shoes on at school is a must. We must have shoes on. But the bagel, you know, the bagel doesn't get eaten until it gets into the car. But this is the wrong way of thinking because sequencing of these things is what's most important. Nothing really matters except the total package. We can't think about the value of getting the bagel done on its own without thinking about what it will take to get the kids to school on time. Now, this lecture is not a lecture about being on time. Instead, it is a lecture about thinking about prioritization. Prioritization prioritization prioritization is only about time in so much that you're choosing what to do at any given point in time based on your prioritization. But here's what tends to happen in immature product teams and companies that have not figured out how to think about critical chain. The bagels get deprioritized. Now, sometimes this is the right call. Sometimes there are indeed things that are more important than bagels. Like, for example, if you're a bagel lover, you're going to want to think about changing out of your pajamas into your school clothes, if you're my children at least. But prioritization strategies almost always should be considering the critical chain. The critical chain is the things that must happen sequentially, that you cannot parallelize, that you can't deprioritize one over the other. You can't change the ordering. The critical chain is exactly what it sounds like. The critical chain is the things that must happen sequentially. The critical chain is the things that must happen in that order. And any one of those links in the chain, there may be other parallel things that can happen alongside of it. But most importantly, the highest priority stuff is going to be whatever lives on that critical path. Now, you might challenge them. You might say, okay, that doesn't sound right. It seems like there are still other high priority things that can be parallelized. That's absolutely true. But if you're a bagel lover, you're going to do something that's not on that critical chain that is parallelizable instead of doing something on the critical chain. By the way, this is not an original concept that I came up with. This is all based on the theory of constraints. We've talked about this recently on the show before from Eli Goldratt and his book, The Goal. In fact, he does have a book called The Goal. It's a book that's critical chain and it is about project management. There's a lot more that has happened in agile management and project management and various research that has gone on. But the same core concept remains valid. And that's because it's simply a logical concept. It's a logical truth that whatever your critical chain is, is your constraint. And so if your goal is to deliver your project, it's a logical truth. It's a logical truth. It's a logical truth. It's a logical value as soon as possible. Again, we're not talking about deadlines here. We're talking about delivering value as soon as you possibly can. And the blocker to that value being delivered is the critical chain. Then it logically follows that anything that comes in the way of continuing to progress on that critical chain is likely lower priority. The more realistic scenario is actually when you have multiple critical chains. You have multiple projects or efforts running and each of them has their own kind of path. So we're kind of excluding that intentionally from today's conversation because prioritizing in a multi-project or a multi-effort environment is a little bit harder to do. But you can apply this concept in virtually any environment, in almost any kind of process. Every process has some kind of critical path. Maybe the critical path is only one item long. That's fine. But it's very likely that the critical path has a couple of things, a handful of things that are required. And the sooner you recognize the importance of sequencing, the sooner you can respond and set yourself up for success based on the critical path. I'm going to give you some homework in this episode. The homework is very simple. Think about some kind of process that you are performing in the next week. Maybe it's over the weekend. Maybe you're doing a barbecue or something. Think about what is the critical path associated with that barbecue. What do I have to do? When do I have to, for example, buy the meat or the veggies that I'm going to barbecue? When do I have to start the grill? When do things cool down and when do I serve them? All of these things can be considered part of the critical chain. Think about what parts of that path can be parallelized. So can you do something? While something is sitting on the grill? These are very simple kind of mental models and playing around with the critical path in this low stakes environment can kind of give you the mental or the muscle memory to be able to then kind of translate that to another critical path. So you can think about how do we parallelize things? How can we make sure that this path is not interrupted? I'd love to hear more about what you, you choose to think about what, what kind of critical paths you've, you've recognized, you know, what is something that you realized as a part of this, that is very important because it is on that critical path and it's blocking very important things after it. Maybe this concept of unit economics is fundamentally new to you. I'd love to hear about your experiences, listening to this episode and then applying these ideas. You can join the developer team discord community and share with me over there at developertea.com slash discord. Another huge thank you to today's sponsor propel off. If you're building a B2B product and looking for an auth provider that can support you now, and as you grow, give propel off a try. All of their features are available to test without a credit card and you can get started at www.propelauth.com. That's www.p-r-o-p-e-l-a-u-t-h.com. Thanks so much for listening. And until next time, enjoy your team.