Amy Wohl has been writing about user interfaces in her developerWorks blog as well as in her "Amy Wohl" blog. I have known Amy for a long time, and have always enjoyed reading what she has to say, as well as talking to her on a variety of issues from programming environments to IP strategy to cooking.
Amy is exploring a very important point, namely that programmers, almost universally, are not the best people to design applications and interfaces for use by "normal" people, i.e., people who are not programmers and who could care less about programming, computers and technology. Amy includes a link to a really funny story on what a house designed by software developers would look like. Her key point is that programmers think one way, and most users think a totally different way.
I have been thinking quite a bit about this subject lately. As we try to reach a wide population with products and services based on IT, we want them to be so well designed that the underlying technologies do not show through. I have felt for a while that it is thus increasingly important to separate the development of the underlying infrastructure and tools, which is generally done by programmers and other technical people, from the design of the product and services, which should be done by people who are very good at design and who focus on asthetics as well as function.
Deep down, programmers (and I place myself in this camp, having written my first programs in now ancient assembly languages in the summer of '62 prior to entering college) are fascinated by computers and the incredible power they give us to do just about anything. So, whether consciously or not, we design user interfaces so others can get access to all that power, and do with it anything they want. After all, that is what computing is all about.
But most users, whether of web sites, PCs or consumer products, do not care about all the power that so fascinates us. They just want to do whatever they are doing in the simplest possible way, whether they are renting a DVD at Netflix, doing e-mail or recording a TV program on their Tivo.
For example, when I go to Netflix to rent a DVD, I am interested in what DVDs are available, which DVD I want to choose, what recommendations they have for me, and so on. What matters is satisfying me as a customer renting a DVD, and the designers who will best cater to my wishes will most likely be those who are focused on what it takes to make the DVD rental experience as satisfying as possible.
Similarly, I love my Tivos, which is the reaction of almost everyone who uses one. While the Tivo is essentially a general purpose computer running a version of Linux, that means nothing me. What I love about Tivo is how easily it lets me find movies I want to watch, say movies starring Cary Grant, using its built in schedule (updated daily); how quickly I can set it up to record Six Feet Under every week while the series is playing; the fact that I have instant replay while watching live Mets or Yankees games; and so on and on. Somebody has clearly thought through what kinds of capabilities people want when dealing with their TV, and Tivo offers those capabilities . . . and no more. That's what keeps it so simple.
Having a well-architected system is really important to help programmers and designers each do what they do best. For a deep, thoughtful discussion of what it means to have a well architected system, let me refer you to Grady Booch's Handbook of Software Architecture website as well as to his blog. Grady is an IBM Fellow and world class expert in software architecture and software engineering.
As IT becomes ubiquitious and "disappears into the woodwork", much of the innovation will be done at the design level, by people and companies that are thinking really hard about their users, and how to give them the right capabilities while hiding as much of the complexity as possible.
Comments