micro isv, misv,isv

We Don’t Own Their Bloody Computer!

10 08 2008

If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!

Shockingly most of us developers would probably agree with the above sentiment.  In fact it’s logical, fair and rational is it not?

We’re logical, fair and rationally educated are we not?

The reality though is quite different.

We’re an arrogant bunch of SOB’s who treat “users” and their machines with contempt by and large

OK, your’ re shaking your head “no”.

Maybe you are an exception - but then how much self analysis have you applied to your own attitude? 

As much as you apply to your code?

You can see some evidence of this in how we define people who purchase software from us.  We call them “users”

Now, your local supermarket, Mom and Pop (or Mum and Dad if your in a place other than the US) store or even your bank don’t refer to you or others who patronize their establishments (buy things) as “users”.   They have a socially acceptable noun for such people.  Prepare for a shock as they call them:

“Customers…”

Yewwwwwww!   How much can a koala bare?  Referring to stupid “users” as “customers”?

supidisastuiddoes

Stupidity in others is defined in this industry by a group of people who spend their whole life manipulating abstract objects using processes that the average human being neither needs to know about nor ever should care about it. 

It does not make them stupid nor does it make them “users”.  They are customers.  Try a paradigm shift, why not call them what they actually are?

Alright, this ties in with the opening premise because how we treat (I’m not going to refer to them as “users” from here onward in this post) our customers is demonstrated perfectly with our willingness to violate the machinery they own with whatever funky routine we think up.

Look at the Windows Tray.  The number of programs that install unnecessary icons to access them on the tray is phenomenal.  No choice, no if but, wham and it’s on the tray, executes at Windows startup and the dev doesn’t give a flying fig.

The dev and his software is more important than the user? 

Couldn’t you ask first if it’s OK and let them choose?

This arrogance is displayed by Windows dev’s large and small.  From the biggest of the big to the smallest mISV and even freeware!

It’s a major PITA.  People have their machines working the way they want them to work - and you and your program do not count!

Sure a lot of folks don’t appreciate the impact of multiple applications installing and running at startup and the impact of running processes one doesn’t need.  But those who do now despise you - with complete justification. 

In fact - it makes you stupider than the people you contemptuously categorize as stupid!

Stealth Installs

Microsoft have always been good at this one, though they’ve toned it down in recent years.  But it’s the standard offering of the malware and spyware developers.  I’m referring to slipping in something unexpected in an installer or even a program update.

One of the beautiful things on the Mac is that this kind of shenanigans is relatively unknown (and that’s coming from a Windows dev).

So why the hell are Apple slipping stealth installs of Safari onto Windows systems that have iTunes installed?  They’re still doing it too.  I like and use Safari at times on one of my Windows boxes.  But one of the boxes I administer did not have it installed.  A stealth install went through this weekend.  Sat.  9th August 2008 with an iTunes update.

Apple - I have a lot of respect for what you guys do - but this is every bit as contemptible as some wannabe wanker  installing Gator onto my system.  The “customer” has the right to choose - even if it is “free”.

Temporary files.

They’ve always been a messy problem.  In fact on Windows machines we should rename the directory and the contents to “permanently forgotten about files”.  Made worse that some genius at Redmond put them all into a hidden directory now so average folks never see this elephants graveyard.

Basically a program creates a file in the Temporary directory (folder) that Windows “maintains”.  They should be deleted when the program is finished with them.  But no what we get instead is lazy disinterested programmers leaving them there to accumulate until there are thousands of them (or the system runs out of virtual memory).

Some of these nit-wits even create these files so that no two are ever the same name for the same program and same function.  Taking a bad problem and multiplying it by infinite factors.  Worse when they are multimedia files taking up megs or gigs of HD space.

It’s not your computer - treat it with respect. YOU are the guest there.

The customers is stupid? 

No.  The programmer is a dolt!

Modal Dialogs

You know you’re dealing with a technically bereft developer when you run a program and it throws dialogs as a solution to every problem.

Modality is king it would seem!

The humble modal dialog is supposed to make it easier for the person who using (that word again!) the program - whom we are now referring to as the “customer”.

In many instances this is the case.  But not every instance and not all instances we frequently see.  Taking the activity to another room is all to often not needed, not helpful and interrupts the users thought process or flow.

