Thursday, November 27, 2014

What is Quality in Agile?

Members of software development teams define the quality of their team's software as conformance with user/business requirements. Mike Cohn [2] prefers Joseph Juran's definition of quality as "fitness for use," which is broader than conformance with requirements. 

Total Quality 


Jim Highsmith [1] defines quality in a much broader sense. In his view, total quality has two aspects:
  • Extrinsic Quality (Value to Client, Observable, Objective)
    • Functionality
    • User Experience
  • Intrinsic Quality (Subjective, not Visible Immediately)
    • Reliability
    • Adaptability
    • Reducing Technical Debt [4]

Quality - Personal View


John C Maxwell [3] defines Quality as: I haven't cheated you, I haven't cheated myself and I have done my very best. 

Adapting John Maxwell's definition of quality to an agile team for software development:
  • We have professional/moral obligation to the business to deliver good quality software (not cheating the business)
  • We have introduced fewer bugs and have not increased technical debt (not cheating ourselves)
  • We should be satisfied that we did our best as a team (doing the best)


Quality Involves More Than Testing


It is important to note the difference between quality assurance and testing. Testing usually involves ensuring that the software built conforms to requirements and is reasonably fit for use. Ensuring that the end product is of good quality involves a lot more than testing (including continuous testing) - good architecture, good design, good code, good team, and good process.

Quality - Holistic View


In Agile teams, the following principles illustrate that we need to take a broader and holistic view of quality:

  • Product is fit for use
  • Everyone tests, and testing is a way of life, and it is done continuously
  • Quality is the responsibility of the entire team (you don't need a separate Quality Police)
  • Quality has to be built in from the start - idea, architecture, design, coding, testing, to delivery
  • Quality should be built into the process - it is not something done at the end of the process
  • Platform/Product reliability and adaptability (to future changes) are not compromised to meet a deadline
  • Simplicity, emergent design, continuous striving for technical excellence - principles that help in building quality implicitly

Overall, the best proof of quality is when the team has enjoyed the journey and is proud of what they delivered.


References
  1. Agile Project Management by Jim Highsmith, 2010
  2. What is Quality, Mike Cohn's Blog
  3. John C Maxwell Minute Video
  4. Technical debt


1 comment:

  1. Check out our Betmaster review to study more about its loyalty free spins, banking options, & more. Choose among the many greatest 29 on-line casinos available in South Korea to play for real money. The on-line casino competition is fierce, and operators should struggle tooth and nail for brand spanking new|for brand new} gamers. As many international on-line casinos search to accommodate the big Korean player base, many operators allow prospects to play with South Korean received. If the received is unavailable, you are be} free to make use of a special currency corresponding to USD 1xbet korea or EUR.

    ReplyDelete