Agile software development is a methodology that emphasizes on iterative and incremental development, frequent inspection, and adaptation. It focuses on delivering working software frequently, responding to changes in requirements, and collaborating with the customer throughout the development process.

The main purpose of agile is delivering and exchange value with customers. Mostly value is associated with features. This is what customer will ask for and this is what customers will notice. Everything else such as reliability, maintainability, scalability, performance, security, and usability just needs to be build in. These aspects of software will only be notice if absent and a problem occurs. Therefore, we must make sure that the implementation of soft aspects is part of software development. However, developing software with agile methodology does not guarantee the quality of the software. Therefore, it is important to pay attention to quality attributes in agile software development. In this blog post, we will discuss how to achieve quality attributes in agile software development.

What are quality attributes?

Quality attributes are the non-functional requirements of a software system. They are the characteristics that define the quality of the software, such as reliability, maintainability, scalability, performance, security, and usability. These attributes are essential for the success of the software system, as they determine how well the software meets the needs of the users.


ISO/IEC 25000 is a standard that provides guidelines for software quality requirements and evaluation. It is also known as the Software Product Quality Requirements and Evaluation (SQuaRE) standard. The standard describes a framework for evaluating the quality of software products based on eight quality characteristics, which are:

  • Functionality: The degree to which the software satisfies specified requirements.
  • Reliability: The ability of the software to perform its required functions under stated conditions for a specified period.
  • Usability: The degree to which the software is easy to learn, understand, and use.
  • Efficiency: The degree to which the software performs its functions with appropriate speed and resource utilization.
  • Maintainability: The ability of the software to be modified or enhanced easily and effectively.
  • Portability: The ability of the software to be transferred from one environment to another.
  • Compatibility: The degree to which the software can operate with other software, hardware, and systems.
  • Security: The degree to which the software protects against unauthorized access, use, disclosure, disruption, modification, or destruction.
Es wurde kein Alt-Text für dieses Bild angegeben.

Developing software that meets the quality attributes outlined in ISO/IEC 25000 can be a challenging task, particularly when using an agile development approach. However, with careful planning, attention to detail, and a focus on quality throughout the development process, it is possible to achieve a high-quality software product that meets or exceeds the expectations of its users.

Here are some key steps to follow when developing software using an agile approach that meets the quality attributes outlined in ISO/IEC 25000:

Define and prioritize quality attributes: Before starting the development process, it’s essential to define and prioritize the quality attributes that are most important for the software product. This involves working closely with stakeholders to understand their needs and expectations, and using this information to determine which quality attributes are most critical.

Prioritising quality attributes especially involves deciding whether to develop another feature or spend time on security, reliability, etc.

Incorporate quality throughout the development process: One of the key principles of agile development is to prioritize quality throughout the development process. This means incorporating testing, code reviews, and other quality control measures into each stage of the development process, rather than treating it as an afterthought.

Use iterative development: Iterative development is a key part of the agile methodology, and it can be particularly useful when working to meet quality attributes. By breaking down the development process into smaller, manageable iterations, it becomes easier to focus on quality at each stage, identify and address issues quickly, and make improvements as needed.

Conduct frequent testing: Testing is a critical part of the development process when working to achieve high-quality software. Agile development emphasizes frequent testing, which allows for issues to be identified and addressed quickly, reducing the risk of defects, and ensuring that the software meets quality standards.

Embrace continuous integration and delivery: Continuous integration and delivery (CI/CD) is another key aspect of agile development, and it can be particularly useful when working to meet quality attributes. By automating the build, test, and deployment process, it becomes easier to identify and address issues quickly, reduce the risk of defects, and ensure that the software meets quality standards.

Monitor and measure quality: Once the software product is released, it’s essential to monitor and measure its quality to ensure that it continues to meet the standards outlined in ISO/IEC 25000. This involves collecting data on key quality metrics, analysing this data to identify areas where improvements can be made, and using this information to guide future development efforts.

In conclusion, developing software that meets the quality attributes outlined requires a concerted effort to prioritize quality throughout the development process. By working closely with stakeholders, incorporating quality control measures at each stage of the development process, and embracing the principles of agile development, it’s possible to achieve a high-quality software product that meets or exceeds the expectations of its users.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert