Hey everyone, and welcome to Developer Tea.
My name is Jonathan Cottrell.
The goal of the show is to help driven developers like you find clarity, perspective, and purpose in their careers.
In today's episode, I want to discuss something that has affected me and has almost certainly affected you at some point in your career, at some point in your life, maybe affecting affecting you right now.
It may be affecting your teams, your family, this idea that perfection is something to strive for.
I would like to convince you today that perfection is actually a dangerous goal.
Not only is it just an unrealistic or an unnecessary goal, which is the common understanding, right?
That the people who have talked about this subject at length usually say that perfection is unnecessary.
That perfection is not the goal.
That instead, Instead, you know, good enough is the goal or progress over perfection.
But I'd like to convince you that not only is perfection just not the goal, it is also dangerous.
Why is it dangerous?
The core of my argument here is that perfection fundamentally is fragile.
And I'm going to lay out a couple of ways that perfection is fragile.
Perfection creates a specific outlier case.
So what does that mean?
It means that in order to arrive at something that is perfect, we have to do something exorbitant in almost every case, right?
In order to have, for example, 100 % code coverage, we would have to write an exorbitant number of tests.
In order to have 100 % uptime on our server, we would have to have some highly, extremely optimized thing.
And even then, it's probably still impossible.
but if you think about the investment curve for what this requires you start to increase the investment pretty significantly as you get closer and in some cases there is actually a limit in other words the investment would increase to infinity is actually impossible to reach that that 100 % perfection mark.
There are a lot of ways in which the psychological concept of perfection creates fragility as well.
For example, let's imagine that you had a single quarter where everybody delivered everything on your team.
Now you've had a perfect quarter, which most likely, if you're in the average company, you're going to celebrate.
Now, there's this concept in psychology, pop psychology called the Wheaties effect.
What is the Wheaties effect?
If you're not familiar with the idea of athletes on the Wheaties box, normally the athlete who might make it to the Wheaties box, Wheaties is a cereal for those of you who are not in the United States.
if you if you made it on the Wheaties box this is because you had an extraordinary season you had an extraordinary season so what does that mean it means that something happened such that you stood out from the crowd maybe you had the closest thing to a perfect season as you could have maybe you won every game maybe in an individual sport you broke Broke every record, whatever the category is.
Now, the Wheaties box phenomenon has nothing to do necessarily with that season, but rather the next season.
And whatever sport you play, there is a very high likelihood that the next season you will not be on the Wheaties box.
Not only that, but comparatively, you're going to have a much worse season.
Why is this? What's special about the Wheaties box?
Truth is, nothing is technically special about the Wheaties box.
When you become an outlier, when there's anything that relies on being an outlier, it is unlikely to be sustainable.
This is the core of my argument about perfection being dangerous, okay?
Things that are outliers tend to regress.
So if things tend to regress, they regress back towards normal.
They regress back to the mean.
This is a phenomenon in mathematics, but it's also just kind of a statistical reality.
Something that becomes an outlier is unlikely to stay an outlier.
Now, things that become an outlier are more likely to be outliers again, more than other things, right?
So, uh, you know, whatever the characteristics are that made the thing an outlier, especially if those characteristics are correlated with why that thing became an outlier in the first place.
So for example, that Wheaties box athlete very well may become an outlier again, but But there is a consistent phenomenon here because even though there are a lot of factors that might make an athlete stand out and may help that athlete be an outlier in one season and another season, there are also factors in almost every sport that are outside of that athlete's direct control.
so that might include luck uh it might include you know uh just just how the the season fell together maybe their opponents uh you know the particular lineup that they had so there are plenty of reasons why the Wheaties effect occurs all right so what does this have to do with our pursuit of perfection as software engineers.
So when we have anything that is an outlier, you know, the difficulty or the risk that we run is that it will not stay an outlier.
When we expect perfection, perfection is an outlier, right?
How many things do you know that are perfect?
Probably very few, perhaps close to none.
so achieving perfection achieving 100 of any particular goal this is very likely to be a fragile effort a fragile effort it is likely to create fragility in the effort itself right and and there's a couple of different ways that this happens a couple of different kind of mechanisms that you can think about let's let's look an example if you were like like many other people.
If you said, you know what, I'm going to make this year the year that I'm going to the gym.
I'm going to get on my exercise routine.
I'm going to get on my diet routine.
I'm going to read a book every week.
You know, I'm going to write a blog post, two blog posts every month, whatever it is, right?
And so you develop this expectation of yourself.
and you expect that your perfection would be the bar.
You haven't met the goal unless you go to the gym every day.
You haven't met the goal if you fall off the train on your diet.
And there's good evidence to say that once you've broken what you consider your commitment to be, you're very likely to let go of the commitment altogether.
Once you've broken perfection, once you've not been an outlier, then you throw away the goal, hence why you can see so many people falling off the wagon.
How many people do you know that have not kept those resolutions?
There's plenty of other reasons why.
It's not just because people are seeking perfection.
Certainly, there are people who set reasonable goals that are not perfection, they still have trouble following through.
So we're not talking about those cases in this episode.
That's other episodes where we'll talk about, you know, habit formation and that kind of thing.
But the idea that you would achieve perfection is an outlier state.
Should we design our lives in such a way that achieving outlier states is The only way that we make progress, should we design our sense of motivation and achievement around outliers or around the upper part of the curve?
My argument is the upper part of the curve is much more likely to serve your ultimate intent.
Your ultimate intent is very unlikely to be spending an exorbitant amount of money, time, effort, an exorbitant amount of energy, a personal kind of, you know, a significant chunk of your life, right, going towards that asymptotic goal of perfection.
perfection. You have this likelihood that if you set your goal as perfection and you're likely to give up whenever you break your commitment, whenever you break your goal, then you are likely to give up.
If we design our commitments in a way that we are likely to give up, then we're be giving up a lot of the time.
In fact, we will give up in almost every case because perfection is an outlier.
Once again, seeking perfection means that you are setting yourself up for a fragile commitment, a fragile state.
Another good example of this is during planning sessions.
okay? Most likely, if you're like most people, you tend to plan either on your team or for your personal workloads or whatever.
You plan to the brim.
That means you determine with a certain amount of time exactly where that time is going to go.
You may do this in weeks.
You may do it in you know story points you may do it and there's a bunch of different methods by which you would fill to the brim this is a form of perfectionism this is a form of creating a fragile outlier state why is that because your assumption when you fill to the brim is that one you've got all of this sizing, all of the expected effort, you've figured it out.
You've learned everything you need to learn.
You know exactly how long everything is going to take and you can fit everything into the right buckets at the right sizes and nothing will change.
Well, if you've been doing software for very long, there's so many fallacies in this thinking.
Not only will things change, but the sizes of things are likely to change as well, usually in the upward direction.
So what was previously a full bucket now is an overflowing bucket.
But even if you are relatively correct about the size, you may not necessarily be correct about the order.
And so what previously was a reasonable plan becomes an incorrect plan because you don't have any space to move things around.
We also tend to discount things like getting sick, going on vacation, these things don't make it into our plans, the cost of changeover, the cost of shifting our focus, all of these things are discounted.
And so the likelihood of change is so high that building slack into your system to accommodate for that change is much more likely to yield a result.
Now, you'll notice that perfection is a 100 % effort.
Slack would mean less than 100 % utilization.
So planning to 100 % is a type of perfection fallacy.
It's a type of setting yourself up for an outlier event, right?
An outlier fragility event, right?
So a lesson there is avoid things that look like a hundred percent.
If you see something going to full, if you see some kind of planning process that fills people's time all the way to the end, this is true regardless of what we're talking about in terms of time.
Let's say you're planning a conference and you fill every every single minute of that conference.
It's very possible to keep the trains running on time, but it's not likely.
It's likely that having five minutes between sessions is going to serve you well because it's going to give you slack.
It's going to allow you to not rely on an outlier state in order to succeed, right?
This is a fragile way of thinking.
So what can we do? What do we do in the face of this you know of course we've already said plan with slack okay there are other ways to improve your uh your outcomes without relying on perfection for example if you rely on redundancy as another way of thinking about achieving your goals we've talked about this on on the show before, thinking about having multiple, for example, servers.
Redundancy in servers is a cheaper approach to high uptime.
You can go and Google this.
The math is very much in favor of preferring redundancy over hardening a single system.
How can we apply this mental model in other situations in our lives.
One example, if we're gonna go back to our New Year's resolutions, one example would be, first of all, plan some slack into the system.
That means have a couple of days where if you miss your workouts, you're not breaking your commitment, right?
Maybe shape your commitment such that it's not dependent on a hard number of days, but rather it's dependent on whether or not you continue to come back at any point.
You may come back and fulfill your commitment.
And so if you have a tough week where you get sick for three or four or five days or 14 days, that doesn't necessarily break your commitment, right?
So there's ways to think about avoiding these outlier states, if we're thinking about redundancy with relation to, let's say, like an exercise commitment, you may want to think about multiple ways that you can fulfill that particular action.
Maybe there is an overall health investment that you want to make.
An exercise is one part of it.
Eating well is another part of it.
Maybe social commitments is another part of it.
And you could round Robin those things, right?
In other words, like, hey, you know what, I don't feel especially energetic to go to the gym today.
But I do feel like investing in my social connections is doable today.
Oh, this redundant plan to invest in your health more generally, right, includes spending time in a social setting.
And you might set up some kind of, uh, you know, flexible, broad ratios of how much time you're going to spend in each of those areas, uh, with the expectation that, Hey, I'm going to do one of those things, right.
I'm going to try to invest in at least one of those areas every day.
This provides flexibility.
It gives you the opportunity for redundancy.
Uh, it provides the, the, the avoidance of an outlier scenario.
Okay. So there's a lot of ways that you can invest in, in, in better pathways that avoid perfection.
But the most critical thing to take away from this is that perfection is not a neutral concept.
Achieving perfection is not, you know, a linear step away from good enough.
It may be an exponential or even asymptotic step.
It may be impossible.
And your investment towards it is likely to put you in an outlier state that is unsustainable.
It's a fragile state.
So when you see perfection as a requirement or an expectation, expectation, I would recommend that you do what you can to avoid that.
Don't just question it.
I think it's worth actively avoiding things that require perfection.
Thank you so much for listening to today's episode of Developer Tea.
I hope you enjoyed this episode.
This is the second episode where we're actually recording videos, and we're going to be releasing these videos, by the way, on a little bit of a delay because we're still getting some of the video production stuff figured out.
So you're not going to see the last episode, this episode yet on video platforms. We're going to be releasing those on YouTube.
It's kind of funny if you are watching me say this right now because this will no longer be relevant for you at that point.
But we're going to be releasing this on YouTube and on other video platforms. Probably we'll do some shorts and that kind of thing.
So watch out for those if you are a regular subscriber to the podcast podcast, uh, and you're interested in video content and, and how this comes together in a, in a kind of a different format, uh, maybe that will change the way you consume this show, uh, go and check it out on YouTube or other video platforms. Once again, it's not yet set up.
So, uh, I'm talking to future you, uh, thanks so much for listening and until next time, enjoy your tea.