Log in

No account? Create an account
open-source usability - Accretions — LiveJournal

Fata Morgana
2004-04-02 11:46
open-source usability
David pointed me to this essay, linked off Slashdot, about open-source usability. It's an interesting read. I disagree with his assertion that GUI design - or artistic design in general - is an "innate ability." What appears to many as innate ability is, I think, more about attitude and passion. I also disagree with his statement that GUI design is an "order of magnitude more work": in the average commercial software development project, about half of the time and half of the code go into the interface. What would take an order of magnitude more work is to change hackers' opinions about human-computer interaction.

Last week I was having a discussion with a CMU student about "HCI evangelism." He said he used to argue that human-computer interaction was part of computer science, but now believes it is and should be considered as a separate discipline. I think that it is different from traditional computer science, but I think it's too important to computer science to push it off in a separate department, so the "pure" computer scientists don't have to deal with it (and can continue thinking of it as inferior to "real" computer science). It should be present in all parts of computer science application-building. It's not enough to slap an interface on top of an application; good interfaces are built from the bottom up, giving the right handles to the next level, and that can only happen if developers at all levels know something about usability.

I also think those who say that HCI is "too young" to contribute anything yet are short-selling the discipline. Sure, human-computer interaction has only recognized itself as a discipline for 15-20 years (though over half of that time as "man-machine interaction"), but computer science has only recognized itself as a field for about 50 years! Concepts tested by both time and HCI professionals - such as prototyping, user testing, the human information processor, and the model-view-controller architecture - could help hackers and other code monkeys practice user-centered design. Of course, getting them to appreciate it in the first place is another problem entirely. Just make user-interface design a required course in computer science curricula! ...

In our discussion of all this, David slammed me for wanting to make interfaces so simple that they take away the power that computers have to manipulate information, perform repetitive tasks, etc. How can one have the power of the command-line in the graphical interface, so everyone can start using computers as the powerful tools that they are? This task is many orders of magnitude harder than just usability. It'd be great, but I sure don't know how to go about it. Some programs have taken shots at this, such as Photoshop's batch "Actions," spreadsheet programs, Office's macros, and some of XP's right-click menu options, but those still don't have the power of shell scripts. Still, just because I'm stupid about it doesn't mean that others are too.
Comment | 13 Comments | | Link

2004-04-04 06:48 (UTC)
(no subject)
My UI story: About two summers ago, I was tasked to write a program that would 1) read in sensor data, 2) let the user pick an error model, 3) use a GUI to choose how to cluster the points, and 4) run a Kalman filter to produce the graphs we want. I'm not a programmer; I work in MATLAB because I can fiddle with data easily. My first script had a UI which was intuitive to me (well, I wrote it, so maybe that's isn't saying much), but apparently not for my supervisor. I started to walk him through the interface (which was all clearly documented in the code) but he stopped me and said if the rest of my explanation was as confusing as the first steps I detailed, the GUI was too clunky. He then gave me a list of changes to make (some of which I would have never thought of, such as using the borders of MATLAB figures to scroll and zoom). This roughly doubled the time it took to complete the program, and since I was a summer intern who had a fixed amount of time to complete his research project, I naturally chafed. But he reassured me that UI was always important because other people, equally time-anxious, would be using my work after I left at the end of the summer and can't answer their questions. It would be instead a waste of their time if they had to laboriously go through my code to figure how to work the GUI.

Anyway, in retrospect, the changes in the GUI were for the better. The new interface even allowed me to process the experiments I needed to run for my project faster than if I had kept the old GUI. I think the difference here was one of "attitude." I came at the assignment from a purely end-result oriented perspective. Let me write something which will get the job done, and let the user figure out where he fits in the picture. I hazard a guess that many programmers are the same; they lose themselves in getting the computer to go from point A to point B (and details like deadlines and squishing the never-ending procession of bugs) and forget that their code isn't worth much if the user can't (or won't) use it.

As for whether GUI design is an innate ability or not, I'm still undecided. I may one day become well versed in GUI design practices, but whether my poor creativity skills can come up with an innovative interface (barring the inspirations I occasionally have) is an open question.
Reply | Thread | Link

my journal
September 2013