Friday, March 17, 2006

The Evolution of Software Design

I think Software Development's Evolution toward Product Design* is an important essay. The author, Danc at Lost Garden, gets a lot of things right. His four distinct eras of software development sound about right to me. I don't quite remember "The Technocrat Era", but I lived through the "Early Business" and "Late Business" eras. I know first hand many products of those eras confounded users' expectations.

On the other hand, I think Danc is being unfair when he implies each product of those bygone eras was nothing more than "a pile of poo". His artist's rendition is very funny, but it's still unfair. Danc is also too sanguine about the glories of the "Product Design Era".

Danc seems to believe the key to successful software development is to involve people in berets (artists and designers) early in the project life cycle. He refers to a so called "Production Pipeline" in which the people in berets lay the ground work for pliant programmers. To be fair, Danc doesn't think this will be easy:
Unfortunately, many companies that attempt to adopt a product design philosophy will also fail, despite their best efforts. Cultural change is hard work. To adopt product design you must alter the most basic DNA of the company's values.
It's true we need cultural change and he's right it won't be easy, but inertia is not the only problem. In my opinion, the bigger problem is the people in berets don't have all the answers. They certainly don't always agree on the answer.

For example, many designers are orthodox User Centered Design (UCD) disciples. They design products for user personae and insist the software must always adapt to the user. They can cite chapter and verse from the high priests of UCD including Alan Cooper and Don Norman. But Don Norman himself recently broke ranks with UCD orthodoxy. In Human-Centered Design Considered Harmful, Norman dropped some bomb shells:
HCD asserts as a basic tenet that technology adapts to the person. In [Activity-Centered Design], we admit that much of human behavior can be thought of as an adaptation to the powers and limitations of technology. Everything, from the hours we sleep to the way we dress, eat, interact with one another, travel, learn, communicate, play, and relax. Not just the way we do these things, but with whom, when, and the way we are supposed to act, variously called mores, customs, and conventions.

People do adapt to technology. It changes social and family structure. It changes our lives. Activity-Centered Design not only understands this, but might very well exploit it.

Now consider the method employed by the Human-Centered Design community. The emphasis is often upon the person, not the activity. Look at those detailed scenarios and personas: honestly, now, did they really inform your design? Did knowing that the persona is that of a 37 year old, single mother, studying for the MBA at night, really help lay out the control panel or determine the screen layout and, more importantly, to design the appropriate action sequence? Did user modeling, formal or informal, help determine just what technology should be employed?

I think Norman's Activity-Centered Design principles are much saner than strict UCD, but the art of user interaction design is still evolving. The people in berets don't have a silver bullet. It is unlikely they ever will. User interaction design, like software architecture, is hard work. It will be another era or two or three before we get it right even most of the time.

* via Ned

No comments: