Archive for July, 2008

“It’s possible I saw it on TV…”


 The Star Trek problem.  Just hearing that means frustration is in my future.  It’s a term that gets kicked around in some tech circles.  On more than a few occasions a client requests software do something impossible.  When you ask where they saw a system do what they want and they reply they heard about it on TV, it scares me..

   Dear reader when in a position like this my first impulse is to cut the client off and have nothing to do with that particular project.  Before you even begin negotiations or dialogue about the project, you know the position of the client is outside the bounds of logic or physics.  TV is typically not a tool for education but for entertainment.  When you entertain it’s ok to ‘bend’ the truth for the sake of the story but it’s bad when someone takes that for reality.  It’s hard to tell a client educated by science fiction that no we do not have fully interactive AI or a holodeck for training or phasers or almost any of the advanced technology you’ve seen in Star Trek.  Believe me I wish we did, I’d be the first in line for it.  The problem is compounded by movies and other media, where they can fake it because in depth computer knowledge is still in the hands of a relative few.  They don’t do it with any well known things such as having 4 outs in baseball game.   Google “movie physics” and you’ll see how movies ‘bend’ the truth.  My favorite article on the issue is http://www.cracked.com/article_15229_5-things-hollywood-thinks-computers-can-do.html

   On some level I understand that technology develops so fast these days that it seems there’s a new techno miracle everyday.  But there are actual limits that must be acknowledged.  When a client is unable to see these boundaries, no matter how much you tell them otherwise, then they are dealing in the realm of fiction. This means there’s no hope of having a good working relationship. 

Anything you do in the real world will fall short of their fantasies.

 

  If you get anything from the Star Trek problem, it would be:  Know what’s possible before you make plans for what you want to be built for you.  At the very least the client should know that a professional probably knows what’s possible better than they do.

Wednesday, July 30th, 2008

Not so simple


   Most programmers have had the experience of having a client, be it their manager or paying customer, ask for a change outside of what they originally designed before the system development started.  Of course it is often thought of as a “simple” change.  It usually starts at a demonstration or meeting with a phrase like,

    “Can’t you make it do this thing I just thought of?”

this is like asking a builder to add another bedroom after the walls are framed out.  Not always simple and in no way cheap.  Sometimes it is and sometimes not. 

   From my own experience I’ve seen both.  At a demo for a large project the lead of the largest team was presenting as he knew the system best.  At various points in the demo he was asked to add or change a feature.  He deferred all the requests to the lead of the area concerned. The problem was that not all changes are created equal.   The situation rises where the guy next to you has been asked to move a button and they say

    “No problem”

but you get asked to ADD a button that will mean new modules and algorithms must be written to perform some feat which may mean an additional 40 hours of work.  When you say that it will require a week’s effort you look like you’re dragging your feet.  I was not asked to change any of my software but I saw this happen to one friend of mine.  The request came from a supervisor who insisted it shouldn’t take that long.  This is the Weak Interface in action.  The knowledgeable programmer has been asked for something and responded with his honest assessment, while the supervisor, who has never been a programmer, makes assumptions that he thinks should override the opinion of a professional. 

   You can imagine how it ended but if you need closure let’s just say it was not resolved without casualties.

 

My advice for supervisors: listen to the guy you hired to do the job.  If you don’t trust him why is he on your payroll?

My advice for programmers: hope you never get into this situation or get on a new project with supervisors who know enough to trust your opinion.

Monday, July 14th, 2008

