I have recently been working on a new methodology for the analysis of commercial video games in order to uncover mechanisms used to support learning. I am calling this new approach Instructional Ethology. It combines
structural analysis based on black box reverse engineering (adapted from ontological excavation) with behavioural analysis based on an adaptation of the basic approach to studying animal behaviour. (For more as it develops see: http://www.minkhollow.ca/KB/PhD/Thesis07/doku.php?id=thesis:06.methodology)
It occurs to me that this methodology could also have much broader applications in software generally – as a way to analyse usability. It obviously needs development and lots of testing, but as far as I know *no-one* has thought off applying ethological techniques to program behaviour. As for “Why ANIMAL behaviour and not human behaviour studies?” Animals can’t talk to us so all we have is observations of behaviour. This is the same position that most users of software are in – they have no clue what is happening underneath (nor should they have to, mostly) so code analysis is unlikely to provide insights to making software more usable/intuitive/comprehensible to users. So perhaps, software ethology has some potential.
There is a wonderful article about Usable GUI design at http://benroe.com/files/gui.html; one of the best things to remember is:
The most basic point in all computer UI design is that the user does not want to use your application. They want to get their work done as quickly and easily as possible, and the application is simply a tool aiding that. The more you can keep your application out of the way of the user, the better. Effort spent on using your application is effort not spent on the work the user is trying to do.
This connects very nicely with studying UI design by studying the behaviour of the program.