Characteristics of Effective Information Systems

Atom

© Oleg Verbitsky

Article Summary

download PDF

A good architecture for an information system tries to balance the conflicting criteria of functionality, usability, reliability, performance, portability, and maintainability. A "perfect" architecture is a myth, and creating a "future-proof" solution even more so. Ultimately, an architect's goal is to understand the different demands upon a system, and selecting the most important criteria to create a balanced solution.

 

 

Characteristics of Effective Information Systems

A good structure is one that is useful, robust, and beautiful. This simple 2000 year-old definition attributed to the Roman architect Vitruvius, is also true of Information Systems. Users of Information Systems will judge its effectiveness by these 3 criteria, and acheiving a balance between the 3 is the mark of a good Information System.

The balanced Information System

Fig.1: The balanced Information System

A system's usefulness depends upon its functionality (the functions provided by the system), usability (the ease with which functionality can be used) , and maintainability (how easy it is to fix the system if things go wrong). A system's robustness depends upon performance and reliability. When the system ceases to be effective, it must be portable and replaceable. A designer of an Information System must consider these architectural criteria to design effective Information Systems.

Top-level architectural criteria

Fig.2: Top-level architectural criteria

Finding an architectural fit

Some architectural criteria complement each other, such as usability and maintainability. A system that is easy to understand is also one that is easy to maintain. Other architectural criteria are in direct conflict with each other. For instance, the greater the amount of functionality in a system, the poorer its maintainability and performance. Improving the maintainability of a system by making it easy to analyze reasons for unintended behaviour or making the system highly configurable to changing business situations work against the system's performance. A system designer must be able to select the applicable criteria to solve the posed problems most effectively.

An example of 3 conflicting architectural criteria

Fig.3: An example of 3 conflicting architectural criteria

ISO 9126, an open standard for software quality, provides 6 primary architectural criteria that system designers can use to find the best fit. These criteria, and some of their primary concerns, are as follows:

Functionality: What should the system do?

Usability: How easy it is to understand the system?

Reliability: How consistent is the system in doing what it is supposed to do?

Maintainability: How easy is to maintain the system? If things go wrong, is it easy to find out why things went wrong? How easy is it to change the system's configuration?

Performance: How quickly does the system serve the needs of its users?

Portability: How easily can the system be moved from one environment to another?

Architectural Criteria as defined by ISO 9126

Fig.4: Architectural Criteria as defined by ISO 9126

Selecting the right criteria gives real meaning to "Better, Faster, Cheaper"

A system that tries to fulfill every architectural criteria will be a failure. A system designer's primary task is to determine the primary criteria for a given system, and to determine the sequence in which each priority will be addressed. In most cases, functionality should go first, and performance should go last. Customer-facing systems should focus on minimizing functionality to the most necessary, and maximizing usability. High-volume transaction processing systems that do not require human intervention should focus on reliability before any other criteria. The inability of a designer to select the appropriate initial criteria to focus will ultimately result in higher realization costs and poor adoption.

Functionality first, but only so much of it

The more the functionality a system will try to cover, the poorer the usability, performance, portability, maintainability, and reliability. Whittling down the functionality of a system down to its bare essentials will help create an architectural balance, as other architectural criteria can also find their voices.

Too much functionality results in poor usefulness, robustness, and aesthetics

Fig.5: Too much functionality results in poor usefulness, robustness, and aesthetics