Just so you know the computer can lie if you make it.


   I’ve worked with a mix of people.  Varying levels of the weak interface.  I work with a guy who has built 3 national computer networks and been involved with computers since the 80s, another who was an old IBM mainframe computer programmer and knows the industry better than I, he was in computers before most knew what they were.  Both of whom have earned my respect with their knowledge and willingness to defer to mine when they don’t know something.  At the same time I’ve worked with a few business types who don’t know much but unfortunately think they do. More infuriating is that they  don’t realize the limits of their knowledge or when to shut up so they could at least hide their gross ignorance.  This post is  about the business type and our dealings.  First you should know that after years of frustration I went ahead and got my MBA so I could speak their language but I have yet to meet a single one who’s done the same in reverse.

 

   The affair started when I was explaining why in certain accounting the precision is carried out to the ten-thousands place as, x.xxxx , the business guy said it made no sense and was cumbersome.  I explained to him the old trick of ’salami slicing’(http://en.wikipedia.org/wiki/Salami_slicing#Film_.26_television)  as a way to steal fractions of cents from a company.  His answer was that he’d just track all transactions into or out of an account.  I then had the horrible task of explaining to him how the computer can be made to lie.  For example, stealth viruses pull some tricks to make the computer lie to users.  The website Computer Knowledge describes this better than I do

“A stealth virus hides the modifications it makes. It does this by taking over the system functions which read files or system sectors and, when some other program requests information from portions of the disk the virus has changed, the virus reports back the correct (unchanged) information instead of what’s really there (the virus).”

 - http://www.cknow.com/vtutor/StealthVirusesandRootkits.html)

 

   Another way to say it is when you try to track something by a system report to you, that report can be doctored and the information changed before you even see it.  You won’t know it and if you trust the machine you are open to all sorts of fraud.  It would only take  a person able to manipulate the system the right way.  This problem always exists when a person uses a technology without understanding it.  Any time I get my car fixed I know the mechanic can lie to me because I only know a little about cars and can’t detect a well crafted lie.  So I ask my car savvy friend to let me know the truth.  Unfortunately the tech ignorant tend not to ask the computer savvy and/or don’t listen when they speak. 

 

   Another example of this is in many different tech demos I’ve seen.  There’s an easy trick you can pull if the demo of a system is for the non-savvy.  Instead of actually having a working system you can just have screen shots of what’s supposed to happen all displayed in different windows. Then when you fake a ‘click’ on some item you can quickly switch to the right screen shot as if the system actually worked that way.  This is like having very convincing cardboard cut outs of cars and putting those on the showroom floor as if the cars were there.  I am amazed at how well it works.  Many of the systems I’ve seen promoted but never working have been paid for on the strength of a false demo.  This has cost the government, and by extension tax payers, millions.

 

So please listen when I say:

If you are going to do anything with software - Be careful, Be paranoid and get a guy you trust who knows something to evaluate all software for you because computers can be made to lie…

Thursday, July 10th, 2008

A different sort of tech blog…

   This is a different sort of technology blog.  It’s more about the people using computers and technology, the difference between the knowledgeable and the unaware.  It’s the difference between growing up with the technology and learning about it.  To drawn an analogy it’s the difference between the native speaker of a language and someone who learns it, even full immersion won’t give you an appreciation for it the way someone born to it.  Now in this case imagine being raised in an English speaking country but being given instruction on how to speak by an aborigine who learned it a few years ago. 

   Basically this is the dilemma young engineers, programmers and computer scientists find themselves in, they understand computers and associated technology better than their bosses or the older decision makers who control their fates.  This is the source of pain, anger, and frustration.  Google solves this issue by having very young folks at the top.  I remember Dianne Sawyer commenting that, “…and yes they’re all that young…” when she had a Google exec on screen.  Another friend of mine is in the search engine optimization business tells me if you’re over 35 (as of this writing in 2008) you typically don’t get respect and will have trouble finding a job in that area. 

   I’m an engineer and I’ve suffered because of this problem I call the “Weak Interface”.  It’s the difference in understanding between the computer savvy and those who are only users for the most part.  This blog will draw from the real life experiences of tech workers and industry types.  I invite anyone with a story to tell to join the blog and comment and/or add their own.  These stories will never end as there will always be the tech savvy will always have to work with others, somewhere there’ll always be programmer who has to answer to a supervisor with an MBA and no computer understanding, somewhere there will always be a Weak Interface… 

This blog is written for anyone looking to improve the interface or at least hear/tell a few interesting stories about it.

Enjoy and please comment

Sunday, July 6th, 2008