SlideShare a Scribd company logo
1 of 37
Weaning a Legacy Platform from
Traditional Offshore QA
January 31, 2012
The Agile Quality Ideal




•Unit Tests
•Integration Tests
•Story/Acceptance Tests
•The development team “owns” quality
The Agile Quality Ideal – Where is QA?




    Traditional QA Responsibilities:
    • Verifying functionality
    • Verifying bug fixes
    • Regression Testing


    Nearly obsolete?
The Agile Quality Ideal – A possible role for 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
Why was offshore QA a good idea in the past?

      Manual regression testing




             Offshore QA


  •3X cheaper
  •Overnight feedback
Why is offshore QA an impediment now?




• Development team produces
  functionality
• QA team assures quality
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
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
Constant improvement of code cleanliness / test coverage




  a. Opportunistic legacy rescue
  b. Scheduled/budgeted cleanup
  c. Culture of bug prevention
Opportunistic Legacy Rescue: The Hippocratic Oath




  First, do no harm
Opportunistic Legacy Rescue: The Boy Scout Principle




  Always leave the campsite cleaner
         than how you found it.
The legacy rescue catch-22
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
Opportunistic Legacy Rescue: Not enough




• Business expects a certain velocity
• Large-scale refactoring is expensive
• Can’t absorb within context of story
  development
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
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
Feeling the pain




  • Developers: Increase efforts
    toward bug prevention
  • Business owners: Support bug
    prevention efforts (e.g.
    refactoring)
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
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
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
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
Developers put on “QA hats”




 1. Peer verification
 2. Exploratory testing
Peer verification




 •   In workflow, between DEV
     Completion and Business
     Verification
Exploratory testing by team




  •   ½ hour per week
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
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
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?
Re-training offshore QA team to take on value-adding roles




 a. Second line of defense
 b. Performance testing
 c.   “User-centric” regression tests
Second line of defense
Writing, maintaining and executing performance tests
Writing and maintaining automated “user-centric” regression
tests
The offshore QA challenge




      Update your skills or become obsolete
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%
Production high/critical bugs created vs. resolved
All high/critical bugs created vs. resolved
Q&A




37   Making Web Applications Accessible

More Related Content

What's hot

How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your OrganizationDalibor Blazevic
 
Fail Fast and Win with Continuous Testing: Uri Scheiner – Jenkins World
Fail Fast and Win with Continuous Testing: Uri Scheiner – Jenkins WorldFail Fast and Win with Continuous Testing: Uri Scheiner – Jenkins World
Fail Fast and Win with Continuous Testing: Uri Scheiner – Jenkins WorldCA Technologies
 
BizDevOps – Delivering Business Value Quickly at Scale
BizDevOps – Delivering Business Value Quickly at ScaleBizDevOps – Delivering Business Value Quickly at Scale
BizDevOps – Delivering Business Value Quickly at ScaleQASymphony
 
QA in an Agile World for Agile and Beyond 2015
QA in an Agile World for Agile and Beyond 2015QA in an Agile World for Agile and Beyond 2015
QA in an Agile World for Agile and Beyond 2015Tom Churchwell
 
Progressive exposure using deployment rings and feature flags
Progressive exposure using deployment rings and feature flagsProgressive exposure using deployment rings and feature flags
Progressive exposure using deployment rings and feature flagsWilly-Peter Schaub
 
Leading the Transformation
Leading the TransformationLeading the Transformation
Leading the TransformationXebiaLabs
 
Better, faster, cheaper. Lean and agile approaches to IT development
Better, faster, cheaper.  Lean and agile approaches to IT developmentBetter, faster, cheaper.  Lean and agile approaches to IT development
Better, faster, cheaper. Lean and agile approaches to IT developmentmarc mcneill
 
DevOps – The Evolution of Agile
DevOps – The Evolution of AgileDevOps – The Evolution of Agile
DevOps – The Evolution of AgileQualitest
 
Pecha kucha format- how can devops be implemented with lean and agile
Pecha kucha format- how can devops be implemented with lean and agilePecha kucha format- how can devops be implemented with lean and agile
Pecha kucha format- how can devops be implemented with lean and agileRavi Tadwalkar
 
