weaning legagy platform from offshore qa

37
Weaning a Legacy Platform from Traditional Offshore QA January 31, 2012

Upload: d215steinberg

Post on 23-Jul-2015

202 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Weaning Legagy Platform From Offshore Qa

Weaning a Legacy Platform from Traditional Offshore QA

January 31, 2012

Page 2: Weaning Legagy Platform From Offshore Qa

The Agile Quality Ideal

•Unit Tests

•Integration Tests

•Story/Acceptance Tests

•The development team “owns” quality

Page 3: Weaning Legagy Platform From Offshore Qa

The Agile Quality Ideal – Where is QA?

Traditional QA Responsibilities:

• Verifying functionality

• Verifying bug fixes

• Regression Testing

Nearly obsolete?

Page 4: Weaning Legagy Platform From Offshore Qa

The Agile Quality Ideal – A possible role for QA

Page 5: Weaning Legagy Platform From Offshore Qa

Why was offshore QA a good idea in the past?

Little or no test coverage

Fear of refactoring

Code rot

Changes introduce bugs

Copious regression testing needed

Page 6: Weaning Legagy Platform From Offshore Qa

Why was offshore QA a good idea in the past?

Manual regression testing

Offshore QA

•3X cheaper

•Overnight feedback

Page 7: Weaning Legagy Platform From Offshore Qa

Why is offshore QA an impediment now?

• Development team produces functionality

• QA team assures quality

Page 8: Weaning Legagy Platform From Offshore Qa

Why is it so hard to abandon the offshore QA model?

• Low test coverage and brittle code are realities – They don’t change overnight

• All-hands-on-deck cleanup effort is impractical – Business must go on

Page 9: Weaning Legagy Platform From Offshore Qa

Practical steps to wean platform from offshore QA

Three-step plan:1. Establish development team as a

Quality organization

2. Establish development team as a “Quality Assurance” organization

3. Find a new value-adding role for offshore QA staff

Page 10: Weaning Legagy Platform From Offshore Qa

Constant improvement of code cleanliness / test coverage

a. Opportunistic legacy rescue

b. Scheduled/budgeted cleanup

c. Culture of bug prevention

Page 11: Weaning Legagy Platform From Offshore Qa

Opportunistic Legacy Rescue: The Hippocratic Oath

First, do no harm

Page 12: Weaning Legagy Platform From Offshore Qa

Opportunistic Legacy Rescue: The Boy Scout Principle

Always leave the campsite cleaner than how you found it.

Page 13: Weaning Legagy Platform From Offshore Qa

The legacy rescue catch-22

Page 14: Weaning Legagy Platform From Offshore Qa

The legacy code change algorithm

From Michael Feathers, Working Effectively with Legacy Code

1. Identify change points

2. Find test points

3. Break dependencies (safe refactoring)

4. Write tests

5. Make changes and refactor

Page 15: Weaning Legagy Platform From Offshore Qa

Opportunistic Legacy Rescue: Not enough

• Business expects a certain velocity

• Large-scale refactoring is expensive

• Can’t absorb within context of story development

Page 16: Weaning Legagy Platform From Offshore Qa

Budget for cleanup

• One pair dedicated to large-scale refactoring and code cleanup

• Team prioritizes cleanup items to tackle

• Pair addresses issues one-by-one

Page 17: Weaning Legagy Platform From Offshore Qa

Creating a culture of bug prevention

• Scrum Kanban

• Newly-introduced bug goes to top of priority queue

• Bug backlog stays in control

• Bugs become painful

Page 18: Weaning Legagy Platform From Offshore Qa

Feeling the pain

• Developers: Increase efforts toward bug prevention

• Business owners: Support bug prevention efforts (e.g. refactoring)

Page 19: Weaning Legagy Platform From Offshore Qa

Practical steps to wean platform from offshore QA

Three-step plan:1. Establish development team as a

Quality organization

2. Establish development team as a “Quality Assurance” organization

3. Find a new value-adding role for offshore QA staff

Page 20: Weaning Legagy Platform From Offshore Qa

Adoption of “QA-type” responsibilities by the development team

a. QA lead in team room

b. Co-owned Selenium test suite

c. “QA hats” for developers

Page 21: Weaning Legagy Platform From Offshore Qa

QA lead in team room

• Owns QA process

• Provides direction to QA team

• Provides instant, face-to-face feedback to developers

• Diffuses us vs. them conflicts

• Collaborates with developers in writing Selenium tests

• Coordinates exploratory testing

Page 22: Weaning Legagy Platform From Offshore Qa

Selenium test suite

• Co-owned by Development and QA

• Developers responsible for adding tests as per their judgment

• Selenium tests run on CI server

• Failures require immediate attention

Page 23: Weaning Legagy Platform From Offshore Qa

Developers put on “QA hats”

1. Peer verification2. Exploratory testing

Page 24: Weaning Legagy Platform From Offshore Qa

Peer verification

• In workflow, between DEV Completion and Business Verification

Page 25: Weaning Legagy Platform From Offshore Qa

Exploratory testing by team

• ½ hour per week

Page 26: Weaning Legagy Platform From Offshore Qa

Benefits of developers wearing QA hats

• Developers assume ownership of quality

• Quality gaps become more visible to developers

• Team develops mindset toward quality

• Detect bugs that would otherwise have gone offshore

• Offshore team’s load is lightened

Page 27: Weaning Legagy Platform From Offshore Qa

Practical steps to wean platform from offshore QA

Three-step plan:1. Establish development team as a

Quality organization

2. Establish development team as a “Quality Assurance” organization

3. Find a new value-adding role for offshore QA staff

Page 28: Weaning Legagy Platform From Offshore Qa

But we like our offshore QA team

• Long-standing relationship

• Domain knowledge

• Inexpensive

• We want to make their current role irrelevant, not make them irrelevant

• How can we leverage them to provide value in our new Agile world?

Page 29: Weaning Legagy Platform From Offshore Qa

Re-training offshore QA team to take on value-adding roles

a. Second line of defense

b. Performance testing

c. “User-centric” regression tests

Page 30: Weaning Legagy Platform From Offshore Qa

Second line of defense

Page 31: Weaning Legagy Platform From Offshore Qa

Writing, maintaining and executing performance tests

Page 32: Weaning Legagy Platform From Offshore Qa

Writing and maintaining automated “user-centric” regression tests

Page 33: Weaning Legagy Platform From Offshore Qa

The offshore QA challenge

Update your skills or become obsolete

Page 34: Weaning Legagy Platform From Offshore Qa

So how are we doing?

Size of offshore QA team Before November 2010: 16

November 2010 – June 2011: 8

Since June 2011: 4

Unit test coverage June 2011: 18%

January 2012: 36%

Page 35: Weaning Legagy Platform From Offshore Qa

Production high/critical bugs created vs. resolved

Page 36: Weaning Legagy Platform From Offshore Qa

All high/critical bugs created vs. resolved

Page 37: Weaning Legagy Platform From Offshore Qa

Q & A

שו'ת

Making Web Applications Accessible37