Agile Quality and Risk Management


Published on

Traditional approaches to quality and risk management involve quality gates, change control boards, feature freeze and code freeze milestones, and independent QA or Test groups. These approaches stabilize quality at by sacrificing agility.

Yet buggy fragile code is even more dangerous for Agile teams where so much is changing so often. Quality and risk management are critically important for agility.

This leads to the inevitable question: if the traditional approaches to quality and risk management don't work in an Agile context, what does?

Practices vary across organizations, but all successful teams emphasize the same underlying principles of fast feedback, high visibility, collaboration, and alignment. This talk examines various approaches Agile teams have taken to increase quality, mitigate risk, and ultimately ensure they are delivering the highest possible value for their stakeholders.

Published in: Technology, Business
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Agile Quality and Risk Management

  1. 1. Agile Quality and Risk Management Elisabeth Hendrickson Blog: Twitter: @testobsessed Slides Last updated August 6, 2013 copyright © 2013 Elisabeth Hendrickson Available from:
  2. 2. Who Am I? Author Recovering Consultant Director, Quality Engineering ElisabethHendrickson@testobsessed
  3. 3. Quality Attributes (“…ilities”) Internal makes software development more predictable & efficient Maintainability Reusability Portability Integrity Consistency Testability Modifiability External improves the value of the software to an external customer or user Dependability Reliability Security Usability Accessibility Scalability Performance ElisabethHendrickson@testobsessed
  4. 4. Risks Distilled Costs too much time or money Fails to deliver needed value Causes loss ElisabethHendrickson@testobsessed
  5. 5. Four Big Factors in Risk Ambiguity Dependencies Assumptions Capacity ElisabethHendrickson@testobsessed
  6. 6. Agile? ElisabethHendrickson@testobsessed
  7. 7. What Agility Looks Like Frequent delivery of value At a sustainable pace While adapting to the changing needs of the business ElisabethHendrickson@testobsessed
  8. 8. Recurring Themes Feedback Visibility Alignment Collaboration ElisabethHendrickson@testobsessed
  9. 9. ElisabethHendrickson@testobsessed Speculation BuildupSpeculation Analyze Design Implement Stabilize Big Bang Release
  10. 10. Every. Single. Time. Empirical Evidence speculation! ElisabethHendrickson@testobsessed
  11. 11. Agile eliminates speculation buildup… Speculation ElisabethHendrickson@testobsessed
  12. 12. When “Done” isn’t Really Done Speculation Iterations… Stabilize ElisabethHendrickson@testobsessed
  13. 13. If You Can’t Do Continuous Delivery… Rehearse Delivery
  14. 14. Practice: Automated Testing Automatically check that all previously met expectations are still met. ElisabethHendrickson@testobsessed
  15. 15. GUI Tests Partial-Stack Integration Tests Unit (Micro) Tests The test automation pyramid, first published by Mike Cohn. A Strategy for Cost-Effective Test Automation ElisabethHendrickson@testobsessed
  16. 16. Practice: Test First Test Driven Development (TDD) Acceptance Test Driven Development (ATDD) Behavior Driven Development (BDD) ElisabethHendrickson@testobsessed
  17. 17. Tests Express Expectations and Responsibilities The HTML5 features don’t work on IE 2 Urm, so . . . ?
  18. 18. It All Starts with the Story As a I want So that Acceptance Criteria •  •  •  • 
  19. 19. Quality, Capabilities, and Lack of Alignment Implementation Actual Need Intentions ElisabethHendrickson@testobsessed ??? ???
  20. 20. Practice: Continuous Integration Stop the line on red. ElisabethHendrickson@testobsessed
  21. 21. Example Board
  22. 22. Radiators
  23. 23. Version All Technical Assets *WITH* the Code Unit Tests Production Code Source Control Repository (Plus All other technical assets) Test “Fixture” Code Acceptance Tests ElisabethHendrickson@testobsessed
  24. 24. Tested is Part of Done Tested =  + Checked Explored ElisabethHendrickson@testobsessed
  25. 25. Practice: Exploratory Testing Simultaneously… learning about the software while designing tests and executing them as micro-experiments using observations from the last test to inform the next all in a session guided by a charter ElisabethHendrickson@testobsessed
  26. 26. Exploratory Charters Explore < feature, interaction, etc. > With < resources, constraints, etc. > To discover < information > ElisabethHendrickson@testobsessed
  27. 27. Bugs Requirements Practice: Single Stream of Work Backlog Story Story Story Story Story Story Story Story Story Story THIS NOT THIS ElisabethHendrickson@testobsessed
  28. 28. Feedback Loops Local Unit Tests Secs- Mins Mins CI Build Mins- Hrs System Regression Hrs- Days Exploratory Testing ElisabethHendrickson@testobsessed
  29. 29. Tighten Feedback Loops (Example) Code Review Check in on Private Branch Unit Test Merge Unit Test System Test System Test in Local Env Check into Master Run local tests CI Runs All Tests Pair BEFORE: days - weeks AFTER: mins - hours ElisabethHendrickson@testobsessed
  30. 30. Four Big Factors in Risk Ambiguity Dependencies Assumptions Capacity ElisabethHendrickson@testobsessed Define Acceptance Criteria for Stories. Test First. Integrate Continuously. Tighten Feedback Loops. Deliver Frequently. Create Visibility. Collaborate. Have a Single Stream of Work. Work to Done.
  31. 31. Agile Mitigates Risks Costs too much time or money Fails to deliver needed value Causes loss Fail Fast. Deliver Frequently. Explore. Learn. Iterate. ElisabethHendrickson@testobsessed
  32. 32. Further Reading