Selenium certification program
Selenium certification programSelenium certification program
Selenium certification programshivramm
 
Definition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementDefinition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementChristian Vos
 
Iakiv Kramarenko: “Quality Driven Development”
Iakiv Kramarenko: “Quality Driven Development” Iakiv Kramarenko: “Quality Driven Development”
Iakiv Kramarenko: “Quality Driven Development” Dakiry
 
DevOps Transition Strategies
DevOps Transition StrategiesDevOps Transition Strategies
DevOps Transition StrategiesAlec Lazarescu
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+OpsShalu Ahuja
 
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk:  DevOps large and small - Cambridge SatchelManchester ITExpo Talk:  DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk: DevOps large and small - Cambridge SatchelJwooldridge
 
Jonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and SmallJonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and SmallJwooldridge
 
Testing and DevOps: Organizations and Their Culture Must Change
Testing and DevOps: Organizations and Their Culture Must ChangeTesting and DevOps: Organizations and Their Culture Must Change
Testing and DevOps: Organizations and Their Culture Must ChangeTechWell
 

What's hot (20)

How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your Organization
 
Fail Fast and Win with Continuous Testing: Uri Scheiner – Jenkins World
Fail Fast and Win with Continuous Testing: Uri Scheiner – Jenkins WorldFail Fast and Win with Continuous Testing: Uri Scheiner – Jenkins World
Fail Fast and Win with Continuous Testing: Uri Scheiner – Jenkins World
 
BizDevOps – Delivering Business Value Quickly at Scale
BizDevOps – Delivering Business Value Quickly at ScaleBizDevOps – Delivering Business Value Quickly at Scale
BizDevOps – Delivering Business Value Quickly at Scale
 
QA in an Agile World for Agile and Beyond 2015
QA in an Agile World for Agile and Beyond 2015QA in an Agile World for Agile and Beyond 2015
QA in an Agile World for Agile and Beyond 2015
 
Progressive exposure using deployment rings and feature flags
Progressive exposure using deployment rings and feature flagsProgressive exposure using deployment rings and feature flags
Progressive exposure using deployment rings and feature flags
 
Definition of Done
Definition of DoneDefinition of Done
Definition of Done
 
Leading the Transformation
Leading the TransformationLeading the Transformation
Leading the Transformation
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Better, faster, cheaper. Lean and agile approaches to IT development
Better, faster, cheaper.  Lean and agile approaches to IT developmentBetter, faster, cheaper.  Lean and agile approaches to IT development
Better, faster, cheaper. Lean and agile approaches to IT development
 
DevOps – The Evolution of Agile
DevOps – The Evolution of AgileDevOps – The Evolution of Agile
DevOps – The Evolution of Agile
 
Pecha kucha format- how can devops be implemented with lean and agile
Pecha kucha format- how can devops be implemented with lean and agilePecha kucha format- how can devops be implemented with lean and agile
Pecha kucha format- how can devops be implemented with lean and agile
 
Selenium certification program
Selenium certification programSelenium certification program
Selenium certification program
 
Definition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinementDefinition of Done and Product Backlog refinement
Definition of Done and Product Backlog refinement
 
Iakiv Kramarenko: “Quality Driven Development”
Iakiv Kramarenko: “Quality Driven Development” Iakiv Kramarenko: “Quality Driven Development”
Iakiv Kramarenko: “Quality Driven Development”
 
DevOps Transition Strategies
DevOps Transition StrategiesDevOps Transition Strategies
DevOps Transition Strategies
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk:  DevOps large and small - Cambridge SatchelManchester ITExpo Talk:  DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
 
Jonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and SmallJonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and Small
 
Testing and DevOps: Organizations and Their Culture Must Change
Testing and DevOps: Organizations and Their Culture Must ChangeTesting and DevOps: Organizations and Their Culture Must Change
Testing and DevOps: Organizations and Their Culture Must Change
 
Sample Agile Scrum Certification Exam Questions
Sample Agile Scrum Certification Exam QuestionsSample Agile Scrum Certification Exam Questions
Sample Agile Scrum Certification Exam Questions
 

