December 18, 2011
I have written a few articles about certain rules, such as How Not to Get Ahead and Three Simple Rules to Get Ahead, so now, to continue the tradition of offering rules of life, I now give you, Three Rules of IT That Should Never Be Broken!

In this thrilling episode, I will regale you with brilliant insights of why these rules should never be broken. It will be a thrill-a- minute exposť into why IT products and services are so screwed up and why, despite spending untold billions of dollars each year, businesses are getting less and less for their money because of these rules being broken.

Rule Number One: Never let a programmer design your application

What I mean by this rule is not that you don't let a programmer do the actual programming of an application, rather, you don't let them decide what to program. You give them clear, precise instructions on what you need done. You must not leave wiggle room for the programmer to interpret what you mean. Do not allow them to do "shiny" for the sake of "shiny" for if you do, an application will have every conceivable bell and whistle but will be nearly unusable from a user perspective.

Letting a programmer design your application will result in convoluted install procedures, horrible interfaces, games with blatant cheating for the AI, software which does not do what you tell it to do and so on. A few examples to clarify this rule are in order.

Windows 7. I realize there are those of you shouting, "What the hell are you talking about?", but bear with me. It shall all become clear in a few moments.

If you use Remote Desktop in Windows 7 (or any version of Windows) and you want to restart the machine, you cannot, as you would if you were directly logged on to the machine, click the Start icon and select Restart. The ONLY option you have is Log Off. So how does one restart the machine if the option isn't available? By using the blindingly obvious option of Alt-F4! After all, why have the option to restart in the same area it always is when you can hide that option in an obscure set of key commands.

Quite clearly a programmer had to have thought of this leap of logic because no one who had any clue about usability would force someone to move their hands to a different location to perform an operation.

Another example from the Windows 7 nightmare would be the default location of My Documents. From XP backwards, there were four steps one needed to do to change this location: right-click on My Documents, select Properties, change the location path, click OK. Four steps and the location is changed. Simple and neat.

