Tuesday, October 7, 2008

Computing Subversive's Bill Of Rights


Have you ever been told by an employer or academic institution that you MUST only use a specific hardware, operating system, or software solution? The reasons given are manifold and sometimes even appear rational and reasonable. Justifications that I have heard are: "We only want to support one system." "It is not allowed to use unsupported systems." "We cannot pay for support for any other system." "We don't know how to administer and support that system." "We don't know how secure the operating system that you want to use is." "There is no vendor contract or support for that software." "It might be spyware/malware/freeware/open-source." "It must be approved first." "We have an exclusive contract with a company that only provides their craptastic solution and the contract doesn't allow us to use other systems."

Even though the people carrying out the policy decisions of your company have every reason to suspect that your unsupported solution may be more secure, robust, or proficient than what they are using, they don't defend you. They only care that their costs 'appear' low or that there is an appearance that things are 'secure'. They want to legally protect themselves from you and the threat you pose by being a user of computing resources. You don't pass go. You don't collect $200. You are stuck with the shit you are given or you have to go through a painstaking process of proving one exception at a time that you have adequately prostrated yourself in the eyes of the policy managers. Then you might be able to use your unsupported system.

I am one of these subversives. I am a delinquent in the eyes of the policy mandate-ers with their cheeky pocketbooks, corn-fed contractors, and indignant securitizing homogeneity enforcers. I have been successful at using my choice of hardware, software, and operating system. I am able to do this because I am tenacious and because I demand that the computer systems that I use be flawless to the tasks that I have at hand. I am extremely proficient at my job and my use of computing systems. I outright refuse to accept any force-fed least-common-denominator solution.

My company has numerous policies setup to stop me. They want me to use any Microsoft supported version of Microsoft Windows and I have to always, always spend extra time justifying why each hardware purchase is not using the cheapest available solution. I abandoned the Microsoft Windows playground during my sophomore year as an EE student shortly after discovering the unnerving stupidity of Microsoft's basic design principles. I then immersed myself in world of Linux distros and command shell environments. I started my first post-graduate job expecting to use the most customized, specialized, and secure computer systems on the planet. And...I then quickly discovered that I was expected to throw away all of my hard-boiled Unix experience and to use a child's toy.

Ok. So you get that I am bitter. I get more bitter every time I am expected to justify myself. This happens every few months. Some new policy is born that has more or less ambiguous language that says I must not use what I am using. It will be taken away unless I can justify its use. Further, that I am not allowed to justify its use using an argument of personal preference or efficiency. And it doesn't matter that nothing has changed on my end. That the same justifications apply. I jump through the paper hoops of fire and navigate the gauntlet. I didn't choose to play a game of "hot lava" today, but am hop-skipping over imaginary flames nonetheless.  I can never guarantee that my efforts will be successful. I could end up with barbecued feet and an empty tool bag full of Fisher Price toys and a Dilbert etch-a-sketch to replace my sophisticated arsenal of computing tools.

I think that the problem is, however, far deeper than my unrest and unease. The problem is one of a large institution making a definitive choice of a specific implementation of a computer system, when, by definition each of these Turing machines is fully capable of emulating the others. The difference being in user familiarity, in implementation and user interface details, in their level of proprietary or open design, in their methods for product testing and making guarantees. Sure, I understand that an organization has needs, and when it needs one, an organization should acquire a large petaflop computing system and use it for boiling eggs or performing network and computing security tasks. But in respect to 'personal' computing, an organization doesn't use these, individuals use personal computers. I use personal computers. I might access mainframes, but my daily tasks are done right here in Sunnyland. And in Sunnyland I need a computing system built to the oddities of my brain, my experiences, and my tasks.

Even if the organizational organism itself uses a personal computer, it shouldn't ever specify one for you. Clearly you will use a personal computer in a very different way than an organization organism. You have hands! It would be slightly better if it were your office-mate or next door neighbor telling you what software you should run or what type of computer you have to buy. But even this is complete nonsense. Just because you sit in the same cubicle or live on the same street gives someone no insight into your cognitive abilities and peculiarities. If I've got a different driving style than you and am most efficient using a 6-speed manual transmission, I should damn well be able to..no..I should have the right to choose a the manual over any automatic.

So, you are reading this and being a business owner, or policy enforcer, you think that I am out of my fucking mind. If you let your employees drive whatever computing vehicle they wanted, you would not be able to afford the cost! You wouldn't be able to guarantee computer security! So, yeah, I'm not talking about cost. If you want to put a restriction on how much I am allowed to spend, do it, but if I am a expert and expect the best tools I will either quit my job or purchase them for myself. If I am expected to perform at my peak performance within the bounds of a budget I must still be able to choose the computing environment that fits my specific needs. And if you are smart you won't use cost limiting as a method to get me to use a pre-chosen solution. Clearly, if you are doing this, you've missed the point.

And as for the 'security' arguments...If you are only doing security on the host level...you've lost. If you want secure personal computers, the only way to do this is to educate your population! You don't tell your scientists that they can't use a hammer because they might smash their fingers! Just teach them how to hit the nails without damaging themselves, their tools, or their colleagues. So you don't have that type of security expertise in house? Pay for external security firms to educate them for you. You'll will be better off doing this instead of trying to keep up with the incredibly fast-paced world of software.

The proposal that I am taking my sweet time in getting to is this: A Bill Of Rights guaranteeing an individual free choice of human-machine interface. Give the individual the inalienable right to choose for themselves the type(s) of computing environment(s) that work best for their tasks. I am sure that this is the right approach. Our organizations, if they are mandating a specific environment, do not have your best interests at heart. Your health and cognitive proficiencies are being used against you. They are wasting you. They are throwing away tens of thousands of your precious life hours in order to fulfill some pre-ordained requirement created by financiers of big-business or big-government. I do not have the time to have my life wasted so blithely. I should have the right to work as proficiently and efficiently as I know how. The real screwed up part of this is, we are currently the minority. Most computer users don't care about computing environments because they don't know enough about their computing environments to give a damn. So when a bunch of don't cares are thrown on a balance scale against individuals organization make up any damn thing they choose and throw away their most proficient computing resources. Us!

I don't expect such a computing subversive's bill of rights to be mandated for all companies, except in the particular case when that company is the U.S. Government. As a taxpayers and employees we must repair this problem or risk everything by steeping our best and brightest in the mud of mediocrity. Just think this: if you were an Olympic runner, would you be able to perform if forced to run in flip-flops? Just remember, in respect to human-machine-interface, your flip-flops may just be my rocket-boots.

Some related examples of writing on computing consumer rights. Note that all of these are concerned with consumer rights in respect to product quality. These are necessary protections but I believe are related to basic product guarantees rather than providing users with the ability to choose HMI specifics.

I believe that for any of these usability and accessibility guidelines to make a difference, first and foremost, a user of a computing system must be able to choose an optimal solution for their individual characteristics.