Contribution to The UX Book (2012) by Len Bass from NICTA:
Architectural decisions made early in development [may] preclude the implementation of a usable system. Members of the design team are frustrated and disappointed that despite their best efforts, despite following current best practice, they must ship a product that is far less usable than they know it could be.
This scenario need not be played out if important usability concerns are considered during the earliest design decisions of a system, that is, during the design of the software architecture. Software architecture refers to the internal structure of the software – what pieces are going to make up the system and how they interact. The relationships between architectural decisions and software quality attributes such as performance, availability, security, and modifiability are relatively well understood and taught routinely in software architecture courses.
However, the prevailing wisdom in the last 25 years has been that usability had no architectural role except through modifiability; design the UI to be modified easily and usability will be realised through iterative design, analysis, and testing. Software engineers developed “separation patterns” or generalised architecture designs that separated the user interface into components that could change independently from the core application function.
The Model-View-Controller (MVC) pattern is an example of one of these. Separation of the user interface has been quite effective and is used commonly in practice, but it has problems: (1) there are many aspects of usability that required architectural support other than separation and (2) the later changes are made to the system, the more expensive they are to achieve. Forcing usability to be achieved through modifications means that time and budget pressures are likely to cut off iterations on the user interface and result in a system that is not as usable as possible.
If you enjoyed this article please share it with your friends and colleagues.