Monoculture Mentalities vs. Compatibility: How Developers’ Myopia Impacts User Experience
Posted on 14 April 2010
This latest installment to the “Historical Perspective” section may be a bit dated in terms of me needing to use Netscape 4.8 but the overall theme is timeless. If I were to write this article now, little would need to be updated. This was originally posted to Anthurian on November 11, 2004.
Much to my chagrin, I am currently in the middle of downloading Netscape 4.8 to install on my Home computer. Yes, I realize that I’m taking a huge step backwards but, in order to do some general administrative work for my job, I’m unable to use Mozilla or Internet Explorer. You see, we have a Time Entry System that was developed to run on Internet Explorer 5.5, which is the standard company-wide browser most employees have installed on their workstations. Unfortunately, the developers didn’t make any exceptions and the System has problems running on Internet Explorer 6 and won’t function at all if accessed via Mozilla.
The issue? Java and the Microsoft implementation (or lack thereof) of the Sun JRE. At work I am using IE 6 and have no issues using the Time System but, when I installed the latest JRE, I made sure to exclude IE so it doesn’t use Sun’s version of Java but the default, Microsoft, version. There are others who weren’t so lucky and have had to install patches, jump through hoops, and balance a ball on their head, in order to get things working correctly. Of course, I use the term “correctly” very loosely, not knowing what had to be kludged together to fix their issues.
At home I’m not quite so lucky — despite uninstalling and re-installing all Java-related software and following the same steps I did at work, I’m unable to use a system that is, supposedly, meant to be Web-accessible. At first I considered the Google Toolbar (which is installed on my work computer) thinking that it’s pop-up blocking was hindering my efforts but, after allowing site pop-ups for the Time Entry System, found that wasn’t the culprit. Now the Time System just crashes IE 6 if I attempt to use it and, like I said, Mozilla is completely out of the question as an alternative.
Therefore, after banging my head against multiple walls, I’ve been forced to find a solution to a problem that would not have arisen if some foresight and planning had accounted for the myriad of browser and operating system combinations that exist outside of a closed corporate environment. Sometimes, because of time and budget constraints, I’ll find myself falling into the trap of throwing something together quickly without allotting for testing on multiple browser and OS configurations but, like Jiminy Cricket, the implications of such hasty development often slows me to the point where I can take a more objective view of my current approach and its possible shortcomings. Being human, we’re all bound to make mistakes but that is no excuse for consciously scorning users, their operating system, browser, or personal taste and preferences.
Coding for an environment like the Web invariably drives me to seek the most compatible and accessible solution available. Yet there are those who still cling to the (shortsighted) belief that all systems and environments should be the same. When working on any Web-related project, such an approach ultimately dooms both the creator, support team, and users to either simple frustration or (at worst) a more serious and damaging outcome. Personally, I’ve seen numerous instances of developers coding only for their local environment and personal preferences, leading to numerous incompatibility issues. Sometimes these issues can be handled by simple fixes, updates, or (frustrated) support staff but there are times when serious animosity arises, leading to a nasty conclusion: users find another way to accomplish their goals and, if the system is revenue-generating, another place to spend their money.
Does this monoculture mentality stem from an inability to understand the differences of others? Certainly there are some who lack the ability to put themselves in the shoes of the user; developers who, having found their comfort zone, have lost the capacity to empathize with others who may not work and think like they do.
Certainly such a condemnation can’t apply to all developers and there are plenty of groups and individuals who are making it their mission to bring technology to the masses regardless of personal preferences or medium (and for many, their preferences and medium are dictated by disabilities beyond their control). But, for most users, I would guess that their comfort zone is a strong dictator of what and how they interact with anything computer-related and restricting them, based on your comfort zone, is a sure-fire set up for some disaster. Maybe it will be something small and you can release a patch or fix, but then you’re assuming your audience will actually get that fix. In a closed corporate environment, changes can be rolled out and applied company-wide whereas on the Internet, once you’ve left a bitter taste in a users mouth, the chances of them returning disappear and, if the problem egregious enough, so could your employer.
In a corporate environment developers have some freedom to relax and enjoy the fixed variables of an environment that is either under their control or relatively stable but, for any Web application, such a luxury is not only shortsighted but close-minded. If your system or application cannot be supported by the user’s abilities or their OS environment then you’re removing them from their comfort zone. You’re pushing them to find workarounds or quick-fixes which, while a solution, are bound to lead to user frustration. If you’re lucky they’ll overlook these shortcomings and learn to live with a few quirks. If you’re unlucky, you’ve lost a customer and an influencer — dissatisfied and fed-up, it won’t be long before your reputation slips and takes earnings with it.