Easy to:
- change to new or modified requirements
- bring into a new or modified execution environment (e.g. new hardware, operating system or cloud provider)
- handle changed workload
Definition
Capability of a product to be adapted to changes in its requirements, contexts of use, or system environment.
Note: Flexibility to context of use should consider two distinguished aspects, i.e. technical and non-technical. The technical aspect is related with the execution environment of products, such as software, hardware and communication facility; and the non-technical aspect is related with the social environment, such as user and task, and the physical environment, such as climate and nature.
Typical Acceptance Criteria
Flexible, as we saw above, means “adaptable to change”.
When defining what exactly #flexible shall mean for a specific system and specific stakeholders, we need to consider the following questions:
- what type of change (e.g. changed functionality, changed quality requirements, changed workload, changed infrastructure)
- when does this change occur or when do people want to respond to the changes: at development-, compile/build-, installation-, startup- or runtime?
Typical acceptance criteria might include:
- Effort or number/types of changed artifacts to handle changes
- Time or money spent for such changes
- Side-effects on other system properties
Scenario Response Measures from [Bass et al.]
Cost in terms of
- Number, size, complexity of affected artifacts
- Effort
- Elapsed time
- Money
- Extent to which this modification affects other quality attributes
- New defects introduced
flexible for Stakeholders
Stakeholder | (potential) Expectation for flexible |
---|---|
User | |
Product-Owner | |
Management | |
Developer | |
Tester | |
Admin | |
Domain-Expert | |
Others |
Qualities tagged with #flexible
- Adaptability
- Agility
- Analysability
- Changeability
- Co-existence
- Cohesion
- Composability
- Configurability
- Customizability
- Elasticity
- Extensibility
- Flexibility
- Independence
- Installability
- Internationalization
- Localizability
- Longevity
- Loose Coupling
- Maintainability
- Modifiability
- Modularity
- Personalization
- Portability
- Replaceability
- Reusability
- Scalability
- Self-containedness
- Test Coverage
- Testability
- Upgradeability
- Versatility
Requirements tagged with #flexible
- Compatible with 5 different battery providers
- Adaptability
- Compatibility
- Flexibility
- Interoperability
- Configurable UI theme
- Adaptability
- Changeability
- Configurability
- Customizability
- Flexibility
- Core functions can be used on multiple OSs
- Compatibility
- Flexibility
- Interaction capability
- Portability
- Easily change cloud provider
- Adaptability
- Flexibility
- Maintainability
- Efficient change of business rules
- Adaptability
- Changeability
- Configurability
- Flexibility
- Efficient update of annual accounting report
- Changeability
- Efficiency
- Maintainability
- Independent enhancement of subsystem
- Adaptability
- Agility
- Changeability
- Efficiency
- Maintainability
- Independent replacement of subsystem
- Adaptability
- Agility
- Changeability
- Efficiency
- Maintainability
- Localizable to several languages
- Accessibility
- Adaptability
- Flexibility
- Internationalization
- Localizability
- Maintainability
- Modifiability
- Modular System for Data Analysis
- Composability
- Modularity
- Stability
- Portable Business Data Checker
- Adaptability
- Flexibility
- Portability
- User Interface can be used in Current Browsers
- Compatibility
- Flexibility
- Interaction capability
- Interoperability
- Portability