Showing posts with label User Interface. Show all posts
Showing posts with label User Interface. Show all posts

Monday, June 1, 2009

Whatever happened to simple?

Have you noticed a trend in the world of Programming, Computer Software, etc., towards making things more complicated than they really are?

I can understand this trend in terms of my experience as a programmer. When I was young, I thought I could pretty much make anything work, and that the time it would take to make it was always fairly short. "I can make that!" Accompanied with "That's not too hard, maybe a few hours of programming!" And time and again, my estimates were way off, and things took much longer than I had anticipated, and often bloomed in ways I had not foreseen, into complexities and code-necessities that required time and thought to handle.

Add to that the typical response of non-programmers to every feature: "Build that! And have it done yesterday!", and one quickly comes to the conclusion that things are harder than they seem, more complex than they ever appear at first blush, and a self-preservation mechanism of "default to more complex / difficult assumptions" so that you have the space and set expectations that might actually match the end-result, keeping yourself out of the cross-hairs of "you're late with X feature" criticism from management.

But on the other hand, I am more and more seeing examples of folks who are either over-compensating for these factors, or who are simply coming at everything from a hyper-conservative position, making it very hard to see the simple in things.

When I began my career, Text-based GUIs were just becoming available. Programs such as Borland's fantastic Turbo series, and PC Tools suite, and Copy II PC. Much of the standard fair of GUIs of today found their genesis (at least from my experience) in these software suites. The edit box, the drop-down menu, the combo-box, the radio button, check box, push button, list box, etc., all began their life to my eyes here. And they were generally very well done. They were consistent, and relatively intuitive. These software suites were by and large simple to use. And it was fairly common to see some new innovation, some slight twist on a theme, that made using them even easier and more powerful, such as begin-typing-jump-to-first-match in a list.

But it seems to me that much of this "try it and find out" mentality has been replaced with a "form a committee to study this issue and do focus groups to determine an interface's value" type approach. And this sort of hype-conservative approach stifles innovation, and to my eyes at least, leads to a sort of dumbed down, least common denominator approach to user interfaces.

I don't know about you, but my experience of "design by committee" is that of a sub-par experience, a sort of group-stupid applied to what should be fairly trivial and obvious decisions. It seems to me that it often invokes the "what color should we paint the shed" sort of arguments, where there shouldn't be this level of discussion and focus on something so trivial.

Essentially, the preconceived notion that every decision is not a trivial one, that there's no such a thing as a simple feature is a dangerous slippery-slope in and of itself. And here's sort of the seminal argument for why a simple feature isn't: How many Microsoft employees does it take to change a lightbulb?

And although I respect that, in fact, most things are more complex than they appear at first blush... I hurts my brain to see such overwhelming odds set up against any sort of trivial and useful innovation as a type-ahead search, or perhaps more compellingly, creating a security model at Microsoft that isn't ... well ... retarded.

Some things are simple. And they need to be left to a single developer's common sense to implement them. Its great to at least review such things on a local level - maybe the group to which that programmer is assigned. But having to have every single minute bit of trivia examined as though type-ahead and security UI are of the same depth of focus and importance is.. crazy. And that way lies stagnation and poor designs.

Two examples come to my mind when I read such blogs. First: Microsoft Vista's "shut down" button, and second: Vista & W7's "Security UI". Someplace I read a Microsoft blogger's scathing post on the process behind the Start-menu's shut-down button. How that it went to multiple committees, was changed over and over during the various stages of Vista's design, and ultimately was left with an unfocused, incoherent design. Clearly a victim of Parkinson's Law of Triviality.

But it pains me to think that the many intelligent and sometimes brilliant people at Microsoft have such a poor grasp of what is meant by "Ordinary Users". Ordinary users do not feel threatened by whether something is grouped or ungrouped on the task bar! Lol - they don't even, for the most part, have any idea how to use the task bar. Raymond's example is laughable. It sounds absolutely nothing like any ordinary user I've ever heard. And yet these are the self-same folks who believe that they understand what ordinary people perceive and how they think about computers.

