January 31, 2007

Sovereign and transient applications - why SAAS will win

Everything on the web seems to be about AJAX and software as a service (SAAS) these days - but is it just another fad, or will it change the way we work? I think the latter, and I will explain why.

In 1996 Alan Cooper wrote "your programs posture", where he split the programs we use in our daily lives in four distinct categories - Sovereign, transient, daemonic and parasitic. Sovereign programs are the ones we work with for hours on end - Word, Outlook, and Photoshop. They are our main working horses. Transient programs are helper programs that are used for a specific task and then quickly closed again. Calculators and Apple's finder are examples of this. Daemonic programs don't usually require any interaction, but will work quietly behind the scenes. Printer drivers for example. Parasitic programs are small programs that give quiet feedback, such as the clock, or the task manager.

He lays out the design principles for each of these in his essay. Here's an overview of sovereign and transient applications:
Sovereign applications
  • Users are experienced. Since users by definition use the program for extended periods of time they will quickly become experienced users. Certainly everyone will start out as a novice, but only for a relatively brief period of time in relation to the amount of time they will eventually spend in the program.
  • Speed and power. Experienced users know their way around, and need powerful ways of interacting with the program. Keyboard shortcuts, complex controls, and toolbars that may seem daunting at first sight.
  • Muted graphical appearance. Since the user will be staring at the application for hours each day the visual presentation of the program should be muted and subtle. No normal user can stand looking at a bright colored application all day.
  • Rich output environment. The program should give the user little hints about its state in the form of small icons or other graphical representations. These might not be noticed at first, but as the user gains experience he will experimentally interact with them and start using the program more productively.
  • Rich input environment. The input should be controllable in several ways.
Transient applications
  • Users are inexperienced. The program is only used once in a while and users will forget how to use it.
  • Simple controls. The program should be simple to use since it is not used often. Buttons should be marked "print this document now" instead of "print".
  • Self-explanatory. The program should explain itself - a novice should be able to carry out a task in the program without instructions.
  • Large buttons and bright colorschemes. Since the user needs to re-learn the application every time and doesn't spend a lot of time with it cheery colors and large buttons are preferable.

A webbrowser is a special case: The browser itself is a sovereign program - we use it as our main tool for hours on end, but the webpages we look at are mostly transient applications - we go to a specific webpage for the weather, news, gossip, or other information and then leave.

But users can do pretty much everything in a browser that they can do in sovereign programs (maybe with the exception of Graphical designers, 3d artists and a few others) - with the added benefit of being able to better share their work, never have to worry about backups, and being able to work off any computer. So why don't they?

The answer lies in the way we interact with our sovereign programs. When I visit a webpage there is normally a small lag whenever I press a button or a link because a round-trip to the server is needed, and the whole page is redrawn. When I go to weather.com to see tomorrows weather I don't mind because it is a transient task, and I don't have to do it for hours on end. But when I work in a sovereign application this is unacceptable and would drive me nuts in a few days. How would you feel if there was a half second lag in photoshop every time you pressed a button?
If a program that I use for five hours a day has a lag of half a second, or even 1/10 of a second, every time I press a control I will get extremely frustrated. I expect Word to react instantly to my commands. Until a few years ago there was no way around this, and so webdesigners all over the world accepted their fate and designed their websites to be used as transient programs.

But the world has changed, and the technology is now much more advanced than it was just a few years ago. Using ajax technologies it is now relatively trivial to create websites that react just as fast as programs on your computer - the primary barrier for moving applications to the web has fallen. With ajax it is possible to create sovereign applications in a browser that have no discernible disadvantages over installed programs. They even have the added benefits of portability and easy sharing between many users.

But a lot of websites that are building the sovereign applications of the future on the net are making the mistake of treating them as transient applications. Instead of building sites with rich outputs, expert user interfaces and muted graphical experiences, they are stuck in the tradition of making transient applications that are self-explanatory with simple controls and large buttons.

If you are making an application that works in a browser you have the possibility of making a sovereign application instead of a transient one - but you have to design for it.

If you made it all the way to the end you must have found it interesting.

Maybe you would want to Subscribe to this blog


Anonymous Anonymous said...

The question really is whether it's the mainframe ideas reiterated we are seeing

8:37 AM  
Anonymous jim said...

Interesting that you stop before the daemonic, parasitic bit...? I especially like the fact that Cooper/Reimann more or less forgot about them too!

10:46 PM  

Post a Comment

<< Home