Viewers also liked

Viewers also liked (6)

Offshore oil rigs
Offshore oil rigsOffshore oil rigs
Offshore oil rigs
 
Offshore Production Platform Risk Management & Safety Services
Offshore Production Platform Risk Management & Safety ServicesOffshore Production Platform Risk Management & Safety Services
Offshore Production Platform Risk Management & Safety Services
 
Introduction to offshore structures
Introduction to offshore structuresIntroduction to offshore structures
Introduction to offshore structures
 
Offshore Platforms
Offshore Platforms Offshore Platforms
Offshore Platforms
 
Fundamentals of Petroleum Engineering Module 4
Fundamentals of Petroleum Engineering Module 4Fundamentals of Petroleum Engineering Module 4
Fundamentals of Petroleum Engineering Module 4
 
Presentation on non destructive testing
Presentation on non destructive testingPresentation on non destructive testing
Presentation on non destructive testing
 

Similar to Weaning Legagy Platform From Offshore Qa

Agile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeAgile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeIndicThreads
 
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspectiveQuali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspectiveQualiQuali
 
How to develop a common sense of "DONE"?
How to develop a common sense of "DONE"?How to develop a common sense of "DONE"?
How to develop a common sense of "DONE"?Dr. Alexander Schwartz
 
DevOps in action - Azure DevOps
DevOps in action - Azure DevOpsDevOps in action - Azure DevOps
DevOps in action - Azure DevOpsXPDays
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterDeclan Whelan
 
A collaborative approach to the quality in the agile enterprise by Jaco Viljoen
A collaborative approach to the quality in the agile enterprise by Jaco ViljoenA collaborative approach to the quality in the agile enterprise by Jaco Viljoen
A collaborative approach to the quality in the agile enterprise by Jaco ViljoenIndigoCube
 
Five Steps to a More Agile Organization: Adopting Agility at Scale
Five Steps to a More Agile Organization: Adopting Agility at ScaleFive Steps to a More Agile Organization: Adopting Agility at Scale
Five Steps to a More Agile Organization: Adopting Agility at ScaleLitheSpeed
 
Scrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful deliveryScrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful deliveryNaveen Kumar Singh
 
A confused tester in agile world finalversion
A confused tester in agile world finalversionA confused tester in agile world finalversion
A confused tester in agile world finalversionAshish Kumar
 
XP Practices as Scaffolding for Breakthrough Companies
XP Practices as Scaffolding for Breakthrough CompaniesXP Practices as Scaffolding for Breakthrough Companies
XP Practices as Scaffolding for Breakthrough Companies⇥ Tung Lam Vu ⇤
 
Code campiasi qa-in-agile-projects-ana-figher-embarcadero
Code campiasi qa-in-agile-projects-ana-figher-embarcaderoCode campiasi qa-in-agile-projects-ana-figher-embarcadero
Code campiasi qa-in-agile-projects-ana-figher-embarcaderoCodecamp Romania
 
Get strategic with qa in dev ops
Get strategic with qa in dev opsGet strategic with qa in dev ops
Get strategic with qa in dev opsApplause
 
Product QA - A test engineering perspective
Product QA - A test engineering perspectiveProduct QA - A test engineering perspective
Product QA - A test engineering perspectiveImaginea
 
Scrum in Practice: A Developer’s view
Scrum in Practice: A Developer’s viewScrum in Practice: A Developer’s view
Scrum in Practice: A Developer’s viewBosnia Agile
 

Similar to Weaning Legagy Platform From Offshore Qa (20)

Agile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeAgile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil Karade
 
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspectiveQuali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
 
How to develop a common sense of "DONE"?
How to develop a common sense of "DONE"?How to develop a common sense of "DONE"?
How to develop a common sense of "DONE"?
 
DevOps in action - Azure DevOps
DevOps in action - Azure DevOpsDevOps in action - Azure DevOps
DevOps in action - Azure DevOps
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
AgileTesting_Ver1.0
AgileTesting_Ver1.0AgileTesting_Ver1.0
AgileTesting_Ver1.0
 