But when you actually sit down and use a computer, be it a Vista machine or a Windows 7 machine, and are constantly bombarded with "This action requires Administrator permissions" dialog, where you have to type the password for the admin account over and over to accomplish even day to day tasks, with no option to perma-authorize anything, you come to the inescapable conclusion that the folks at Microsoft behind this UX as they like to call it (User Experience), must all be on some serious drugs, or more likely, utterly self-delusional. Its so far from a functional, usable interface as to make me want to shame them in front of the entire class. I'd give them an "F". Hell, I'd post it in the school cafeteria's wall for all to see. I'd hold a mandatory "school-rally" to highlight the vast failure that is their security, and I'd want to interview the many folks involved in the course of creating this albatross to try to come to grips with how such an Elephant comes to reside in plain view without anyone commenting on how incredibly retarded it is, so that we can learn from their mistakes and never, ever, ever make this colossal of a stupidity again.

Or do you find that you side with the "there is no such thing as a simple feature" folks? Do you find Microsoft's UI changes in Vista and Windows 7 to be genuinely better and more usable than their overall UI in XP? Would you prefer to see every decision go through committee? Or do you see a better way?

Friday, May 15, 2009

PDC2008 Design Principles for Windows 7... some comments and reflections

For those of you interested, you can see the actual presentation here: http://channel9.msdn.com/pdc2008/PC22/

Over and over while listening to this thing I keep thinking: wow, do they actually listen to themselves? Do they realize how ironic they're being?

At this particular moment, I'm listening to the presenter describe the idea that computers "should meet your expectations". Okay, we're on the same page here. Yes, computers should meet the expectations, the common assumptions, the intuitively obvious minimum behaviors that we would expect them to. Insert a movie: watch the movie. Insert a game, play the game. But the irony here, is something like this: The example he uses is "you put your movie DVD into your laptop. What do you expect to happen?" Well, it depends on how savvy of a Windows user we are.

If we're a total novice, and have never tried this before, then we might think that it should do the most obvious thing: play the movie.

But if we're even just a a little bit savvy, just a little bit experienced with Windows, then we immediately think: who knows?! Maybe its going to pop up a cluttered list of possible things to do, with icons of the software that's associated with those actions (which themselves are more about marketing their corporations and not really helpful in terms of giving one a solid sense of what they actually do or mean), of which the most obvious choice (play a movie) might or might not actually be present depending on what software we've installed on this laptop, what horrible software came preloaded by whatever godforsaken laptop company we bought this thing from, and whether Windows itself is even currently functioning properly for playing a movie, not to mention what crappy for-PC-software there might be on this DVD from the movie company (including the possibility of malware or a root-kit). But really? Who knows what it will do. This is a Windows PC.

But all of those things - the real list of what a laptop is actually likely to do - read like some insane horrible nightmare. Yet they're the likely outcome. And again, if this was not a laptop, but something less retarded like a DVD player, then it would actually play the DVD as expected, would not become infected with malware or a root-kit, and wouldn't be too damn dumb to figure out what to do with a movie DVD!

But will Microsoft ever listen to its own rhetoric? Or do you like the way it works now?

Anti-UI pattern: Copying files & folders in Windows

This is another one that drives me nuts in Windows, and has been bass-ackwards now since... well, since Windows was first conceived.

DOS had options to make this work right. DOS. Venerable, ancient, command-line DOS could do this, but Windows File Manager, and later, Windows Explorer still cannot:

Copy a set of files & folders and gracefully handle problems during the copy without requiring the user to start over from the beginning, or WORSE, leaving things in a messed up half finished state when the operation fails for whatever reason (out of disk space being an obvious and common one).

