The testers at Linguamatics decided to explore the adoption of a set of team values and this short series of posts describes how we got to them through extended and open discussion.
If you find the posts read like one of those "what I did in the holidays" essays you used to be forced to write at school then I'll have achieved my aim. I don't have a recipe to be followed here, only the story of what we did, in the order we did it, with a little commentary and hindsight.
- Teasing Them Out
- Living With Them
In terms of methodology, we are in permanent Scrum teams, we join time-bounded projects set up to implement a particular feature or satisfy a particular customer need, and we work day-to-day with groups whose priorities and resources are subject to change at very short notice.
In spite of the varied nature of our assignments it's historically been our desire to maintain strong team bonds and an information-sharing culture and so we've engineered some formal and informal opportunities to do that.
Amongst other things, each week we have a catch-up with some kind of presentation (such as a feature, a tool, an approach), we have a daily stand up (roughly: prefer outcomes over outputs, share issues, ask for data or help), and we have a tradition of optional, opportunistic, 5-10 minute overviews on topics that are potentially interesting right now but too deep for stand up.
We also have a regular team retrospective in which we allow ourselves to discuss pretty much anything about the way we work. It tends to stay out of project specifics — because they'll be discussed within the projects — but recent topics have included dedicating time to shortening the run time of a particular test suite to enable developers to get faster feedback from it, creating a specific type of virtual machine for us to share, and reviewing how we schedule work.
At the start of 2018, a retro topic that I proposed after hearing Keith Klain speak at Quality Jam 2017 was voted up. In his talk, Keith said that one of things he likes to see in a team is a shared understanding of the important factors that frame how they work. Based on that, I asked should we establish a set of team values, principles, or a mission statement?
The resulting discussion generated enthusiasm. And questions, naturally. They included:
- What do we want to create: a defined mission? principles? values?
- ... and how do these things relate to one another?
- It shouldn't be be too low-level; it should apply across teams, projects, and so on.
- It shouldn't be restrictive or prescriptive; there should be flexibility.
- It should be a framework for decision-making, not a decision-maker.
- Do we really need anything different to the company values?
- Do we want it to change the way we work, or encapsulate the way we work?
- Do we want others in the company to see it?
- ... and might it change how others see us?
None of us had ever tried to externalise group values before so we began by researching what others had done. Here's a few examples from within the testing space:
- Context-Driven Testing
- Association for Software Testing Code of Ethics
- A Tester’s Commitments by James Bach
- Debugging Your Test Team by Keith Klain
- Leading Change in a Community of Testers by Keith Klain (values and principles are discussed at ~13 min, ~22 min, ~28 min) and slides
- Modern Testing Principles by Alan Page and Brent Jensen
- Principles Not Rules by Iain McCowatt, with Part 2 and Part 3
- Testing Principles by Huib Schoots and Alex Schladebeck
- The Testing Manifesto by Growing Agile
- Collector Test Manifesto by Daniel Karlsson
- A Manifesto for Software Testing by Joep Schuurkes and later reflections on it
Some of these were published after we started so didn't have as much chance to influence what we did. Iain McCowatt's Principles Not Rules was inspiring to me, but is unavailable as I write this. It's such strong material that I've left the links in the list above in the hope that it'll come back. Small comfort: I saw his talk on the same topic at EuroSTAR 2015 and a handful of my notes are here.
- The Agile Manifesto and its principles
- One development team's mission statement by John Cutler
- Creating values, mission statements at Status.net
- Values vs principles at Quora
- Creating Useful Vision and Mission Statements by David Grossman
Closer to home, we observed that our company has some useful data to contribute: our corporate values published on the internal wiki, and a set of informal values that are regularly called out verbally at all-hands meetings.
Finally, we looked to see whether values are encoded implicitly in our tester job adverts, which include lines like these:
- We strive to provide relevant information to stakeholders and we're flexible about how we do it.
- We use and we eagerly solicit peer review, we’re open to new ideas, and we perform regular retrospectives to help us improve ourselves and our work.
- Our company respects what we do, and we’re a core part of our company’s work and culture.
- Linguamatics is active in the local testing community, regularly hosting meetups and Lean Coffee.
- We have regular in-house training in testing and other skills.
- If you get the job you will be expected to
- ... take responsibility for your work,
- ... apply intelligence and judgement at all times,
- ... be able to justify your position and be prepared to discuss alternatives,
- ... look for ways to improve yourself, your work, the team and the company.
To summarise how we started down this road, then:
- We wondered if we should think about making our implicit shared values explicit.
- We discussed it, and decided that we'd give it a go.
- We did some research to see what was out there, and what we already had.
In the next few posts I'll describe how we moved from this point to a set of values that we can agree on as a team.