We understand and truly believe that everyone did the best job they could given what they knew at the time.
This is the creed we have read out at the beginning of every retro at DealerOn. They are really not hard words to say and to agree with. I doubt there are many people out there in the software world that would disagree with the message that lays on the surface.
I've found myself applying and reciting the creed in many aspects in life recently. Not simply within the tech stack, or work in general, but in life. And the more I've said these words, the more I really started to reflect on the meaning. I realized it goes much deeper than I had originally thought.
The immediate message is simple. Don't place blame. When something goes wrong, there is no need to blame anyone because you can have faith that they were doing the best they could with the knowledge they had.
I think this can actually be extended to much more than just coworkers. Call me an optimist, but I typically like to assume that people are well-intentioned. Generally when someone makes a decision that seems outright stupid in hindsight, I believe it's because they were stuck with the limitations of the knowledge they had at the time. Or even more common, maybe there's a piece of information I'm missing that they acted off of.
With this assumption in hand, it becomes more of a matter of identifying what knowledge may have been missing when something goes wrong, so that you can have the appropriate knowledge going forward making similar decisions.
If you dig in just a little bit more, you run into common theme you'll see in many "how to architect/code" guidelines. Make decisions using the knowledge you have now to make the best decisions you can. Not hypothetical knowledge that you don't have.
Picture yourself in a year looking back at action you are thinking out. Are you putting days of effort making your new code generic friendly because you know there's a use case for it, or because you don't know if there's a use case for it? Make the best decision based on what you know, not what you don't know.
This philosophy of "Journey Before Destination" (stolen from The Way of Kings) is another pretty big one for me. I could write an entire post on that alone (and likely will). We, as developers, have a tendency to over-engineer things to focus on solving some magical end goal state instead of solving the current problem of the journey. This is completely making decisions based on what you don't know, and often leads to much wasted time when goals shift (welcome to the world of software design).
Instead focus on solving your current problem with your current knowledge, and maximizing learning from the solutions you implement to best guide your actions in the future.
If you live by the creed, you can wear it as a shield from distress (the bad stress).
Literally everyone has screwed up at some point. I have forgotten my share of where clauses in delete commands. The fact that a
= instead of a
== can make an entire application crash and burn (and I've been there too) means that we live in a super volatile crazy industry.
When this happens, it's really easy to focus on everything you did wrong. This causes distress. Some of the knee-jerk reaction bug-fixes I've seen come from this mentality have caused almost as many problems as the initial bug. Instead focus on learning. You learn more from mistakes than successes.
Trust in yourself that you did the best you could, and trust that in the future you will do even better armed with the new found knowledge. This is difficult to do, and takes a lot of mental training, but when you finally truly embrace it you will find your distress replaced with eustress (the good stress). Instead of inducing anxiety and depression, you'll find yourself motivated to improve.
At the end of the day, it all really boils down to trust. And not just built trust, but universally applied trust. Trust and then verify. It's a hard ask, we are surrounded on a regular basis with news stories spun to make it seem like people have no idea what they are doing.
This trust that your coworkers are doing the best they can is how companies prosper. It's the foundation of this new age of crazy concepts like unlimited vacation, setting your own hours, and setting your own pay.
It took me a year or so of listening to the creed on a monthly basis before it really sunk in. It can often be easy to take to the "don't point fingers" part, but I think almost more important is having trust in yourself. Trust that you are doing the best you can now, and that you will continue doing the best you can.