Patterns for Collaboration: Toward Whole-Team Quality

294 views

Published on

A lot of talk goes on in agile about how collaboration among team members helps drive a shared responsibility for quality—and more. However, most teams don't do much more than just hold stand-up meetings and have programmers and testers sit together. Although these practices improve communications, they are not collaboration! Most teams simply don't understand how to collaborate. Janet Gregory and Matt Barcomb guide you through hands-on activities that illustrate collaboration patterns for programmers and testers, working together. They briefly review the acceptance test-driven development process, then illustrate what programmers should know about testing—and what testers should know about programming—to effectively create whole-team quality. Janet and Matt conclude with visual management techniques for joint quality activities and discuss the shift in the product owner role regarding release quality. Leave with new ideas about collaboration to take back to your organization and make whole-team responsibility for quality a reality.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
294
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Patterns for Collaboration: Toward Whole-Team Quality

  1. 1. TQ PM Half day Tutorial 11/12/2013 1:00 PM "Patterns for Collaboration: Toward Whole-Team Quality" Presented by: Janet Gregory, DragonFire, Inc. Matt Barcomb, odbox Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888 268 8770 904 278 0524 sqeinfo@sqe.com www.sqe.com
  2. 2. Janet Gregory DragonFire, Inc. Agile testing coach and practitioner Janet Gregory (@janetgregoryca) is the coauthor of Agile Testing: A Practical Guide for Testers and Agile Teams and a contributor to 97 Things Every Programmer Should Know. Janet specializes in showing agile teams how testers can add value in areas beyond critiquing the product. For the past ten years, she has been working with teams to transition to agile development. Janet teaches agile testing courses and tutorials worldwide, contributes articles to leading publications, and enjoys sharing her experiences at conferences and user group meetings worldwide. Find more information at janetgregory.ca or visit her blog. Matt Barcomb odbox Matt Barcomb (@mattbarcomb) is passionate about building collaborative, cross-functional teams; enjoys being out-of-doors; loves punning; and thrives on guiding organizations toward sustainable, adaptive, and holistic improvement. Matt started programming as a wee lad and eventually wound up getting paid for it. It took him nearly ten years to realize that “people problems” were the biggest issue facing most software development businesses. Since then he has spent his time and energy trying to find ways to make the business–software universe a better place to work, play, and do business. Currently residing in Cleveland, Matt keeps busy consulting and hiking. Read his musings on his blog.
  3. 3. 15/09/2013 Patterns For Team Collaboration ...with Janet & Matt Agile Development Conference East Boston, November 2013 Janet lives in Calgary, Canada agile coach with a testing perspective working on agile teams since 2000 co-author of Agile Testing: A Practical Guide for Agile Teams Testers Matt based in Cleveland, travels a *lot* organization design consultant with a software development background growing organizations & teams for over 10 years 1
  4. 4. 15/09/2013 Time to introduce you now! Choose your roles! (may need some movement) Each table will need at least one practicing (or someone who understands the role) a domain person (product owner, business analyst) a tester a programmer 2
  5. 5. 15/09/2013 Our case study: Amazon Mobile Activity: Your case study We're like X for Y X Facebook for Y Truckers Yelp Educators Email Hikers 3
  6. 6. 15/09/2013 What are "Patterns"? 4
  7. 7. 15/09/2013 Definition: pat—tern /ˈpatərn/ 1) a form or model proposed for imitation 2) a reliable sample of traits, acts, tendencies, or other observable characteristics of a person, group, or institution <a behavior pattern> <spending patterns> Synonyms model - sample - specimen - example - type - exemplar -- merriam-webster Communication means ... sharing ideas, information, decisions, solutions, etc. eg: daily standups Collaboration means ... working together to find solutions, etc. 5
  8. 8. 15/09/2013 What is Pairing? Pairing is … "Two generalizing specialists collaborating with purpose & intention to produce an outcome." Future of Pairing “Diverse specialists collaborating through generalization” for example: tester - programmer pairs are stronger than programmer - programmer pairs 6
  9. 9. 15/09/2013 What is a "generalizing specialist"? "An individual with a deep level of knowledge in at least one domain and a collaborative understanding of at least one other." Activity Helping others generalize 7
  10. 10. 15/09/2013 Patterns for Specification User Story Maps ATDD Cycle 8
  11. 11. 15/09/2013 Story Mapping 9
  12. 12. 15/09/2013 Benefits of Story Mapping  A 2 dimensional view of product backlog  ‘Backbone’ of user activities  Workflow / value chain is visible  Relationships of feature to stories are visible  Provides a useful context for prioritization Reference: Jeff Patton’s articles http://www.agileproductdesign.com/presentations/user_story_mapping/index.html ATDD Acceptance Test Driven Development It's about getting the product right It's about defining tests before coding starts 10
  13. 13. 15/09/2013 Picture by Augusta Evangelisti, based on diagram from Elisabeth Hendrickson Discuss & Distill  The conversation for which the user story was a placeholder  Leverages Power of 3 (or 3 amigos) concepts  Just in time collaborative specification  Ends with agreement on ready to start 11
  14. 14. 15/09/2013 Our case study: Amazon Mobile Specification: BDD Example Given I'm in scan mode When the barcode is fully within the frame Then the camera scans the barcode When a barcode has not scanned for 5 seconds Then the user sees "Please hold the item steady and ensure the proper lighting" When the item "The Art of Product Management" is scanned Then the item shows up in the result list 12
  15. 15. 15/09/2013 Specification: Tabular Example Setup |12345| Art of Product Management | |65432| Cukes & Cheese | |65432| Cuke & Cheeses | Scanned found/not found |12345|Art of Product Management | |00000| Not Found | Duplicate results |65432| Cukes & Cheese, Cuke & Cheeses | Activity: D&D Practice In your groups, write specifications using: - Given, When, Then format and/or - Tabular Data Examples Remember which roles you are playing!! 13
  16. 16. 15/09/2013 Patterns for Paired Development Continuous test design Test driven development Programming heuristics 14
  17. 17. 15/09/2013 Continuous test design Collaborate on test methods and needs Discover during implementation On going boundary value analysis, equivalence classing, state and variable assessment, chartering, etc... Re-evaluate test balance TDD (test driven development) RED -- GREEN -- REFACTOR What is the next simplest thing to test? Review & suggest extra tests Decide where to implement tests Remove any design-only tests Leave the campground cleaner 15
  18. 18. 15/09/2013 Programming heuristics Is there a test for that? Are things named well? Does the code read like a newspaper? Is the code too long? Is the code doing too much? Exercise: Paired Development 16
  19. 19. 15/09/2013 Patterns for Paired Exploration Fast feedback & quick fixes Configuration and deployability Technically aware charter execution 17
  20. 20. 15/09/2013 Fast feedback and quick fixes review spec & new test ideas demo defects before promotion pair with programmer to debug quickly identify and correct small issues quickly Configuration and deployability understand your environment separate concerns of functionality, deployability and environment automate testing of specific concerns frequent integration & test execution 18
  21. 21. 15/09/2013 Technically aware charter execution Partner with programmer Improved ability to automate setup Share testing knowledge ○ Example: equivalence classes - Share coding risks Exercise: Paired exploration Charter template & activity adapted from Elisabeth Hendrickson 19
  22. 22. 15/09/2013 Let's summarize the different types of patterns 20
  23. 23. 15/09/2013 All of this is based on .... Trust, Visibility, Transparency, and ... that the PO knows the domain that the tester knows how to test that the programmer really cares about quality the automation does we think it does References Gojko Adzic, Bridging the Communication Gap 2010 Jeff Patton, Story mapping http://www.agileproductdesign.com/presentations/user_story_mapping/i ndex.html Elisabeth Hendrickson, Explore It!, 2013 George Dinwiddie, 3Amigos http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=CO L&ObjectId=17232 21
  24. 24. 15/09/2013 Testing at different layers Any Questions? Janet Gregory @janetgregoryca janet@agiletester.ca www.janetgregory.ca Matt Barcomb @mattbarcomb matt@odbox.co 22

×