How do you know what to build of your customer wants a “secure solution with a good amount of flexibility and user-friendliness”? You don’t! Force the customer to be more specific!
Maximizing customer value is one of the most important guiding principles in agile development practices. After some years with experience with agile practices, we now see that an exclusive focus on value expressed as functionality can seriously undermine the quality of the software product. This manifests itself as bad usability, poor performance or unchangeable software.
This has led to a slightly stronger focus on code quality and software architecture to solve these issues. But in all project environments resources; time and money, are limited and the owners of the project initiative want value for money. Quality is also perceived as a technical or architectural issue not something the product owner should care (or know something) about.
It is much more difficult to measure quality compared to time, cost or functionality, so it’is hard to know if you’re delivering software with sufficient quality or not. And if you can’t measure quality it’is difficult to challenge your development team on it. This is where measurable quality requirements come to the rescue.
This talk suggests how you handle and formulate quality requirements in a way that lets the customer
* prioritize between different quality attributes
* prioritize between quality and cost
* measure if acceptable quality is delivered
I will also explain the clear distinction between two types of non-functional requirements, constraints (technology, design, architecture) and quality requirements.
Video producer: http://2013.javazone.no/program.html