Oct 29, 2009
Software designers have become notorious for concentrating on implementation patterns and neglecting the user. It is easy to get lost in grand concepts at an abstract level and get excited over stuff that makes your work as a developer easier; thus, the needs and desires of the “real” users may sometimes take a back seat. Identifying the usability constraints and designing within them keeps the focus on the user.
Users have certain basic likes and dislikes with various types of interaction. They are valid not only with human-computer interactions, but also in real life. Removing what users don’t like and concentrating what they do like is the first step towards improved user satisfaction.
A Usable Architecture
Even though we have decades of experience in software development, we have yet to solve the mysteries of software complexity. In order to develop usable rich Internet applications, it is necessary that the development process be as simple as possible, without neglecting any of the above usability constraints.
Patterns make it easier for the architect by providing them a system in which to store the lessons they’ve learnt. Most software patterns help the designer to cognitively grasp the problems encountered by others, and side-step them. A pattern that reduces complexity for the programmer without allowing them to lose track of the user will benefit the application designer.
To design a complex structure, one powerful technique is to discover viable ways of dissecting it into semi-independent components that correspond to its many functional parts. The design of each part can then be carried out with some degree of independence — as each will affect the others largely through its functionality — and independent of the details of the mechanisms that accomplish the function.
The complexity of the application is reduced when it’s split into less dependent pieces. This separation into manageable parts will also make the application capable of evolution, rather than revolution, as this approach allows easy and small changes to be made.
The question now is: how do we split a rich Internet application so that designing under the above usability constraints becomes simpler? Dividing the application into pages and navigation will help. Each page is composed of data, components, logic, and presentation. The pages are encapsulated in the navigation shell, which again has data, components, logic and presentation.
Visit us at www.xicom.biz to learn more about our company, services and capabilities.