Lean QA: The Agile Way Chris Lawson, Quality Manager
The Quality Problem Agile Overview Manifesto Development Methodologies Process Agile QA Lean QA Principles An Agile QA Framework Summary Q & A Agenda
Poor Quality Symptoms Have you found yourself building something with insufficient quality (bugs) the customer did not ask for because a requirement was misunderstood the customer did ask for, but later realized it was not what they meant and they do not want it now the customer described properly but once they saw it realized that they had asked for the wrong thing the customer did ask for and it was what they meant but now they want something different
Poor Quality Symptoms
Key Principle: Prevention The primary role of QA is not to find defects but to prevent them. Let s make toast American style. You burn, I ll scrape! ~Deming
Agile Manifesto http://www.agilemanifesto.org/
Agile Development An umbrella term for several iterative and incremental software development methodologies Share common vision and core values based on the Agile Manifesto Fundamentally incorporates iteration and the continuous feedback that it provides to successively refine and deliver a software system involve continuous planning, continuous testing, continuous integration, and other forms of continuous evolution of both the project and the software Lightweight and inherently adaptable Focus on empowering people to collaborate and make decisions together quickly and effectively.
Agile Methodologies Scrum Extreme Programming (XP) Crystal Feature-Driven Development (FDD) Dynamic Systems Development Method (DSDM) Kanban Lean Software Development
Agile Mash-Up XP Lean Scrum Agile Practices = Defined Processes
Typical Agile Process Project needs or requirements are expressed in user stories placed in a backlog Developers give high-level estimates saying how long user stories will take to complete. Product owners arrange user stories into incremental releases that take typically 6 weeks to 6 months. Product owners choose the next stories, highest value first, for each development time-box. The stories chosen need to fit into the time-box based on how quickly the team can produce software. At the end of each development time-box the team should have incrementally built some of the product. The team (proudly) demonstrates the finished product to product owners and other stakeholders.
Typical Agile Process Cont. The team adds up the development estimates for the user stories completed during the time-box. This is the velocity (from XP) that ll be used to estimate the amount that can be completed in the next time-box. The team holds a retrospective to evaluate how well they ve done and what changes could be made to the process to allow things to go better, then the next timeboxed development cycle is planned. Time-boxed development continues through to release which is a short way of saying rinse and repeat. There s more common practices, such as daily standup meetings to synchronize the team, and burn-down charts to show development progress.
Agile QA Software teams should "build quality in" their products QA should not be considered as a separate activity Quality Assurance should be a constant process of improving the product QA activities and people should be involved in the development of the product
Lean QA: Putting it Together Principles above Preferences Process Guidance above Process Absolute Prevention above Detection Reusable Lists above Detailed Test Plans Exploratory Testing above Detailed Test Scripts While there is value in the items on the right, we value the items on the left more.
Lean QA Principle #1 Eliminate Waste Avoid heavy documentation such as Test Plans no one refers to after sign-off Develop core artifacts necessary to keep team organized Prevent defects rather detecting them Avoid Managerial overhead Always ask yourself Why are we doing this and what value does it add to the product?
Lean QA Principle #2 Amplify Learning Develop acceptance test criteria or conditions of success prior to writing code Test criteria should be a team effort avoiding review vacuums and silos Accumulation of defects should be prevented by running tests as soon as the code is written Acceptance Exploratory Integration End-to-End
Lean QA Principle #3 Empower the Team Managers listen and respond to teams Encourage/Motivate Remove impediments Provide suggestions for improvement Find good people and let them do their job Open team communication and honesty Individuals can question and challenge team decisions to achieve optimal results
Lean QA: Framework Prioritized User Stories and Defects Acceptance Criteria defined collaboratively via Dev, QA, BA, Customers Tests Executed using Just in Time Philosophy Shippable Product
Are we there yet? Consider a time when you developed code, only to discover later from the customer that what was developed was not what they meant when they asked for it. Make sure this was a time you did not ask the question, How will I know that I ve done that? How would the result have been different if you had asked that question?
Questions?
About the Speaker Chris Lawson currently serves as the Quality Manager at RailInc in Cary, NC. He has served in many technical and managerial QA roles over the past 12 years. He has authored numerous test methodologies and process guidelines for a variety of companies in many industries. Prior to joining RailInc, Chris was the co-founder of a quality assurance and testing consulting firm specializing in QA consulting, staffing, training, and outsourced testing. Contact: chris.lawson@railinc.com
References VersionOne Agile Manifesto Lean-Agile Software Development: Achieving Enterprise Agility Shalloway, Beaver, Trott Quality Assurance and Testing in Agile Projects Pete McBreen