Home
Investment Coaching
Investment Coaching
Books
Staff Resumes
Contact Info
In Memory Of Betty
Blog
Blog Protocol
The Flexibility Mantra
Thingie.doSomething
Stupid Computers
Welcome To Jar Hell
Roman Architecture
The Layered Look
Site Map
 

Why Computers Are Still So Stupid

 

2008/03/18 - Arthur C. Clarke died today.  Remember the HAL-9000 in the movie (or the book) "2001: A Space Odyssey"?  Well, gee, that was 2001, and it's now 2008, and I still can't carry on an intelligent conversation with my computer. Here is why I believe that is so:

 

According to Alan Cooper, the father of Visual Basic at Microsoft, the "inmates" (the techno-geeks) are running the "asylum" (the computer software and hardware industry). Allow me to explain:

 

A saying often attributed to Einstein says that: "Everything should be made as simple as possible, but not simpler."

 

A software manager, when faced with the frequent programmer's lament: "This is taking a long time to code because it is complicated." should first ask some penetrating questions, questions that may even cause some embarrassment. The essential queston is this: "Why does the system you are programming NEED to be so complicated?"

 

Most systems on which I have worked are needlessly complicated.  As an analogy, they look like the inside of the house in Dr. Suess's book "The Cat In The Hat".

 

The complexity is sometimes there for political reasons, i.e. to satisfy a certain higher-up's ego (maybe it was "her baby" and maybe her technical programming skills weren't so hot back when she coded it herself).  Other times the complexity exists due to the "band-aid" patch effect of many supposedly "inexpensive" quick-fixes to the system throughout its long life.  Other times, the complexity has been intentionally designed and/or written in, for the "job security" of the in-house programmers or the so-called software "consultants"....ummm, like me :-) 

 

The manager needs to be aware that, once the essential question is on the table,  she will often get vague, tangential half-truth answers stated with much emotion, and full of acronyms and "geek-speak". Invariably, the emotion and techno-babble level increases inversely with the manager's own technical savvy.  The goal of all this techno-bullying is simple: to get the manager to shut up by making her feel stupid.  It is important that the manager stop asking the important question, because ultimately someone's reputation, if not their job, is about to be also laid on the table, and the techno-geeks have already followed the question to that logical conclusion, and really don't want to go there.

 

There is clearly an attitude fostered by impatient, insecure, selfish programmer-types, that if a person does not understand the particular acronyms and geek-speak being used in the current meeting, then that person is not as intelligent as those who do understand it.  I can assure you that nothing could be further from the truth.  For a great treatise on this techno-bullying, see Alan Cooper's great book: "The Inmates Are Running the Asylum".

 

Back when it was first envisioned, a key point of object-oriented design and programming was to make the design intuitively obvious, even to non-programmers.  If the manager is non-technical but is an intelligent and patient listener, and asks the programmer to walk her through the design of the system EVEN AT THE CODE LEVEL...the programmer should be able to do so, reasonably well.  If the programmer cannot, then either (a) the manager is not all that intelligent in the first place, or (b) the programmer is not or (c) the design is not. 

 

In my 25 years of software experience, (c) is almost invariably the case.  Unintelligent managers and programmers simply do not survive long, but unintelligent (poorly designed) systems,  survive for years and years, precisely BECAUSE they are maintained by intelligent programmer backed by intelligent managers...neither of whom speak the same "language" anymore.

 

But once you finally get beneath all the "language", down to the essential core concepts, most of the REALLY good stuff in computer software programming is common sense, meaning I could explain it to any intelligent person and, once they understood it, would say, "But that's so simple! I could have thought of that".

 

 

 

 

 

 


 

Copyright 2007© East Ridge Software, LLC. All rights reserved.