Upload
techwellpresentations
View
41
Download
0
Tags:
Embed Size (px)
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.
Citation preview
�
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
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.
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
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ߦ
15/09/2013
3
Our case study: Amazon Mobile
Activity: Your case study
We're like X for Y
X for Y
Yelp
Educators
Truckers
Hikers
15/09/2013
4
What are "Patterns"?
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.
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
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
15/09/2013
8
Patterns for Specification
User Story Maps
ATDD Cycle
15/09/2013
9
Story Mapping
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
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
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
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
15/09/2013
14
Patterns for Paired Development
Continuous test design
Test driven development
Programming heuristics
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)
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
15/09/2013
17
Patterns for Paired Exploration
Configuration and deployability
Fast feedback & quick fixes
Technically aware charter execution
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ߦ
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
15/09/2013
20
Let's summarize the
different types of
patterns
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
15/09/2013
22
Testing at different layers
Any Questions?
Janet Gregory@janetgregoryca
Matt Barcomb@[email protected]