WTF? I'm listening to PDC2008 video from MS that gives an overview of their "design process", that discusses the why's behind many of their decisions, and the driving principles for their UI department for Windows 7. And many of these design principles are laudable. Simplicity. Less steps to do obvious and necessary things. Less clutter and distraction. Yes, these are wonderful! But do they step back and actually look at their own OS and evaluate maybe some of the most obvious and necessary functionality with Windows (or any OS): File Management???

Apparently not, otherwise they'd have long ago discovered that their OS doesn't have the fundamental interface / tool-set to give users the ability to reliably copy or move files from one place to another with confidence that the operation will actually succeed.

Why is that? What could possibly be going through the many minds at Microsoft that leads them to ignore this fundamental requirement of a modern PC?! Windows 7 "Gestures"... while being nifty and full of novelty, don't actually represent a requirement of today's PC. Maybe they're a sales bullet point requirement from MS's marketing dept. But they are NOT a core requirement of a PC.

Copying and Moving files reliably, however, IS.

So why is it that when I use Windows vaunted Explorer, and I select a folder containing many files, does it abort the entire operation and fail to clean up after itself (roll back) or offer me the ability to remedy the failure and continue the remainder of the operation?! The latter is preferable, but the former would be acceptable, and another alternative would be to allow me to pick up & resume an operation that was partially finished (though this probably the least intuitive, and hardest to imagine a UI that would make sense to most people for).

I have had situations where 98% of my files (which can take hours to move or copy) fails at that last 2%, and the entire thing must be started over. One cannot fix the offense (say, delete a few more files on the target volume in order to free up some space for the remaining few files in the incomplete copy). One cannot choose to cleanly roll back the operation, leaving things as they were before one started. This is especially important if I was for example MOVING a few thousand files, because it then abandons the two file systems in a mixed state.

What is especially egregious about this interface is that when you go to copy things, Windows takes a small century to go through and think about the operation you're about to perform... yet, when it finally decides to begin the operation, it apparently hasn't used that thinking time to actually do any reality checks - simple things like "does the target volume have enough space for the requested operation to succeed?"

Now, mind you, that's not an especially reliable check anyway. Its a possible up-front check, which isn't the worst idea to go through with, but the reality of matter is that the target volume way well change its available space during the time that the copy or move is being performed anyway, perhaps due to another copy process, or being a shared volume in use by other clients, or for any other of a large range of reasons. So whatever check it can do up-front are only an initial reality check, and hardly any assurance of success, and shouldn't be relied upon by the copy algorithm as assurances that it doesn't have to actually handle problems on the fly.

Waaaay back in DOS one could purchase the excellent PC Tools or Symantec Tools which would give you a Text/GUI for copying, moving, and other file management operations. These competing packages both offered very smart copy, move, and error recovery. And yet today, more than a decade later, Windows has yet to provide such basic and essential maintenance support.

As long as we're on it, I might as well at least touch upon the stupidities and inadequacies of Windows Explorers security management interfaces. They're clumsy, hard to use, impossible to understand with anything less than a certificate in Windows security administration, and they do the wrong thing in most circumstances.

Say I upgraded my computer and chose to do a clean install of Windows onto a new hard drive. But I want access to all of my old files and so I keep the old hard drive around for both backup and access purposes. After completing my fresh install onto my new drive, I attach the old drive, boot to Windows, and try to access my old files. BONK! Can't read most of the folders on my old volume, due to security descriptors. Okay, so I just need to change the security to give myself access to my own files. Its something like 20-40 clicks to accomplish this, along with a long, long ass wait. I have to take ownership, add security for myself, remove any useless security from them, and these operations are exposed through a thoroughly unfriendly interface that often refuses to do what I ask it to, despite my being the Administrator on the machine to which this drive is attached. And woe is you if you actually used MS's encryption abilities on any of your files... they're goners unless you're still able to boot to the old OS in order to access them.

So why is this? Why are these things incredibly head-up-ass retarded in their convoluted, frustrating, and generally unhelpful implementation?

