So here is something that has been on my mind as of late: The plague of shitty software. My goodness, there really is a lot of it floating around nowadays. That’s not what I’m really concerned about though. What concerns me is that our ability to accept shitty software leads us to create even more shitty software.
I am not talking about end users here. I am talking about software developers. Most software developers spend a huge portion of their lives suffering through shitty software just like non-developers do. Now in some cases, we suffer through different kinds of shitty software that is specific to our profession but in a lot of other cases we suffer through the same pieces of shitty software that you do. A couple of examples that come to mind are: Windows 10, Microsoft Office, Visual Studio (not Code) SQL Server, Eclipse and PHP. Those are just a few examples. Most of my examples are products produced by Microsoft. That’s mostly a reflection of the fact that I’m still stuck using a lot of proprietary Microsoft software as part of my day job despite the fact I stringently refuse to use it outside of work. While I’m going to pick on Microsoft for the majority of this post I want to be very clear: Microsoft isn’t the only company producing shitty software and feeding this beast. They just happen to be producing the vast majority of the tools that happen to drive me insane on a daily basis.
Back on topic: Every piece of software I listed above is garbage. The reasons vary but the majority of them suffer from a combination of the following factors: They have long running bugs that will never be fixed, are inherently antagonistic towards their user base and/or charge an insane premium for functionality that in a best case is equal to something on FOSS side of the fence. Despite all this, I know legions of software developers who will swear these tools are great. It doesn’t matter that their first solution to any problem with any Microsoft product is to simply reboot/recycle/restart because they have no insight into what its actually doing because the products go out of their way to deny you that. They still love them. Inherently I believe that this situation is similar to the one that an addict has with the substance they crave. They have grown so dependent on it that they believe having access to it is an absolute requirement to ensure their existence. Or better yet maybe a term like “Stockholm Symdrome” is more appropriate. Your call.
I can hear you asking, why is this a problem? Sure some people have different opinions regarding pieces of software Jay despises and thats okay, right? Yes it is perfectly fine. However there is a secondary concern here that I want to address. If somebody who claims to be a professional craftsman simultaneously advocates for substandard work produced by other so-called professional craftsman, what reason do you have to believe that are capable of holding themselves and their work to a reasonable standard?
To phrase this in a different way: How can a craftsman who is willing to lower their standards to such an extent where substandard tools are okay be trusted to not do the same thing when it comes to judging the work they do for you? Personally, I don’t want to work with craftsmen who are incapable of being critical of their own work. In fact, that kind of thing really bothers me.
At the end of the day, the software shops in the world produce a lot of shitty software and I don’t think anybody is in a position to deny that. I believe the fact that so many devs started their careers out by lowering their software standards so that they could use a particular set of technologies or tools has at least seriously compromised their ability to judge the quality of their own software as well as third party software. As professionals we absolutely need to push back against this trend as it represents a cancerous threat when it comes to being able to profitably practice our craft in the years to come.