Overview
The term “adaptation” in computer science refers to a process where an interactive system (adaptive system) adapts its behaviour to individual users based on information acquired about its user(s) and its environment. Adaptation is one of the three pillars of empiricism in Scrum.
The need for adaptation
A software system passes through a potentially long software engineering cycle and before delivery, requirement engineers, designers and software developers realize the components of the system. However, it is impossible to anticipate the requirements of all users, and a single best or optimal system configuration is impossible. The active involvement of users and clear understanding of user and task requirements is a challenge in the development of computer-based interactive systems for two reasons:
The potential user groups may not be known at the start of the project, and would need to be identified according to future scenarios of how the software system will be used. These groups need to be revised as the system design evolves because there may be various groups of potentially affected users.
The design of the project may include substantial changes compared to the users’ current experience of a system; therefore, users may not be confident and precise about their needs concerning this future system.
With their norm for "Human-centred design processes for interactive systems" the International Organization for Standardization gives guidance on user-centered design activities throughout the life cycle of computer-based interactive systems. One of the core tasks of user-centred design is to negotiate and facilitate the communication across the well-known user-developer gap while acknowledging the different forms of expression and different requirements on each side. However, despite the implementation of a human-centred design process, some types of modern applications require instant adaptation due to their exposure to increasing situational dynamics.
From Wikipedia (CC BY-SA 4.0).