A collaborative approach to the quality in the agile enterprise by Jaco Viljoen
A collaborative approach to the quality in the agile enterprise by Jaco ViljoenA collaborative approach to the quality in the agile enterprise by Jaco Viljoen
A collaborative approach to the quality in the agile enterprise by Jaco Viljoen
 
Five Steps to a More Agile Organization: Adopting Agility at Scale
Five Steps to a More Agile Organization: Adopting Agility at ScaleFive Steps to a More Agile Organization: Adopting Agility at Scale
Five Steps to a More Agile Organization: Adopting Agility at Scale
 
Scrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful deliveryScrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful delivery
 
A confused tester in agile world finalversion
A confused tester in agile world finalversionA confused tester in agile world finalversion
A confused tester in agile world finalversion
 
XP Practices as Scaffolding for Breakthrough Companies
XP Practices as Scaffolding for Breakthrough CompaniesXP Practices as Scaffolding for Breakthrough Companies
XP Practices as Scaffolding for Breakthrough Companies
 
Code campiasi qa-in-agile-projects-ana-figher-embarcadero
Code campiasi qa-in-agile-projects-ana-figher-embarcaderoCode campiasi qa-in-agile-projects-ana-figher-embarcadero
Code campiasi qa-in-agile-projects-ana-figher-embarcadero
 
Get strategic with qa in dev ops
Get strategic with qa in dev opsGet strategic with qa in dev ops
Get strategic with qa in dev ops
 
Agile Adoption in Testing 2013 - v2
Agile Adoption in Testing 2013 - v2Agile Adoption in Testing 2013 - v2
Agile Adoption in Testing 2013 - v2
 
QAAgility Trainings Brochure
QAAgility Trainings BrochureQAAgility Trainings Brochure
QAAgility Trainings Brochure
 
QAAgility Trainings
QAAgility TrainingsQAAgility Trainings
QAAgility Trainings
 
Adopting Agile Testing
Adopting Agile TestingAdopting Agile Testing
Adopting Agile Testing
 
Product QA - A test engineering perspective
Product QA - A test engineering perspectiveProduct QA - A test engineering perspective
Product QA - A test engineering perspective
 
SAFe and DevOps - better together
SAFe and DevOps - better togetherSAFe and DevOps - better together
SAFe and DevOps - better together
 
Scrum in Practice: A Developer’s view
Scrum in Practice: A Developer’s viewScrum in Practice: A Developer’s view
Scrum in Practice: A Developer’s view
 

Weaning Legagy Platform From Offshore Qa

  • 1. Weaning a Legacy Platform from Traditional Offshore QA January 31, 2012
  • 2. The Agile Quality Ideal •Unit Tests •Integration Tests •Story/Acceptance Tests •The development team “owns” quality
  • 3. The Agile Quality Ideal – Where is QA? Traditional QA Responsibilities: • Verifying functionality • Verifying bug fixes • Regression Testing Nearly obsolete?
  • 4. The Agile Quality Ideal – A possible role for QA
  • 5. 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
  • 6. Why was offshore QA a good idea in the past? Manual regression testing Offshore QA •3X cheaper •Overnight feedback
  • 7. Why is offshore QA an impediment now? • Development team produces functionality • QA team assures quality
  • 8. 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
  • 9. 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
  • 10. Constant improvement of code cleanliness / test coverage a. Opportunistic legacy rescue b. Scheduled/budgeted cleanup c. Culture of bug prevention
  • 11. Opportunistic Legacy Rescue: The Hippocratic Oath First, do no harm
  • 12. Opportunistic Legacy Rescue: The Boy Scout Principle Always leave the campsite cleaner than how you found it.
  • 13. The legacy rescue catch-22
  • 14. 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
  • 15. Opportunistic Legacy Rescue: Not enough • Business expects a certain velocity • Large-scale refactoring is expensive • Can’t absorb within context of story development
  • 16. 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
  • 17. 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
  • 18. Feeling the pain • Developers: Increase efforts toward bug prevention • Business owners: Support bug prevention efforts (e.g. refactoring)
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. Developers put on “QA hats” 1. Peer verification 2. Exploratory testing
  • 24. Peer verification • In workflow, between DEV Completion and Business Verification
  • 25. Exploratory testing by team • ½ hour per week
  • 26. 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
  • 27. 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
  • 28. 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?
  • 29. Re-training offshore QA team to take on value-adding roles a. Second line of defense b. Performance testing c. “User-centric” regression tests
  • 30. Second line of defense
  • 31. Writing, maintaining and executing performance tests
  • 32. Writing and maintaining automated “user-centric” regression tests
  • 33. The offshore QA challenge Update your skills or become obsolete
  • 34. 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%
  • 35. Production high/critical bugs created vs. resolved
  • 36. All high/critical bugs created vs. resolved
  • 37. Q&A 37 Making Web Applications Accessible

