Dying on the hill you never intended to climb
Code review and the path dependence of confirmation bias
One of the most common activities I engage in as a software engineer is code review. It’s incredibly valuable for a myriad of reasons, but I’ve realized that receiving regular (often pointed) feedback on my work often provokes weird subconscious reactions from me.
One quirk in my thinking that I’ve noticed is that when someone leaves a comment asking why I made a certain decision, often they’re actually asking about a non-decision, something that I hadn’t thought about at all. Maybe I copied that part from an example somewhere else, maybe I just guessed and my code compiled. The correct answer to “Why did you do it this way?” would be “No particular reason”. But instead, my response often is to try to figure out why I would have chosen to do it that way had I been doing it on purpose — I rationalize my non-decision after the fact.
It takes humility and trust to be able to admit that you didn’t even think about something, but identifying these oversights is the whole purpose of code review. It’s not a thesis defense — the best thing that can happen to the quality of my work is that someone notices something that I hadn’t thought of. But instead of seeing this as an opportunity, I end up digging in my heels for a decision that I didn’t even make in the first place. If I’m especially unlucky, I might convince the other person of something that I have no reason to believe other than not wanting to outwardly change my mind.
The problem is, all of this happens subconsciously — it took receiving code review feedback hundreds of times to notice this tendency in myself. I generally think of myself as very willing to change my mind, so this was alarming. It’s not intentional stubbornness — I’m trying to make the best decision possible, but end up defending my non-decisions because of some sort of subconscious association with them. And it made me wonder: in how many other domains am I doing the exact same thing, but am completely blind to it because I don’t receive constant feedback?
People often talk about the cognitive failure of confirmation bias, which is one of the most powerful ways we fool ourselves. Confirmation bias encourages us to seek information that confirms our beliefs and discard information that challenges them. What’s often not discussed is that confirmation bias also suffers path dependence. We accumulate beliefs, even small shreds of belief, through random coincidences and non-decisions as we go about our daily life. Then, confirmation bias causes these unintentionally acquired beliefs to intensify as we subconsciously look for confirming evidence. As a result, we can eventually develop conscious beliefs about the world due to this random, subconscious process. The way I accidentally become committed to defending my programming non-decisions is how we act with decisions all of the time. We find ourselves dying on hills we never intended to climb.