Now, however, to perform the same function in Windows 7, one cannot do these steps to get the same result. Instead, one must go to Start (after all, you're starting the process of changing the location), double-click on the person's name, right-click on the My Documents directory you see there, then select Properties, then change the location, then select OK. Six steps. A fifty percent increase in the amount of work one has to do to make a simple change.

If you don't like that way of changing your default file location, try this method: In Windows Explorer, click on Computer in the lefthand pane. Then expand C: (or whatever your primary partition is called). Click on Users, then click on your User account. Right-click on THAT Documents folder, select the Locations tab, change the location then click OK. Eight steps. A doubling of the amount of work.

No one who had any idea of what they were doing would deliberately force a user to do more work to get the same result, yet, here we are.

Finally, one of the greatest failures of the programmers of Windows 7 is the relocation of the Show Windows Desktop button. In the past, the button was clearly marked and sat next to the Start button. You could see it, identify it and use it quickly.

Now, for reasons known only to programmers, it is located at the furthest point on the screen, at the end of the taskbar, and unmarked. That's right, they've "hidden" the Show Desktop icon by making it an unmarked bar next to the clock. Brilliant, simply brilliant! After all, it's common knowledge that an unmarked bar, at the end of the screen, is exactly what one would look for if they were trying to easily minimize every window.

Other examples from the redesign of Windows would be the removal of the 'Classic' look from both Windows 7 and Windows Server 2008 R2 (with no way to get the clean, simple, look and feel back), the constant reshuffling of items when viewed in Explorer or Control Panel, and the overall effort to hide everything from the user. And since when did an OS become a search engine? Why should I have to search for something when I know where it's at? What if I don't know the name of what I want? Only a programmer would think that searching for something is easier than going directly to the source.

Lest you think I'm picking on Windows 7 and/or Microsoft (they are easy targets after all), those of you in the OSS (Open Source Software) world aren't immune from this rule. As a whole, Linux is a clear example of what happens when you let programmers design your applications. The hoops one has to jump through to do simple things can be, and at times is, staggering. Let's put it this way: if you have to resort to changing options in a configuration file which is buried in your system, that's something only a programmer would consider good practice.

A recent example of why programmers should not be allowed to design your application is the Natty Narwhal version of the Ubuntu flavor of Linux. Apparently someone got the brilliant idea to inclue a Launcher, similar to the Dock that Apple uses. This would be all well and fine except for the fact that you can't move the dock because it's bolted in place. From everything that has been written about this latest Ubuntu release, what is supposed to be a helpful, one stop location to launch applications, is permanently stuck on the left side of your desktop, never to be moved because the programmers made the decision for you.

But it auto-hides I hear people saying. Um, yeah. Just what I want, an application which opens and closes every time my mouse gets near it. Did I mention that if you have your browser open and want to click the back button, guess what gets in the way? Yeah, brilliant programming programmers.

As if not being able to move this "helper" wasn't enough, there is the issue of what in Windows is called the Start menu. Up until Windows 7, when you clicked on Start then Programs, you could see every program installed on your system. In Windows 7 this simple, easy to understand process was changed to a more convoluted search process or a long, scrolling list of everything which one could not see in one shot.

Apparently someone at Canonical, the folks who make Ubuntu, thought, "How can we make our software, which is already completely different from what most people use, more torturous and difficult to use?". Well, they found a way. Like Windows 7, there is no easy way to see everything installed on your system. Instead, there is a series of shortcuts and options one has to navigate to get to what you want. If what you want isn't listed in the Most Frequently Used area, you again have to hunt and click to find what you want.

Sure, you can switch the layout to a more traditional, show everything, interface, but even that involves a few extra steps to find. Wouldn't it have been easier to let people see everything at once, as the default setting, rather than make them jump through hoops? It would have made more sense. Oh, that's right, we're talking about programmers.

One area of the Narwhal release that should go in the "Never let a programmer design your application" Hall of Fame is the inability to backtrack when using Dash. Unlike in Windows, where you can get to a different location if you go to the wrong area, you cannot, under ANY circumstance, do so using Dash. The only foolproof way to get back to the beginning, for example, is to completely close Dash and start all over. If you select the wrong group, again, you have to start all over from the beginning.

Finally, one item that is indispenable but which is not included in Narwhal is the ability to get to your desktop in one click. For whatever brain-adled reason, the programmers of Ubuntu removed the Show Desktop icon from this release. The only way to minimize all your open applications in one fell swoop is to remove your hand from the mouse and use a keyboard shortcut. As everyone knows, having to move your hand from the mouse to press a key is much faster than clicking an icon. Nothing else need be said about this "feature".

Still another example from the OSS folks is Firefox. I like Firefox. I even used to recommend Firefox. It was the browser which beat Microsoft at its own game. A clean, simple-to-use web browser which adhered fairly closely to web standards and, thanks to others, allowed for the addtion of such masterful add-ons as AdBlock Plus, NoScript and FlashBlock.

Alas, the scourge of programmers being allowed to design applications has reared its ugly head here as well. In the past, when one wanted to update the browser, you were told what your current version is and what the next version was. You then had the option of deciding whether to upgrade to that new version of not. That is no longer the case.

First, the programmers removed the selection to manually upgrade from the place it had been for years. Now, the only way to manually upgrade is to view what version you are on now under the Help > About Firefox section. There is where you now find the option to manually upgrade.

Second, if you do decide to upgrade, you are given no choice as to whether to install the newest version or not. It just does it. This might mean you were on version 6 of Firefox and got upgraded to version 8, not version 6.1 as had been done since the inception of Firefox, formerly Phoenix, and as is standard practice for every other piece of software.

You might wonder, why wouldn't you want to upgrade to the newest version? There may be a case where the newest version of the browser has a conflict or breaks something that you use. Maybe the layout is completely different and it is more difficult to find the options you want. There are a whole host of reasons not to instantly upgrade to the newest version, but that ability, to decide whether to upgrade or not, has been taken away from you.

Obviously, free software will have bugs. What software doesn't? Bugs are different than bad design issues in that they are the result of programming faults. Values aren't being passed, the wrong values are being passed, the programming logic is faulty, etc.

However, when one comes across software which either has to be installed or uninstalled in a certain way, that is a design issue and the programmer is at fault. There is a well-known piece of GIS software, which, to get the best possible install process, must be installed under the user's profile rather than the normal process of installing it from an administrator profile. This means giving the user administrative rights (see Rule Three below) to perform the install then removing those rights when done. An unnecessary process if the programming hadn't designed the software so poorly.

There is a piece of software I have come across which cannot be uninstalled from an adminstrator account. An administrator should always have the ability to add, remove or change any iece of software in a system. Not with this software. To remove the software one has to log on to the PC using what is essentially a super-administrator account to remove it. Again, a completely unnecessary process thanks to poor design by the programmers.

As for games, I'm sure most of you have seen egregious examples of bad programming design in games. Opponents who have a seemingly inexhaustible supply of money/credit/energy/whatever without them having any industry/production/mining/whatever, who ALWAYS have better equipment than you do no matter how advanced you are, who NEVER get attacked by local lifeforms even if that lifeform is sitting next to both of you, or who can make their pieces magically appear on your doorstep when they weren't anywhere near you moments before.

These are just brief examples of this rule but it is easy to find examples in your every day life. The next time you install a piece of software and wonder why you weren't told you had to remove the previous version until after it's halfway done, thank a programmer because THEY designed it and knew you had to do the uninstall first, so why shouldn't you?

In a similar vein, the next rule of IT which should never be broken is . . .

Rule Number Two: Never let a web designer design your web page

Similar to a programmer, if you let a web designer design your web page, you will find your page looking as if it were designed by a committee which only used buzzwords. "Interactive". "Cutting edge". "Dynamic content". "User engagement". "Personalization". "User experience".

Did you notice that the word "usability" wasn't mentioned? That's what will happen if you let a web designer design your web page. It will be unusable due to all the gadgets and effects foisted upon you. There is one well known media site in particular which, if not for adblocking and not having Flash installed on my machine, would be nearly unusable due to all kinds of videos, pop-ups and such that assault the visitor.

Another site that I visit fairly regularly changed the way you log in and out of the site. In the past, there was a link which, when clicked, would open a log in screen. You typed in your name and password and you were in.

Now when you click the link, you are taken to a new page where you log in. Why? What was wrong with the previous way of keeping things on one page? Was there a reason you needed to take us to a new page?

To log out is even more disconcerting. In the past, to log out, you would click the Log Out link which was in the same place on the page that the Log In link was located. No more. Now you have to hover your mouse pointer over 'Your Area' and wait for a javascript generated screen to appear, THEN click the Log out link. WTH!!!???

Why make people jump through hoops just to log out of your site? Why make things more complicated than necessary? Why was having a clearly visible and easily accessible link no longer good enough?

Taking this example one step further, one of the utilities I use changed their login procedure. Rather than a simple text box to enter your username and password, when trying to enter the site you have to wait (and wait and wait) for an overlay screen to appear to enter your information. Again, why was it necessary to change what should be a simple procedure into one where shiny is more important than ease of use? It's a login page, not a demonstration of your 1337-ness.

There is a reason Google has been so successful (aside from generating better results). Their interface is simple. A search box and two buttons. If you're designing a search engine, what more do you need?

Compare that to a newcomer to the search engine field, Bing. Sure, it tries to mimic a simple interface, what with the search box front and center, but take a closer look. See that big picture in the background? Why is it there? What is its purpose?

If you move your mouse over various spots on the background, you will get a dialog box which explains what are you seeing. Neat, huh?

So why is that picture on a search engine? It serves no purpose other than to allow the web designer to do "shiny" for the sake of "shiny" (sound familiar?). It's distracting and has no relation to someone trying to find information. If you happen to be on a slow connection, a smartphone for example, you can forget about quickly finding what you need.

Using this example might sound like I'm nitpicking, but it serves as a simple example of why web designers should not be allowed to design web pages. A quote from someone who posted on a web site I visit sums up perfectly why you should never let a web designer design your web page:

You should let the content of your site drive its design, rather than shoehorning the content into whatever gizmos seem coolest.

It would be nice if more web designers would take this to heart. The number of web sites out there which are coded in nothing but Flash or use Flash to display a single picture is staggering. Aside from the fact that Flash has gigantic security holes and sucks resources like a camel drinking water, the use of Flash, because it's shiny, has grown to such an extent that, as I previously mentioned, some websites are rendered nearly impossible to use. With most ads1 being in Flash, a single picture being displayed in Flash, with endless Flash videos showing off smiling people on a bank web site, web designers keep finding new ways to annoy their visitors and/or render their site unusable. After all, how can you bookmark a web page if it's in Flash?

I have even seen a few job listing sites which now use Flash to display job listings. Huh? You're going through all the trouble of coding text information to be displayed in a picture format, and you did this because . . .? Oh right, it's shiny.

Rule Number Three: Never let a user be an administrator

This rule should be obvious, yet it still amazes me how often it is violated. The one thing I always tell people is you "Never, ever, ever, EVER give a regular user administrative rights on their machine. Ever."

The logic behind this rule is simple: people don't know what they're doing and given a rope, will find a way to hang themselves.

Being an administrator means you have complete control over your system. You can add, remove and change anything you want. You are the Lord of the Land. The judge, jury and executioner. You are the master of your domain. "By the power of Grayskull, I have the power!"2

With few exceptions, when there is a problem with a person's machine, the issue can be traced back to something the user did. They clicked on a dancing monkey to win a prize, clicked on a pop up message telling them to install something, or, as is usually the case, installed a piece of software that their friend "Bob" told them about but couldn't remember the exact name so they did a search and found something which sounded like what "Bob" told them.

As an example of why people should never be administrators, where I used to work, there were a group of people who been given laptops because they needed to be in the field to do their job. All were administrators of their laptops so they could add, remove or change anything they wanted. Day after day, the calls would come in from this group, usually the same subset of this group, with various issues. These problems would be resolved and then, the next month, would start all over again.

When these laptops were replaced, the decision was made to not let anyone be an administrator on their laptop. Miraculously, the amount of problems that this group reported dropped to almost nothing overnight. And by overnight, I mean literally, overnight. We didn't hear a peep from this group from the moment they got their new laptops and didn't have admin rights.

I can't tell you the number of times people have said to me, "If you let me be an administrator, you wouldn't have to help me out so often." Which of course is the exact oppostie of what would happen. If they were an administrator, I, and others, would be helping them constantly because, as I stated in the beginning, they don't know what they're doing.

It all looks so easy, just a few clicks here and there and everything works. There's a reason why it looks easy: I know what I'm doing. I don't install search bars, I don't allow auto-updating,3 or talkback services, and I turn off all unnecessary effects/options/whatever.

This rule applies equally to people within the IT industry as well. The two main culprits would be programmers and web designers (sound familiar?) but could encompass those in network security, networking and yes, even helpdesk as well. Just because someone works in the IT field does not mean they should be given administrative rights carte blanche.

If you think I'm kidding about this rule, I worked with someone in network security, the head of our security in fact, who had to have their laptop reimaged three, yes, three, times because they had so mangled their system, there was no other way to get it back to a usable state. And this was in a span of just over two years!

Now that you know what the rules are, how do you go about making sure there are as few violations as possible? For the first two rules, do not confuse them for micromanagement. Instead, when managing a software or web project, communication is the key to success. Be specific. As I said in the beginning, do not allow wiggle room for the programmer to interpret what you mean. The same thing applies to web designers. Tell them what you want in clear, concise language. Do not be vague. Give them examples of web sites they can use as reference to get a better understanding of what you want. If you don't know what you want, how can they?

If these two groups want to do shiny, let them do it on their own time OR, have a very specific project in mind that they can work on which allows them to show their shiny skills. Do not do shiny on your base products, the ones that the end users rely on to do their job. Remember the nightmares that were Microsoft Bob and Vista (and yes, Windows 7 as well as the forthcoming Windows 8)?

As to not letting users be administrators, unless you are absolutely, one hundred percent sure someone a) knows what they are doing when installing software and b) will not abuse this privilege, you do not, under any circumstance, let people be masters of their own machine. Yes, there are software packages one can use to restore a machine to a pristine state, but that is finding a technical solution to a human problem. Why not prevent the problem from occuring in the first place rather than trying to find a solution to correct the problem when it occurs?

