13 July 2015

The Problem With House X

X is typically some kind of technology.  Maybe it is an operating system.  It is commonly an office suite.  In graphics, it is probably an image editor or a suite of image manipulation tools.  In businesses with any kind of tech department, it is a programming language.  House X always seems like a good idea to the management who imposes it.  Sometimes it even seems like a good idea to the victims.  In the long run though, it tends to cost the company more money, reduce job satisfaction, and reduce productivity.  House X, whether anyone ever realizes it, frequently costs far more than it saves.

Probably the two most common house Xs are operating systems and office suites.  The operating system is usually Windows, except in the graphics industry, where it is Mac OS X.  The office suite is almost always MS Office, though Word Perfect has some market share as well.  The excuse for picking a house X is that it will avoid compatibility problems if everyone uses the same thing.  If everyone uses Windows, tech support will be easier.  If everyone uses MS Office, there is no file format drama.  These are good reasons for supporting a house X, but without looking at the costs, an informed decision cannot be made.  If a business forces all of their workers to use Windows, a good portion of employees will loose some productivity.  There is no perfect user interface, and different employees will have an easier time with different ones.  Some might be more familiar with one or the other.  Some might have an easier time with resources in one place than another.  Forcing everyone to use a house OS is bad, because it limits productivity of those who are less experienced and less comfortable in that environment.  For office suites, cost is a major factor.  Forcing everyone to use MS Office is going lock the company in.  The regular upgrades necessary to keep up are extremely expensive.  The software is so complex that expensive training will be necessary with each upgrade.  The user interface stuff applies as well.  The company could save tons of money encouraging employees to use simpler and less expensive software.  The file format problem is easily solved by either requiring a specific file format or by requiring document submissions to be in PDF format.  This is much better than limiting employees to something that is going to have very high long term costs, and it is much better than limiting employees to something that many will have a hard time using.

The worst house X is not OS or office suite.  The worse house X is programming language.  The reason is that different programming languages have different strengths and weaknesses.  There is no general purpose programming language.  Low level languages can do anything, but they tend to take longer to develop in.  High level languages tend to be designed for specific purposes, and for those purposes they are much faster to develop in.  For other purposes though, they are often much slower to develop in, and they are also often harder to debug when used for other purposes.  Programming languages are like tools.  A programmer that knows many languages has a lot of tools in the box.  A programmer that knows few is much more limited.  The problem comes when a CTO that knows few or no languages decides that the company would be better off if it did everything in one language.  It turns out that most CTOs have only heard of one programming language, and they think it is the perfect language for everything.  That language is Java, a language made for networking household appliances.

Java's one benefit is that it will run on most platforms (which would matter more if the company did not already have a house OS).  There is really nothing that Java can do that there is not another language that can do better.  When a company selects a house programming language, it is like discarding all of the tools in box except for the duct tape.  Duct tape is extremely versatile.  It can do nearly anything.  In a pinch, it is awesome.  You also don't use it when you have another tool that is better.  Duct tape can do almost anything, but there is nothing it can do that something else cannot do better.  It is an excellent emergency solution, but nothing more.  Java is like duct tape in this way.  It can do almost anything, but it cannot do anything especially well.  Imagine a carpentry company that takes away all of the tools and leaves the carpenters with only a hammer and nails.  Maybe they could carve nice wood work with those tools, but it would take forever, and it would not be as nice as it would have been with a set of chisels.

In general, house X is a bad idea.  Sometimes it is necessary, and maybe the benefits outweigh the costs.  Most of the time, it is a "good idea" coming from someone who is not qualified to make the call.  When solutions are chosen dynamically by those qualified to choose, the right tool for the job is far more likely to be used.  When an unqualified CEO or CTO chooses a house X, it prevents those more qualified from using the right tools, which results in major costs to the company that are totally unnecessary. 

What it comes down to is: If you think you are educated enough to make the call, then why do you need that IT department in the first place?  If you are going to hire people with focused education in other areas than your own, trust that they are more qualified to make decisions in that domain than you are.  If you don't, you are going to end up with a bunch of Java programmers that don't have any other tools or education outside of Java, and that is going to result in crummy software that takes too long to write, because no one competent wants to work for you.

No comments:

Post a Comment