A Complete History of Software ;-)
Noticed a post by David Temkin on "The lost art of user interface programming". Got me thinking about my own direct experience with the evolution of software, and what I've observed about the user experience along the way. Being fond of 2x2 matrices, here's my four quadrant history of software, based on producer-consumer relationships:
I. When software was for organizations serving organizations
My first job out of college was with Andersen Consulting, now known as Accenture. Andersen originated in the world of mainframe information systems, that typically served the needs of institutions rather than individuals. I still have a coffee mug commemorating my work on the Tax Accounting System for the Employment Development Department of the State of California. The design center of such systems was the flow and processing of data records through an organization, rather than the task goals of an individual user. The user interface was relatively crude -- here it was the user's job to interact with the system, and periodically give user-friendly reports to superiors, who would rarely seek to interact with such systems themselves.
II. When software was for individuals serving organizations
When the personal computer came along, suddenly software served the needs of individuals on a mass scale, and the shrink-wrap software industry was born. New categories of staple products emerged, including spread-sheets, desktop publishing tools, word processors, image editors and even complete accounting systems. Those accounting systems were availabe for the equivalent of less than an hour of consulting time by an Andersen partner -- what a deal!
These products needed to be accessible to an individual rather than to numerous operatives within multiple departments of an organization. It was all part of the productivity revolution of desktop computing. Extensive system manuals needed to be eliminated along the way -- and to the greatest extent possible replaced by self-documenting user interfaces. Today, few of us fully appreciate how many people were once required to accomplish what one person with Quicken, Photoshop, Excel or PageMaker can get done. We forget that there were generations of people who actually had someone else type their correspondence, and relied on entire departments to produce presentations.
III. When software was for organizations serving individuals
While productivity tools for individuals garnered most of the attention, the needs of organizations did not disappear. Data processing systems also advanced by combining server-based business processing with the superior GUI capabilities of personal computers. In most of these cases, the user experience could be simpler than what was required for personal productivity software, but still leveraged the GUI paradigm to make the IT system more accessible to non-specialists. The only problem was there was a lot of desktop client software that had to be distributed and updated every time a system was launched or modified. Deploying and maintaining distributed client-server apps was a hassle.
The Web came along and changed everything, mostly for the better. Deployment became instantaneous on a global scale. A new generation of data processing service providers emerged to expose information systems to the public at large rather than only serve internal constituents. These new "Dot-com's" also needed to deliver self-documenting user experiences, and had an interest in making their offerings as broadly accessible as possible. What they lost in capability with the Web browser, they compensated for with the value of instant global reach.
IV. When software is for individuals serving individuals
But the Web browser is not the end-all. Under some circumstances, software creators need to deploy desktop client software. The quality of the user experience seems to rise to the extent that software considers the needs of individuals over organizations. A new category of software enables individuals to serve each other directly without any organizational or instititutional intermediaries. One of the more stunning examples is Internet file-sharing software. Here the concerns of individuals outweigh the needs of not just organizations, but entire industries -- and governments must step in to arbitrate.
This last quadrant of activity is quite new, and in some cases is referred to as "social software". Individuals now routinely serve each other in a growing variety of online activities. While there are risks associated with these 'unmoderated' interactions, there are also potentially great efficiencies. Surprisingly, the creators of these systems sometimes opt to distribute client software rather than rely on Web interfaces.
From these observations I surmise that institutional incentives impact the quality of the user experience -- the broader the scope of a software solution, the greater the impact of these institutional dynamics, and the more challenging the task of creating an effective user experience. Usability matters. Technology matters. Economics matters. The path of progress can be indirect, though we tend to find it eventually.