If you doubt me on any of these three rules, take a good, hard look around at your location. How many pieces of software do you use that for all the bells and whistles, all the "helpful" hints the software provides, still frustrate and annoy you because you can't do what you want without having to constantly turn things off? How many pieces of software has your company gone through in an effort to do its work, only to find that to get what you want, you have to purchase the package with the most shiny, even though you will only use, on average, twenty percent of all the features?

As to web sites, how many do you use that seem to be designed to make you jump through as many hoops as possible just to do something? Want to order some supplies? Sure, not a problem. But first, watch this video of how great our servcies are. You want to sign in? Just find the link on our new, redesigned page where our links are now located in hidden locations.

The only way to stop the madness of shiny is to be brutal. I don't mean brutality against programmers or web designers (though that thought has crossed my mind a few times), but brutal from the management side. Project managers for sofware or web projects need to not only keep the overall project on track4, but be vigilant of feature creep or any attempt by programmers or web designers to make things shiny. Products for the enterprise level need to be lean, mean and efficient. One should not have to jump through hoops or hunt for ways to turn things off. Having windows fade in and out does nothing to increase corporate efficiency. It slows things down, is a drain on system resources and is a classic example of shiny for the sake of shiny.

Having overlays to sign in to a web page, the constant changing and rearranging of web pages so they look shiny, the use of a video platform to show individual pictures, all of these, and more, have become the bane of web users as not one of these allows someone to get to the information they need with the minimum amount of fuss. Based on the trend, it would appear that online retailers, and businesses in general, are doing everything in their power to drive people away and make it as difficult as possible for people to give these businesses their, well, business.

Finally, this notion that people should be allowed to do what they want on their work PC wastes untold billions of dollars each year in lost productivity from both the end user, who screwed up their machine in the first place and can't do their job, and from the IT department which now has to spend time to figure out what is wrong and correct the problem. The cost of training is also included in this figure as either the IT department, HR or some other group within your organization has to spend time teaching people how to correctly use their machine to avoid mangling it. This could include training classes or web-based training videos, or both. In either case, this is more time and money that is being used to fix a problem which could have been prevented by not giving people administrative rights on their machine.

Businesses use IT products and services to get things done. Any time you find yourself having to stop what you're doing to turn something off, hunt for where to go or wait for someone to fix a machine, ask yourself: how much is this delay costing me or my company? If you can't do what you want do easily, or can't find what you want easily, ask yourself: what moron thought shiny was better than functionality? If a machine goes down because your co-worker (or possibly you) installed something that they thought would be fun to try, ask yourself: how long is it going to take to gets back up and running?

Businesses need to demand more accountability from those who provide IT products and services. Shiny, for the sake of shiny, as I have repeatedly said, is not the way to go. Simple, easy-to-use, functional products are what should be demanded. You don't need TextWriter 10.5 just because the interface has rounded corners. Will rounded corners make typing the letter any easier?

Does having to sit through a video on a web page just to order something have anything to do with placing that order? Of course not, so why should you be forced to wait for the video to finish just to place your order?

