Project Software Quality Management in Agile and Waterfall
Modern software development is a very complex and diverse industry. Every software development project requires having some criteria of its estimation. That is why project software quality management is extremely important for software development projects. In this article, we will tell you about its goals and activities in detail. But before doing that, we should define the criteria of software quality.
The first thing you need to know about software quality is that there are no universal criteria for it. Every software product has its own acceptance criteria. The customer is the only person who formulates them. However, such approach is typical only for traditional methodologies of software development like Waterfall. In Agile methodologies things are different because they involve both the customer and the final users into the process of software development.
Agile developers use user stories to understand the needs of final users. The customer or his representative (called the Product Owner) is the person responsible for gathering user stories and prioritizing them in the product backlog. That is why in Agile projects the level of customer acceptance of the final production is usually higher than in Waterfall projects.
The only quality criteria that is common for all software development methodologies is uninterruptable work of final software products.
Now, as we know the quality criteria of various software development methodologies, let’s discuss project software quality management.
The main goal of project software quality management is to make the product acceptable for the customer and the final users. To achieve this goal project quality managers have to control the process of software development.
Testing is an important part of this control. It is usually conducted at the last stages of software development projects. However, in Agile projects the testing procedures take place after every iterative cycle.
Regardless of the methodology you use, the main task of testing is to detect defects that can impact the product’s functionality negatively. This is the simplest part of the testing procedure because it is fully automated. Modern issue tracking systems are capable of detecting any defects and reporting on them without human involvement.
However, software quality managers also have to conduct acceptance tests. They cannot be automated because software products have different acceptance criteria.