One of the most interesting recent developments in the software industry is the change in focus from processes and tools to users and usability. One solution is to follow the advice of David Platt and other prominent thought leaders on the subject. But there is more to the story; results from Cognitive Science help us understand the inner workings of the mind better as such allowing us to create superior user interfaces.
We are constantly being inundated with all kinds of important data: software performance tests, website statistics, usability studies, and more. Transforming this information into usable user interfaces can be a challenge.
One approach to help inspire solutions to this problem is to become a student of the “Cognitive Dimensions of Notation.” Thomas R.G. Green and Marian Petre came up with fourteen ways in which software, user interfaces, and programming languages can be analyzed. Once the data gathered from your users, has been framed in the context of the fourteen cognitive dimensions, you can determine how to improve your software to create the best user experience.
Congnitive Dimensions cover a wide spectrum of ideas: Viscosity, is quite apparent when doing any type of programming. Changing the name of a variable or class often requires scouring the code for other instances in order to prevent compiler errors. Modern IDEs help eliminate Viscosity by providing intelligent features such as AutoComplete and Refactoring/Renaming. But be careful! Each Cognitive Dimension has tradeoffs. Adding new features results in more concepts for your user to learn and therefore a higher Abstraction Gradient. A careful analysis of your software is necessary to determine what Dimensions are the most important to your users.
These ideas have helped me improve the software I have been working on and communicate my ideas more effectively. I recommend reading as much as possible on the topic. I’ll help get you started by writing more on each of the Cognitive Dimensions in the upcoming weeks.