How many problems have had to be fixed because someone installed every piece of software known to mankind on their machine, then complained when their system was slow?

Businesses need to follow these rules to the letter. There must be no compromising on their enforcement. The IT department in particular must be brutal (there's that word again) for any in-house projects. If it takes someone longer than ten minutes to have a basic, working knowledge of either your own software or something you purchased, it's too shiny. If people can't find the correct link or web page within three clicks, your web page is too shiny. If PCs keep going down because of system settings being changed or software installed, you need to find out why they had admin rights in the first place.

Ninety percent of all your IT problems can be prevented by following these rules. Ignore them at your own peril.

1If you use the Firefox add-on AdBlock Plus, ads are a thing of the past so this comment may not apply to all of you.

2For those who are either too young or too old to know what this phrase means, it comes from a mid-80s cartoon called He-Man. Do a search to learn more.

3Auto-updating, wherein an application is allowed to constantly check for newer versions, is one of those areas which should disallowed by default. Sure, it sounds nice, let the application see if there is a newer version rather than forcing the user to check, but this is fraught with danger. I always use the following example of why one should never auto-update.

Around 2002-2003, an update went out from Microsoft which killed ones ability to get on a network. This applied both at home and on the enterprise level. The solution? According to Microsoft, all you had to do was go to their site, download the corrected patch and install it to restore connectivity.

Which poses an interesting dilema: if the ability to get on a network, including online at home, was killed, how are you supposed to get the corrected patch?

That is why auto-updating should never be used. You never know what a patch will do, despite the testing involved. It is much better to wait a week to see if problems exist before doing updates.

4For the record, recent studies have shown that at least sixty-eight percent of all IT projects fail. Which raises the question: what the hell are all these, supposedly, experienced project managers doing? Or not doing as the case may be?