The Fallacy of Gray and Deciding What's Best
gray fallacy programming project management logic tools comparison context development best vs war
I had a discussion with a fellow Hacker News dweller named Loup on the Fallacy of Gray and how it applies to programming. After looking at his assertive, yet intriguing blog, I was motivated to continue the discussion.
Since gray is often visualized in the spirit of avoiding extremes, being a "gray developer" might conjure up images of flexibility. However, Loup reminded me that even "Grays" can be dogmatic about the chaotic nature of programming.
The problem Loup mentioned can be illustrated if Alice says to use tool A and provides the appropriate evidence to suggest it is better for the job, but Bob refuses because most languages are general purpose enough to suit their needs, and he is more accustomed to B. Bob's central argument is: "What does it matter?" The attitude effectively says "everything ultimately does not matter, but don't question me".
Although it is silly to get caught up in the countless zealous A vs. B wars around the net because we know that each tool has its pros and cons, it is equally silly to look at the chaotic nature of it all and refuse to defend tools that are obviously better for a job than others. Loup continued by pointing out there exists an underlying double standard in some corporate environments when considering a new, better tool (that could carry risk) along with an old, inferior tool that the staff is familiar with:
Assume that you had a job that could be taken care of with only one language. If you found that Lisp was better than C++ for a job, when Lisp is largely unknown in the company and you are the one who suggested it, the chances of you getting fired for a project failure is far greater than if you had suggested C++. But, if Lisp WAS better for the job, blame could only rightfully be assigned to people for misusing it. Still, a bias against Lisp might develop as a byproduct of the project's death! People should be disciplined appropriately for acts of stupidity, but should the discipline act against their good contributions as well? This is not to say that any tool choice is 100% objective, but context allows us to sort our options from best to worst based on our experience.
What I learned from Loup is that everything is gray, everything is chaotic and everything is uncertain in reality, but that should not stop me from feeling justified in calling someone out for taking a plane down the street instead of walking. Timidity is no excuse for not doing the best possible job, especially when you use chaos as a back door out of an argument you are losing.
When do you feel confident that in the midst of all the nuances of your field, your choice might be best?