« All Episodes

Law Of Conservation of Uncertainty (Part 2)

Published 5/31/2017

In today's episode, we talk about a principle of project planning that you can use to help deal with uncertainty.

Today's episode is sponsored by Fuse! Build native iOS and Android apps with less code and better collaboration. Head over to spec.fm/fuse to learn more today!

Transcript (Generated by OpenAI Whisper)

uncertainty exists all around us we established this in our last episode but how can we embrace it rather than fighting it that's what we're going to talk about in today's episode my name is jonathan cuttrell you're listening to developer t my goal on this show is to coach you through the hardest parts of your career to provide you with information insights inspiration conversations with people in this industry as well as other industries all kinds of conversations that we've had on this show all in hopes of helping you become the great developer that you want to be i've said it on a few episodes now and i'm going to continue saying it if you don't want to become a better developer than you are today then you probably have no business listening to this show my goal is for you to walk away from listening to this challenged and optimistic charged up ready to take an action step today that will make you a better developer we can take a very simple step each and every day to become better at what we do sometimes those steps are extremely practical sometimes they mean setting up your environment in a new way but sometimes they're not super practical instead they're much more academic or perhaps theoretical mindset mindset shifts ways of thinking ways of changing your thoughts and your mind and your mind and your mind and your thought patterns ways of changing the way you view the world around you and that's kind of what we're talking about in today's episode we're talking about uncertainty in the last episode we established this idea of the law of conservation of uncertainty what does that mean well it basically means that for any given project and really for anything that you do in your life a level of uncertainty exists there are so many variables that go into any given decision and so if we act like that uncertainty doesn't exist then really all we're doing is shifting it to a different place but in the last episode we also established the fact that humans are loss averse this shouldn't come as as a surprise there's tons of research already out there on the subject but because of our loss aversion we seek certainty we want to be as safe as possible with our bets this goes for our money and it goes for everything else that we do full security uncertainty puts those decisions into a different category the things that we can be fully certain about as developers these things are few and far between it's not bad news and that's what we're talking about today how to embrace this uncertainty very often we try to sell certainty this is such a common business practice we want to sell a given product with all the features that you want for a fixed price and within a fixed timeline all of these things mitigating uncertainty and ultimately viewing uncertainty as the enemy but perhaps there's another way to do this perhaps we can embrace uncertainty and instead of selling certainty we sell change change is progressive change is adaptive if we sell change as a valuable aspect of our business we're going to sell it as a valuable aspect of our business and when we sell change as a evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution evolution then uncertainty becomes embraced. Uncertainty provides us an opportunity to use what we've prepared for, change. This is what we're going to talk about in today's episode, some very specific examples of when you can use this methodology, this thinking, this way of viewing certainty. Really, it's a way of thinking about the world. We're going to talk about that in today's episode, but first I want to talk about today's sponsor, Fuse. Fuse is changing the way app development is done. If you've ever worked on game development and you've used something called Unity, then you know a little bit about what Fuse does. Fuse is available on Mac and it's available on Windows, and it provides you a brand new environment for doing app development, writing less code and focusing on the product 100% of the time. This is what Fuse allows you to do. If you're an app developer, I want you to think about this. How long have you been doing things the same way? Virtually for your whole career and for decades in this industry, app development has been done effectively the same way. This is what Fuse is trying to change. Go and check out what Fuse has to offer for you app developers. By the way, it compiles to real native code and you can create iOS and Android applications using Fuse all in one easy to set up package. Go and check it out. spec.fm.fuse. That's spec.fm.fuse. Thank you again to Fuse for sponsoring today's episode of Developer Tea. So we're going to talk about some specific scenarios where embracing change is more valuable than trying to mitigate uncertainty. Embracing uncertainty when that can be a valuable thing. One of those scenarios is when you're trying to mitigate uncertainty. So if you're trying to mitigate uncertainty, you're going to have to use a lot of different ways to do that. So let's talk about some of those scenarios. For you as developers who are very young in your career is when you're looking for a job. If you walk in to your first interview and you have a list of, let's say, seven or eight skills that you've put on your resume and you discuss these skills with your potential employer. Let's say that that employer wants you to work with skills that are outside of your current skill set. The developer who embraces uncertainty is going to want you to work with is open to changing their skill set. The developer who embraces uncertainty is open to using new tool sets. They're open to the possibility that they made a bad choice yesterday. They're open to the idea that learning new things is just as valuable as practicing old things. Now, of course, we talked on the show about managing your tech portfolio or your skill portfolio. So if you're a developer, and that still holds true, I don't want you to be jumping between tech every day or every week or even every month for that matter, and certainly develop your skill sets in one area. But once you get a chance to work with a company and the opportunity hinges entirely on whether or not you're willing to try out a new programming language or perhaps a new framework, if you are of a fixed mindset and if you are trying to mitigate uncertainty, if you don't want to change and progress, then you may end up not getting that job, right? That is a detrimental situation to be in very often because you will find in most scenarios when you're either changing jobs or you're getting your very first job in the industry that you will need to learn new things. Very few people would disagree that having an adaptive mindset, having a very first job in the industry, is a very good thing. So if you're a developer, if you're having a dynamic and progressive mindset when you are coming onto a new team, that that would be a bad thing. Talk to any hiring manager, any development manager, and they will tell you that learning is a priority and being able to adapt to new environments, adapt to new frameworks or new methodologies, that that is incredibly important. So that's an obvious scenario where embracing uncertainty is important for you when you're on the job search. If you only hold yourself in the job search, you're going to be in a very difficult situation. If you're going to be into specific jobs that are only looking for your skill set and they don't require you to change, then you're basically cutting possibilities, right? This is extremely important to understand because the same system of thinking should apply to the way we conduct our projects. So what does it look like to embrace uncertainty in a project environment? Really, what it comes down to is what you are committing to. Let me walk this out for you. What you are committing to as a developer and as a company of developers, and hopefully some of you who are crafting your sales presentations and who are crafting development services contracts, client services contracts, hopefully this will hit home. If you craft your contract so that you are committing to a feature set or you're committing to a specific deliverable that is far out into the future, then you're basically guessing what you're eating for dinner in two weeks. Think about that for a second. We did this thought experiment already. You don't know what you're going to have for dinner in two weeks. It's nearly impossible to forecast things that are uncertain. So when we commit to specific deliverables that are far out into the future, and extremely difficult to determine and have a lot of uncertainty around them, then we're very often limiting our ability to change. This is an extremely negative aspect of these kinds of commitments. Instead of committing, here's the kicker, instead of committing to a specific deliverable that is far off into the future, commit to a direction, commit to quality, commit to a future. Commit to the most valuable things, and finally, commit to clarity. Direction, quality, value, and clarity. If you can commit to these four things, then the actual deliverable in the end will have dynamically shifted along the way as requirements change, as the environment changes, as people's minds change, as taste changes, as the market changes, all of the things surrounding the project change. And allowing the project to change also increases the value of that project. So I want you to write this out. Write this out for your next project. Direction, quality, value, and clarity. Direction, quality, value, clarity. Committing to these four things and building iteratively. In other words, building the next most valuable thing, right? And doing it in the direction that has been discussed, being extremely clear with the person that you're working with, with your client, and never compromising on quality. All of these things create a situation where change is invited, uncertainty is embraced rather than mitigated. Hopefully this has been a challenging discussion for you, and hopefully you understand that this commitment creates a better product in the end, because we can't eliminate uncertainty. We can only move it around. Shift it. Change the responsibility for that uncertainty. We can sell certainty by owning the responsibility of dealing with the fallout of uncertainty, but we cannot eliminate uncertainty altogether. We can only make good guesses. Thank you so much for listening to today's episode of Developer Tea. Thank you again to today's sponsor, Fuse. Fuse is allowing you to do away with the old way of building iOS and Android apps, and it does it all. And one convenient package that's available for Mac OS as well as Windows. Go and check it out, spec.fm. Thank you so much for listening to today's episode of Developer Tea. If you don't want to miss out on future conversations on things like uncertainty and other things that are going to impact your career and help you become the great developer that you want to be, go and subscribe in whatever podcasting app you use. Thank you so much for listening, and until next time, enjoy your tea. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon. See you soon.