Wednesday, December 17, 2008

Expectation = Reality

So the wife and I were watching a show that was recorded on our DVR (nothing fancy - just the default Motorola default box) - and we ran into a problem. We were about 20 minutes into a 2 hour show - trying to fast forward through the commercials - when the show just jumped to the end.

Well, since she had the remote - my deduction was simple: "You must have pressed the wrong button", was my immediate diagnosis. So, she tried again with the same result.

Now, everybody KNOWS that men are the superior species when it comes to working a remote control - so I smugly held out my hand for her to "hand it over, woman!" (silently, to myself of course). The remote to men is like having a second skin. My fingers just instinctively knew where to go - and so I restarted the show, forwarded about 20 minutes in, and then expertly hit the fast forward button... and... it did the same damn thing.

"You must have pressed the wrong button" came the smug reply. DOH! I hate when that happens.

After about 15 minutes of monkeying around and neither of us getting it to work - we were forced to, gulp!, watch the show in REAL TIME. Oh, the horror! We had to sit through all the commercials and the 2 hour show actually took 2 hours to watch.

We've only had a DVR for about 3 years or so, and my expectation is that the thing would work flawlessly every single time. Our "old" DVR (MOXI - also based on Moto hardware) had a button on the remote that would let you skip 30 seconds forward at a time - a perfect way to "zap" the commercials. It also included a very, very nice GUI that was easy, intuitive and looked nice. However, after about a year that model just "died." So I went to get a replacement at the cable company.

Our "new, upgraded" model ("Twice the capacity!" and "HD recording!") - promptly took the single-click commercial-zapper feature away and forced us to fast forward through the commercials (I guess the network advertisers were pissed at the previous functionality).

The new GUI was designed by someone who had obviously never used it to actually try to record something. It was (IS!) an absolute abomination in terms of look and feel and usability. It took us about a month to get adjusted to the new GUI and the new 15,000 button remote (again, designed by someone with absolutely ZERO clue on how people actually USE it to watch TV).

That got me thinking about how my expectations have changed about devices I use everyday - and it raises my expectation on how things "should work."

Another example is my phone. Now that I have an iPhone 3G - my expectation of what a phone "should" be able to do are forever altered. I can never go back to a non touchscreen device, nor a device that doesn't have games, music and a full Internet browser on it. I just "can't" do it.

My expectation when I first bought the phone was that I would occasionally use the browser, and probably listen to a few tunes now and then and maybe, just maybe install a few games or other "useless" applications that came along.

Wrong. I have 4 full screens of crap that I actually use all the time. Stock quotes, weather, movie times, 3 or 4 games, social media updating apps - I use all of them all the time. My expectations of what a phone "should do" are now permanently changed.

Same thing with the software I use. Before I started using Servoy - I was writing browser-based applications in ASP or JSP or ColdFusion or Lasso. That meant code. LOTS of code. Code for database connections. Code for business rules. Code for SQL. Code for parsing data that came back to the database. Code to update data. Code to delete data.

All of this was way before things like AJAX (Asynchronous JavaScript and XML) - and the Web 2.0 functionality (where the whole browser pages doesn't reload - just the parts you change or update). If I had to code that stuff now - there would still be all the other legacy stuff to code - plus a whole new layer of other stuff to code (the AJAX stuff).

With Servoy, I can simply drag fields to forms, write simple scripts (called "methods" in Servoy) to change field color, or perform a calculation or whatever, and then I can simply open a browser and all that stuff "just works" for me - exactly the way I designed it.

If there is a bug (and there will be - for 100% sure!) - rather than getting a cryptic "Error at line 33" browser message that isn't helpful at all - I can now even fully debug the browser based application - complete with breakpoints, variable watching, etc. All the stuff I would expect only when writing and debugging code for a native (non browser-based) application.

Just for grins - I downloaded a sample AJAX application from the Internet - a simple app that included basic CRUD functionality (CReate Update Delete). It had 4 HTML pages and had about 550 lines of code. I was able to re-create BETTER functionality in Servoy with 6 lines of code and ZERO HTML pages. It took me about 9 minutes to complete.

Not only will I never go back to the "old" way of creating browser-based applications - who knows where the technology will go from here. What's the next new thing? What else will poor application programmers have to learn in order to get rich, full-featured applications out the door? AND, more importantly, what will that do to all the applications they've already built the "hard" way?


At least I'll never have to worry about it...

No comments:

Web Analytics