patterns for collaboration: toward whole-team quality

24
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 ͼ [email protected] ͼ www.sqe.com

Upload: techwellpresentations

Post on 22-Jan-2015

41 views

Category:

Technology


0 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Patterns for Collaboration: Toward Whole-Team Quality

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�ͼ�[email protected]�ͼ�www.sqe.com

Page 2: Patterns for Collaboration: Toward Whole-Team Quality

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.

Page 3: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

1

Patterns ForTeam Collaboration

...with Janet & Matt

Agile Development Conference EastBoston, 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

Page 4: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

2

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ߦ

Page 5: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

3

Our case study: Amazon Mobile

Activity: Your case study

We're like X for Y

X for Y

Facebook

Yelp

Email

Educators

Truckers

Hikers

Page 6: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

4

What are "Patterns"?

Page 7: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

5

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>

Synonymsmodel - 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.

Page 8: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

6

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

Page 9: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

7

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

Page 10: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

8

Patterns for Specification

User Story Maps

ATDD Cycle

Page 11: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

9

Story Mapping

Page 12: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

10

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 articleshttp://www.agileproductdesign.com/presentations/user_story_mapping/index.html

Benefits of Story Mapping

It's about getting the product right

It's about defining tests

before coding starts

ATDDAcceptance Test Driven Development

Page 13: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

11

Picture by Augusta Evangelisti, based on diagram from Elisabeth Hendrickson

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

Discuss & Distill

Page 14: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

12

Our case study: Amazon Mobile

Given I'm in scan modeWhen the barcode is fully within the frameThen the camera scans the barcode

When a barcode has not scanned for 5 secondsThen 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

Specification: BDD Example

Page 15: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

13

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 |

Specification: Tabular Example

In your groups, write specifications using:

- Given, When, Then format

and/or

- Tabular Data Examples

Remember which roles you are playing!!

Activity: D&D Practice

Page 16: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

14

Patterns for Paired Development

Continuous test design

Test driven development

Programming heuristics

Page 17: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

15

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ߦ

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ߦ

TDD (test driven development)

Page 18: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

16

?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ߦ

Programming heuristics

Exercise: Paired Development

Page 19: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

17

Patterns for Paired Exploration

Configuration and deployability

Fast feedback & quick fixes

Technically aware charter execution

Page 20: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

18

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ߦ

Page 21: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

19

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

Page 22: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

20

Let's summarize the

different types of

patterns

Page 23: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

21

Trust, Visibility, Transparency, and ...

that the PO knows the domainthat the tester knows how to test

that the programmer really cares about qualitythe automation does we think it does

All of this is based on ....

ReferencesGojko Adzic, Bridging the Communication Gap 2010

Jeff Patton, Story mapping http://www.agileproductdesign.com/presentations/user_story_mapping/index.html

Elisabeth Hendrickson, Explore It!, 2013

George Dinwiddie, 3Amigos http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=17232

Page 24: Patterns for Collaboration: Toward Whole-Team Quality

15/09/2013

22

Testing at different layers

Any Questions?

Janet Gregory@janetgregoryca

[email protected]

Matt Barcomb@[email protected]