Dialogs - the cowards easy way out. To scared to learn a few tenets on UI design (or to thick?). 

Why go to another room as Alan Cooper calls it in his book?

There are options galore to choose from that frequently make more sense than a modal dialog.  We’ve ended up in a paradox where certain DOS programs with ANSI screens where easier to use and more flexible than the alleged easy to use GUI’s of the present.

I’m not saying no modal dialogs - I’m saying give them some thought, is there a better way in line with what’s being done? Frequently there is - but you can bet it’ll take more work.  But that’s what we are supposed to be doing - right?

Mac dev’s are not getting off on this either.  While most folks know Drawers suck bad (though they look cool) Sheets are no better than a modal dialog in many instances.  They need to be used where they fit, not where it’s easiest for the developer.

Linux dev’s?  Personally I’d argue most (not all) wouldn’t know UI design from dog barf, judging by some of the classic *Nix applications.  Generally though they follow Windows dev’s like sheep on these things -with a few doing some Mac-ish things  but not quite groking why.

Error dialogs are another one that get my goat (and a lot of other folks).  There are lots of developers, so called, who don’t even bother trapping for errors at all.  You’ve met their applications.  Run the program - BAM!  Mega Access Violations.  Or stupid messages confirming every action the user carries out that basically say:

“We know you are an incompetent fool.  Are you really sure you want to do that, you ignorant peasant?”

Steve Cholerton blogged recently about his work with handling errors.  It’s great to see that Steve is taking this in hand.  Heck, I myself blogged about it a few weeks ago regarding MixAction.  121 of them from memory. 

Steve wrote: 

Errors and Message Handling is an important part of your application. I believe it is necessary to create a framework or standard way of dealing with and displaying and logging errors and messages within your application.

He’s quite right. 

But in some ways he’s also quite wrong (note this is in no way meant to be disrespectful of Steve nor is it an attack).  You see Steve has fallen for the standard trap.  In one of his examples he’s telling the user they are entering into “Secure Mode” and that their “Actions Will Be Logged”.  The problem IMHO is that he’s telling them modally.  They have to click the dialogs OK button every single time! 

The difference here is that what I do instead is show a non modal window for such events that do not require a click.  They slide up at the bottom of the application window (not the tasktray mind!), wait enough time to be read and then slide away (with a link for more info if they want it). The customer can turn off these warnings if they really want to.  The exception is handled, the program keeps going and the customer is warned.  A lot nicer, more elegant and much friendlier.  The customer keeps doing whatever task they are working on.

It’s the programmers job to keep the program running.  Not the customer.

Keyboard accelerators

A disappearing art that leaves a situation of pandemic tendonitis in the making.

For crying out loud code those keyboard accelerators.  Not everyone can use a mouse.  Some folks have sight disabilities or even hand, wrist or arm disabilities (possibly caused by programmers forcing them to do everything with the mouse).

BUT - If you do make sure they are logical, coherent and don’t conflict with each other - AND - if you make them system wide instead of application wide I’m going to delete your program without further consideration.

Skeletons in the closet.

On Windows we always seem to be cooking for a dead ancestor.

You know, they were nice while they were around, but now their toes have turned up and they’re pushing up the ethereal daisies, expired, past their use by date, gone to that place in digital nether nether.

Coding for old systems, I won’t mention names like Windows 95, 98, Millennium or even W2K here ;-)  - makes absolutely no sense.  If they don’t buy new computers and OS’ why would we ever imagine these folks would buy new software?

They won’t.  Ditch them.  They are holding you back supporting the defunct.  They are holding your customers back as you scramble to support the defunct.

Many of the problems with temporary files mentioned above would disappear if dev’s didn’t code for these archaic systems.  We don’t build highways for horses and carts anymore, to my mind the same should apply in this industry.  Again, IMHO, this assists the programmer in the process of respecting a system.  Target, within reason, the customer you want, not the one you struggle daily to deal with.

Cooking for a dead horse - a waste of resources, code for now, not yesterday’s OS or hardware.

Old computers do have a use.  There are a lot of boats out there requiring anchors.  ;-)

User Interface Evolution

Sticking to old outdated paradigms is like sticking to the obsolescent.  You don’t own their computer, so if you’re software doesn’t run on their antiquated box you shouldn’t be coding to try and make it run on it.  If you need a better target machine, or market, then write for that target machine or market.  