Microsoft is fond of thinking of itself as the company that cares about its customers, that takes pains to learn how folks use its software and to actually improve its users experiences of its products, and yet consistently they miss even the most basic usability issues with their software, be it Word, Excel, Windows, or other.

Microsoft, when can we have a marginally functional file system management tool for normal usage patterns, such as ...wait for it... copying and moving files around. I know, I know, this is a TALL order, one way up in the stratosphere of DOS level of complexity. But I would think even you guys could manage this after a full decade to think about it and do usability tests and design by committee or whatever else you needed to do to come up with a viable solution.

Sunday, May 10, 2009

Wherefore art thou, BIOS flash (which works easily)

PCs have been around a while now. They're in our lives commonly, and the BIOS has been there since the very first IBM PC, giving the computer a way to start up.

In all this time we've seen a lot of improvements in the BIOS. Support for dynamically allocated resources (aka Plug n' Play), support for larger hard drives, and various new devices on the motherboard.

But in all these years we have yet to see a system that allows us to upgrade or replace our BIOS with ease. Yes, there are niche hardware offerings that have this - a socketed BIOS or a second copy of the BIOS on the mobo. And more recently one can load their BIOS from a USB thumb drive! Well, that's almost perfect. The ability to start up the PC, reload the BIOS, and move on.

If only it worked worth a goddamn!

Today, I need to update the BIOS on my wife's PC. She's got a Gigabyte GA-M68SM-S2. Suppossedly a "Gamer's Choice" series of mobos. Since this particular board has a lack of features to handle a slightly wonky hard drive, I thought I would update the BIOS to see if the probelm its having with the primary hard drive might have been resolved in the BIOS's latest release. (The technical info on their web site doesn't indicate anything about this, but like most people, I'm used to companies either poorly or not at all documenting their products).

I find that the BIOS for this mobo does include a utility that should allow me to update the BIOS directly from the boot up screen and a USB thumb drive. Excellent, I think! Finally, the motherboard manufacturers are doing something about this obvious need... and only about 5 years after they should have. Ah well, at least its available today, when I need it.

So, with thumb drive in hand, loaded with the latest BIOS downloaded from Gigabyte's web site, I boot my wife's PC and enter the Q-Flash utility to do this thing. But... there's a glitch. The Q-falsh doesn't recognice the one flash drive I happen to have at home. Maybe it would recognize one of the ones from my office. But I'm home today, and my wife is threatening certain parts of anatomy if she has to wait another day for her machine!

But what's to be done? Gigabyte doesn't supply a Vista x64 based BIOS update utility that I can use, and since it can't read the 1GB thumb drive, I seem to be thoroughly SOL.

Looking on Gigabyte's web site, I see that they (terribly helpfully) support the floppy drive as well. Yawn,... yup, that's an option. Every machine I know of surely does have a floppy drive, yessiree. WTF?? What dumb ass makes a Q-Flash utility that can't read a very very common and compatible Cruiser 1GB thumb drive? Why the goddamn hell isn't there a reasonable way to upgrade this machine's BIOS? "Boot to DOS" says Gigabyte's online help. What DOS??? Using what device that your BIOS can boot to that some instance of DOS could even boot from???

I swear, computers are 100x more difficult to use than they ought to be and I cannot for the life of me imagine why the f@#! that is. I am a programmer, and I write software most every day of my life. If our company wrote products that were half as useless and poorly made as it seems Microsoft and the Mother board manufactures regularly excrete we'd be out of business in a heart beat. What the blasted hell do their programmers do all day? For the past 19 years??

We need PCs to have a bootable maintenance mode. A robust, easy to use core-level OS that allows us to do basic maintenance on our machines, not dependent upon 1980s era technology or an bootleg copy of DOS that nobody has anymore, and can't boot from any of the devices available on a modern machine anyway.

What do you think should be done to make maintaining PC hardware less burdensome? What about other hardware than the mobo? How should one upgrade their RAID adapter's BIOS?