Agile QA Presentation v7

67 downloads 367 Views 2MB Size Report
What Agile QA means for Project. Management ... Agile in Practice: the Tip of the Iceberg. • Teams work in ... Ron Jeffries Jon Kern Brian Marick Robert C. Martin.
Agile QA’s Revolutionary Impact on Project Management

Introduction & Agenda • Rachele Maurer – Agile Coach, Platinum Edge Inc. – PMP, CSM, PMI-ACP

• Agenda – A quick overview of agile – Current QA practices – QA using agile techniques – What Agile QA means for Project Management

© All Rights Reserved

What is agile? A very quick overview

Agile in Practice: the Tip of the Iceberg • Teams work in iterations, generally 1-4 weeks long - Each iteration includes design, development, testing and documentation

• Deliver small groups of usable functionality on a regular basis • Self-organizing, cross-functional teams • Close collaboration with the business • Inspect & adapt

© All Rights Reserved

Agile Methodology?

© All Rights Reserved

Common Agile Set

© All Rights Reserved

QA’s Role in Traditional Project Management

Waterfall Methodologies • QA is an unknown that often significantly impacts cost and schedule • Traditionally QA is one of the last phases in a project- just before deployment

© All Rights Reserved

Risk Factors • Significant uncertainty is carried for most of the project • Sunk costs high • Bugs found long after development complete • Fixes are costly – Bugs are harder to find and solve

• Problems jeopardize release date

© All Rights Reserved

The Agile QA Revolution What’s different?

Agile Manifesto “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

› Individuals and interactions over processes and tools › Working software over comprehensive documentation › Customer collaboration over contract negotiation › Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.” Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas © 2001, the above authors this declaration may be freely copied in any form, but only in its entirety through this notice.

Do Not Duplicate | © All Rights Reserved

The 12 Principles of Agile 1.

2.

3.

4. 5.

6.

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is a face-to-face conversation.

7. 8.

9.

10. 11. 12.

Working software is the primary measure of success. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity – the art of maximizing the amount of work not done – is essential. The best architectures, requirements, and design emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

All 12 Principles Support Better QA 1.

2.

3.

4. 5.

6.

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is a face-to-face conversation.

7. 8.

9.

10. 11. 12.

Working software is the primary measure of success. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity – the art of maximizing the amount of work not done – is essential. The best architectures, requirements, and design emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Common Agile Lifecycle

© All Rights Reserved

Agile Iterations • Short: 1-4 week cycles • Throughout each iteration: – Refine requirements – Design – Develop – Test – Integrate

• At the end of each iteration: – Demo + Feedback – Potentially release shippable functionality • Shippable functionality: – Developed – Tested – Integrated – Documented

© All Rights Reserved

Agile Iterations

© All Rights Reserved

Agile Iterations

© All Rights Reserved

Agile Iterations- Visual

© All Rights Reserved

Agile is a Declining Risk Model

© All Rights Reserved

The Agile QA Revolution • Agile is fundamentally changing the definition of progress and the definition of done. • What does project progress mean? - What % complete? • Agile principles inherently promote quality • Working in iterations reduces risk • Automated tools change the nature of QA

© All Rights Reserved

Agile QA Techniques • Test-driven development • Pair programming & peer reviews • Continuous integration through automated testing

© All Rights Reserved

Automated Testing • Daily, robust testing is critical to agile projects • Allows for quick turnaround: – Develop during the day – Do complete automated testing overnight – Fix bugs immediately in the morning

• Can use for: – – – – – –

Unit testing System testing Integration testing Regression testing User acceptance testing Static testing © All Rights Reserved

Agile QA & Risk Reduction • Agile enables early, frequent & robust testing • Sunk costs low • Bugs easier to find • Bugs easier to fix • QA is an integral part of the team and the process • Acceptance criteria is part of requirements • “Done” is truly done

© All Rights Reserved

From a PM Standpoint, This Means… • Ability to do better estimation – Future estimates are based on performance to completion

• Ability to reduce downstream risk in: – – – –

Solution feasibility Schedule Cost Unmet customer expectations

• Ability to systematically increase quality – Automated Test Coverage – Team Retrospectives – Actual Customer Interaction © All Rights Reserved

For More Information…

© All Rights Reserved

Thank you!

© All Rights Reserved