It’s not disrespectful to code for the medium to current range of computing devices.  It is disrespectful to pander to those folks who can’t run your program because they’ve uninstalled all references to IE on a Windows box, or don’t have enough screen pixels, or colors or have a graphics card that only Richard Stallman could love.

Vista redefines the Windows UI.  I have a hunch Windows 7 or whatever it ends up being called, will do the same again - though probably with more subtlety.  Windows 9x, 2K are dead.  Finito.  With any luck XP will go the same way in the next four to five.

Scott Kane

“There is a theory which states that if ever anybody discovers
exactly what the Universe is for and why it is here, it will
instantly disappear and be replaced by something even more
bizarre and inexplicable. There is another theory which states
that this has already happened.”
                                          — Douglas Adams

Please Consider Rating This Post
Rating: 0.0/5 (0 votes cast)
Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Live
  • Slashdot
  • StumbleUpon
  • Technorati
  • YahooMyWeb
  • blogmarks
  • BlogMemes
  • Blogosphere News
  • De.lirio.us
  • E-mail this story to a friend!
  • Internetmedia
  • LinkedIn
  • NewsVine
  • Reddit
If You Don’t Love It Don’t Release It!...Stupid ISV Is - As Stupid ISV Does...Day 17 - Some Familiar Territory...Day 34 - Coding To Heal - Media Files...

Related posts brought to you by Yet Another Related Posts Plugin.


Actions

Information

3 responses to “We Don’t Own Their Bloody Computer!”

11 08 2008
Steve Cholerton (09:34:30) :

Great article Scott :-) You mentioned my ‘INFORMATION’ dialog in the article, in my defense the INFO dialog is used so rarely that I couldn’t think of a single real example, so I went with the ‘You are entering a Secure Mode blah blah’ example.

Although on the whole I agree with what you are saying I would say that having come from 9 years of coding within an organisation, the users there LOVE their dialogs and ‘Are You Sure’ questions.

The inhouse ERP system I wrote was littered with them because the users *wanted* them. I didn’t (and don’t) believe they are necessary but in that environment you have to go along with the users who have the full support of their Managers in some kind of misguided belief that being prompted at every stage somehow helps them get things right.

The additional dialogs are looked upon as some kind of additional safety device, and as such were overused.

Horses for courses I guess, maybe the answer is a Prefs setting (user specific) which activates additional dialogs ?

I have an application on the go at the moment which is a kind of cross platform version of Growl which displays a popup at the corner of the screen instead of using dialogs. This application, ArtenALERT, will be available in a Beta format in a few weeks and I’ll be integrating it into all my applications as well as making it available for anybody else to interface with.

Cheers - Steve

Rating: 0.0/5 (0 votes cast)
11 08 2008
Scott Kane (14:14:59) :

Hi Steve,

Adding this stuff to pref’s is a good idea, especially non critical sections. Obviously a fatal error is a fatal error, sometimes a program has to die cleanly. But so many of our errors are not fatal, yet we tend to treat them that way.

Regarding customers requesting modal errors, yes there are folks who like to be led by the hand, but I suspect it’s because they’ve been educated by us in this industry that it’s the way a good program should behave. If their car or refrigerator did it however….

The ArtenAlerts sounds similar to what I’ve implemented. Sounds like a good plan. :-)

BTW - no need to feel you had to defend yourself, it wasn’t an attack or anything, just an example that was current. I figured better to give the traffic from the link to you than to some obscure site. :-)

Rating: 0.0/5 (0 votes cast)
11 08 2008
Steve Cholerton (19:49:11) :

Cheers Scott. I didn’t take it as an attack, but I did need to answer the ‘INFO’ statement :-) As for modal dialogs at every turn, i used to tell the story about how in Canada they experimented by taking some of the safety barriers away from the mountain passes and found that there was LESS accidents because people were more careful … I think the same applies (in reverse) with ‘Are You Sure’ type dialogs, people are less careful because they know they have a ’safety net’.

In my previous employ I may as well have been talking to myself though :-(

Interesting subject however ;-) Cheers - Steve

Rating: 0.0/5 (0 votes cast)

Leave a comment

You can use these tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>