The development of interactive systems entails finding a balance between factors such as the requirements, available resources and time-to-market. Agile development methods master the challenge posed by these competing aspects: they enable development of the best possible product in the given time schedule and also allow it to be adapted optimally to the needs of customers.
Although the quality of the user interface (UI) plays a key role in this, it is not just the implementation of the correct functions that is paramount. A high user experience (UX) is equally important. User experience describes the perceptions and reactions of the software users, such as whether they find it fun or enjoy the experience in aesthetic terms. This aspect is determined by an application’s functionality, presentation and interactive behaviour.
The level of UX is also dependent on the aims, attitude and previous experience of the user. As a quality criterion it is related to the standard for software usability (DIN EN ISO 9241-210).
In projects with somewhat loose requirements, procedures following the philosophy of ‘inspect and adapt’ offer a good basis for iterative development. As empirical methods are right at the heart of both agile methods and UX design, the two approaches can be combined very effectively.
In this respect, the UX expert plays a crucial role. If he/she works closely with the development team, everyone benefits from transparent, inter-disciplinary communication and from knowledge transfer.
As a coach for those responsible for products, the UX expert can influence business goals at an early stage or take part in the programming of the UI as an integral member of the group. This ensures that the needs of users are sufficiently taken into account when decisions are taken and that the content of the individual versions is also planned on the basis of UX priorities.
A pre-requisite for the integration of the two methods is a common product vision, one in which an excellent UX is included. Such a vision ensures that the two disciplines are committed to the agile development of software with a high level of quality both in terms of operation and user experience.
A critical factor for success is the direct contact between agile developers, UX experts and stakeholders at an early stage of the project. The most effective way of creating a common understanding is for the participants to exchange views in discussions assisted by text-based and graphic modelling techniques.
Agile user stories describe features in a concise form from the point of view of the customer. These are supplemented by usage scenarios, which outline the desired usage sequence by means of multiple text-based user stories in a sort of script, thus making initial assumptions about the look and feel of the software. With both models combined, the UI concept is described in a form that is understandable for everyone.
UX experts usually make use of personas in usage scenarios, especially if the actual end-user in a project is not tangible. In such cases, personas are used as fictive user profiles in order to retain focus on the user needs and UX goals. The persona descriptions can be written on index cards and easily made available to all participants.
The use of a UI storyboard can also assist with modelling the dialog flow. For this, the user stories are allocated one or more dialog steps. The previously defined usage scenarios serve in this respect as guidelines. The components of the storyboard are detailed during the development and thereafter implemented in an iterative and incremental manner.
Sustainable architecture is a pre-requisite for powerful software and the UI is the pre-requisite for a high UX. Both elements must therefore be ensured at an early stage. The UI concept shows how the architecture must be configured in order to attain the required UX. Pre-studies and so-called UI and architecture spikes help investigate the complexity of and the risk involved with various prospective solutions before a decision is made about the system and client technology to be used.
Agile methods emphasise transparency, including in terms of measuring project progress. The so called ‘definition of done’ is used to define all the activities that are required for successful approval of the project output. Only when these have been implemented is a user story complete and the progress can be recognised.
Agile projects usually use three acceptance criteria: firstly implementation, secondly customer approval and thirdly acceptance in terms of quality assurance. In order to accommodate the integration of UX, a fourth criterion is also included: UX accepted. Only once this criterion is fulfilled is it permitted for the user story to be presented at a showcase.
The UX acceptance conditions are defined for each individual user story. The traditional form of ‘As a user, I want, so that’ as a description of the customer requirements and ‘Given, when, then’ for acceptance criteria are no longer sufficient. In particular for applications with interactive UIs, the user stories require a paper-based prototype in order to provide orientation assistance in the course of the development process.
In complex projects, detailed prototypes can also be created with UI tools, with these prototypes acting as visual specifications and providing interdisciplinary means of communication that result in a reduction of text-based documentation.
Development can run in parallel
|
|
Iteration n |
Iteration n+1 |
Iteration n+2 |
EXPLORATION |
Start development |
Current Iteration |
DEVELOPMENT |
Development complete |
|
UI Concept UI storyboards Usage scenarios |
|
UI Business Domains Persistence System Metaphors Architecture Spikes Prototypes |
|
While the developers implement selected components (in iteration n), the UX experts prepare further iterations. This allows, for example, important user studies to be carried out for the iteration after next (iteration n+2).
The UX experts can already configure definite UI elements for the next iteration (n+1) and develop interactive prototypes. These then serve as interactive specifications. This helps the two disciplines to work in harmony with each other and avoids the need for UX integration resulting in periods of development inactivity.
Of course the UX experts don’t just provide the developers with new concepts and designs; they also carry out usability tests on the modules that have already been developed (for example those from iteration n-1) and provide feedback from these tests.
Evaluation techniques that can be easily implemented, such as expert reviews and usability inspections, provide UX quality control. These also guarantee that alternative solutions for the UI are also taken into consideration.
The transparent cooperation and availability of the UX experts ensure that all the usability requirements are met. The UX should not be forgotten when reviewing projects either: what went well? What could have been better and how can corresponding improvements be made?
Both agile methods and UX make significant contributions to a large number of projects. Furthermore, these approaches are very flexible and can easily be extended.
Thanks to the combination of agile methods and UX practices, it is possible to develop user-friendly software even in difficult conditions. In order to really pursue agile UX, intensive communication is required as well as close cooperation and plenty of experience in both disciplines.