Fashion and the Software Industry

by Ivan Gibbs
2024-06-28

Though the technology world has a diversity of techniques and solutions, you would not think so if you listen to many technology proponents. Too often, technologists have a very narrow view of the world based on their background and experiences. The internet has numerous postings regarding how method A is superior to method B, or tool A is superior to tool B. Better yet, many believe that philosophy A is better than philosophy B.

I imagine that this is akin to the motto 'Birds of a feather flock together'. Since these technologists are primarily self oriented in perspective, generalize from that point of view, and are willing to categorize other viewpoints as dissidents from their superior ways. This seems to explain the cluster of Linux enthusiasts who all believe that if you don't use Linux you are destroying the world or you are a member of some evil Microsoft cult.

Recently, I watched part of a youtube video where the author claimed that anyone who did not use git or did not know how to use git from the command line, is obviously someone who should not be a software engineer. Such a comment is obviously ludicrous, as if some particular piece of software now allows you to decline potential job candidates. The more amazing part is that people are actually watching and even agreeing with the author. This could be called a git cult. Now, git is associated with some superior way of software version control, but the author does not list the points by which it attains superiority. Rationally, one would expect such a claim to be followed by a list of version control products, with their ratings and classifications listed to be compared and contrasted. However, no such comparison is offered. The base claim is followed by nothing but further deductions from some premise that git is the only version control system that should be used.

Overall, this may be a failure of modern society. People are apparently able to read and write, but they seem to have missed the skill of thinking critically. Rational deduction is most useful when you have a strongly supported premise. Not when you use it based on a premise that is supported by (s1) this is what I think, (s2) I use this, so you should too, or (s3) 'everyone' uses this, so you should too. Statements such as 'everyone is doing this, so you should too' is fine as a premise for statements about conformity, or issues of fashion. And, fashion, is what I think is happening in a large part of the software industry.

Early in my career, I encountered this issue of weak premises supporting poor decisions. My job at the time consisted of testing and writing pay table code files for slot machines. A pay table consists of the combination of symbols on a line and the amount of the payout. Developers created a temporary pay table while developing the game and mine was provided for the final product. One developer, lets call him Bob, decided to speed up the process of pay table encoding by writing a tool. He showed me the tool and explained how he thought it would help me and how it could help the company be more time efficient. I accepted the tool from him, but really never used it because I did not find it to be helpful. One day, Bob walked by my cubicle while I was encoding a pay table into C code. He remarked that his tool may not be helpful for me, because he realized that my typing speed is about 60 words per minute. You see, Bob's belief in the utility of his tool was based on his personal experience--he is a slow typist. In the end, the tool was useful for people who could not type very fast and this is why Bob made the tool. However, his conclusion that it was going to help everyone was untrue. This story illustrates the problem with drawing conclusions from aforementioned premises supported by s1 and s2.

To conclude this article, the lack of critical thinking skills of the population at large can be a problem with a mass information dissemination technology such as the web. Remove yourself from this problem by using your reasoning abilities to avoid the undue influence of weak rational deductive propaganda.