Editor's Notes

  1. 1 or 2 QA guys in the team room for the “hard stuff”Load testingNon-standard environmentsWhatever cannot be run on CI server
  2. Feathers definition of legacy code: Code without test coverage
  3. NOTE: Offshore QA not nearly as bad as offshore developmentOvernight feedback beats 24-hour cycle, but Agile strives for instant feedbackOffshore testers are used to getting their context from copious functional specifications. Agile replaces these specifications with an ongoing dialog between product owners and developers. Testers are not privy to this dialog and are therefore missing the context surrounding the stories.Us vs. Them: Developers produce functionality, Testers assure quality -- Contention built in (contention is anti-agile)Developers abdicate ownership of quality = Less incentive to prevent bugs and produce clean code
  4. Three processes that gradually reduce, and eventually eliminate, the need for third-party regression testingCreate the quality – Establish development team as a Quality organizationBridge the Developer/QA gap -- Development team is a Quality Assurance organizationFind a new value-added role for QA (the hard stuff)
  5. Creating quality
  6. Class has cyclomatic complexity of 110. What’s another IF-condition? NO!!! No new code without a test.CI job can go red when complexity goes up or coverage goes down.
  7. Now that we are not making it worse, take one small step and make it a little better.The campsite, not the state park.If you trip on something, you are responsible for cleaning it up.
  8. Code should not be refactored without test coverageBUT we cannot write tests without first refactoring
  9. Legacy rescue takes a long time / boy-scouting must be limited
  10. Getting business buy-in: Make results visible-- Cost of bugs-- Benefits of refactoring
  11. SCRUM – Pressure to commit to stories for iteration. Bugs get pushed to end.Kanban – No iteration commitments
  12. Pain = Awareness / Warning Imagine if a heart attack was not painful
  13. Firststep – blurs on-shore/off-shore distinction Advocate for quality in team room Collects metrics on bug patterns
  14. Painful but worthwhile – 1 legitimate failure justifies 10 false negatives Duplicate offshore QA’s regression testing – make it less relevant
  15. Focus on Border conditionsMultiple browsersPrecise fulfillment of requirements as statedAmbiguities in requirements
  16. QA staffer or developer coordinates Each developer assigned a functional area and environment (operating system/browser) Developers report any problems to QA lead
  17. These are the “hard stuff” discussed earlier
  18. Try to break itUtilize domain knowledge – awareness of soft spots
  19. Independent of Team Room context (just needs projected/actual usage data) Technological domain unto itself – can keep abreast emerging technologies and tools, own process (may be too much for development team to absorb) Best run at night – leverage time zone difference CONTROVERSIAL: Should development team abdicate ownership?
  20. Automate what they used to do manually Developmentteam’s Selenium tests: Response to individual bugs and “stories” We are not really story-driven QA team’s Selenium tests End-to-end user scenarios Like performance testing, offshore team can keep abreast of technologies and tools, and take ownership of process (share technological findings with DEV team) Based on observed, not required behavior, so can be built and maintained outside context of team room
  21. Does the story have a happy ending? In truth, the story has no ending at all, for when it comes to process improvement, there is no Definition of Done. But there are a lot of happy people in our team room, in our executive offices and in libraries and universities world-wide.
  22. Test coverage is a means. The end goal is quality. We began instituting most of the practices discussed in September. The bug rate began to flatten in November.
  23. Here the flattening of the bug rate is even more dramatic. Again, we saw the change in November.