Minimal IT logo and link to home page
Research, training, consultancy and software to reduce IT costs
Home | About | Newsletter | Contact
Previous | Next Printer friendly
29 January 2013

Applying POLA

By Andrew Clifford

The principle of least astonishment (POLA) is a simple concept for making computer systems more usable.

POLA states that the way that people use a computer system should match how they expect the system to work.

POLA may seem simplistic, but it is actually very practical. To illustrate this, we have been thinking what we need to do to Metrici to make it easier for new developers and to make it easier to take on more customers. Some of the challenges we face are usability challenges, and they can be expressed in terms of POLA. Here are some examples.

It is least astonishing if you can install products from an app store. Internally, Metrici has separate concepts of subscription (which gives you the right to use a product), and installation (which creates an instance of a product). However, what people expect is to go to an app store and click on "install".

It is least astonishing if account creation creates a usable account. When you create an account in Metrici, it is completely empty and you have to populate it with initial data structures before it can be used. It would be much more usable if account creation also created the data structures.

It is least astonishing if copy options are available on the copy command. Metrici has a simple copy function, but also a more advanced export/import service with more options such as data merging and intelligent recursive copy. The export/import service is only available by typing XML into an administrative screen. Integrating this into the copy function would make it more usable.

It is least astonishing if you can create items inside directories. In Metrici, everything is an object called a node, and each node is mapped to a web page. Nodes are used to contain or package other nodes (like directories), and nodes are used to describe the type of nodes. If you are on a package page and want to create a new item, you have to navigate to the page for the type for the new item and then select what package you want to put it in. It would be much more usable if you stayed on the package page and selected what type of new item you want.

It is least astonishing if documentation is complete and correct. Our documentation is reasonable, but there are some omissions, a few areas are not up-to-date, and some documentation is not published with the rest. Developers would find the system more usable if all the documentation was there and correct.

POLA is all to do with usability rather than functionality. The examples above add very little to what Metrici can do. They involve presenting functionality to match how it is used rather than its internal design, exposing hard-to-use features better, putting options in the right place, and a little bit of cleaning up.

POLA is a good place to start when improving usability. There are times when you need to write new functions or finesse the user interface. But a lot of usability is more down-to-earth, getting the system to do what it does in a less surprising way. POLA is a great way of thinking about that.

Next: Technologies for incremental development


To subscribe to the newlsetter, simply send an email to
Privacy policy

Subscribe to RSS feed

Latest newsletter:
Representing table structures in memory

The design challenges Metrici has faced with summary data are common to lots of systems, and the solution we have adopted could be used elsewhere.
Read full newsletter

System governance

System governance helps you implement high-quality systems, manage existing systems proactively, and improve failing systems.

Try it for free!

Find out more