Home > testing > Working with expectations – Software quality characteristics game

Working with expectations – Software quality characteristics game

When working with our mission of creating an organization wide test strategy I was thinking about quality related problems we have in some projects. I realized that the expected quality is not explicitly stated anywhere. This means neither customer nor development team are aligned about which level of quality is expected to be delivered when done. I needed something to achieve a better awareness of quality requirements and a light weight way of stating them explicitly.

I wanted

  •      a solution that would fit into all of our different projects in my organization
  •      something that when applied works in a proactive way with quality
  •      an easy to use tool for development teams to work with customers about quality

Working with already existing work

I already knew about James Bachs Heuristic Test Strategy Model, and thought I would use that as a starting point. Or actually, my starting point was the Software Quality Characteristics created by TheTestEye which are originally inspired by James’ model. When I later came back to HTSM I realized thats what I was working with as well. Let me explain.

I want to align expectations on quality before development, thus before any quality can be perceived. What I actually want to do within HTSM is to optimize Quality Criteria work for successful delivery. Project environment will briefly be the same in our different projects, thus these parts will not be a part of this exercise. Product elements are usually discussed about just before being developed, and later on I will show how these will be affected by our game. The derived test techniques is something that the team will be able to make decisions on when knowing about the inputs, where Quality Criteria is an important part.

Playing games with Software quality criteria

Quality is a complex thing. To ease the conversation we will talk about the quality criteria, as referred to by James as:
A quality criterion is some requirement that defines what the product should be. By considering different criteria, you will be better able to plan tests that discover important problems fast.

Thus, I take the Software Quality Characteristics and work on them as they would have been requirements. In agile and in my organization we call them user stories or just stories. I print them separately on bigger index cards with the main title and context question a little bigger than the sub-characteristics. Find the index cards here.

Then I play the 20/20 vision innovation game (by Luke Hohmann) with the customer, regarding the quality of the product. I explain to them that we all of course value quality highly, but as with anything there needs to be some sort of prioritization. This will enable the team even more , since they will know what type of quality matters when delivering their stories. The result will be a prioritized list which explicitly states which types of quality matter the most to the business stakeholders.

Value gained

Now I have a common ground to build on when I want to work with quality in our projects. The abstract word of quality has been over bridged with the acknowledged set of quality characteristics that explain themselves with the understandable questions attached.

The tool works in our projects in a proactive way, since it is possible to apply regardless of the project/product context before any development work is done. However it needs to be applied after some common understanding of scope has been reached.

Nothing extra is needed to use this tool, except for the things that is anyway required in our projects like an open minded and active customer and development team.

Real value

The real value in this is not really the prioritized list of quality characteristics. Its the gained discussion on what is important for the customer, that matters. For example, imagine this exercise done when having a project scope of derived user stories but before much effort has been done in development. When speaking about security as quality, it really sounds differently in a customers mind than when talking about the “Use https” story. Then at least there was such a story, but maybe not prioritized high enough. If there is no such story, then maybe it needs to be added before doing anything else. What we are doing is actually taking the discussion about scope from a completely different angle than people are used to, which will give interesting results.

Different viewpoints

Of course I already have some ways in mind to alter this approach.

Prioritization strategy

The 20/20 vision suits well when there is not very many people working on the same set. A colleague of mine pointed this out as a weakness of the tool. If there are more people that should be involved then maybe a partitioning or dotting game would be more suitable. However, since we want to play this game with the people that matter it really has to be a small group of people. If not only THE one person that matters. But of course, if there is a better way to get the prioritization done with the gained discussion being constructive.

Product contexts

There could be certain areas in the product that you are developing that are very different in context, for example if there is an enterprise back-end integration and then having mobile clients. Then you would want to differentiate these by creating separate lists for these, one for the back-end and one for the iOS and Android apps respectively. Why would you separate the two client apps? Logic behind business decisions like this is not trivial, but an example would be that the business strategy suggests the iOS app needs to be launched first with an astounding success while the Android app needs to fill the needs for the early adopters that dont have iOS devices. This app maybe does not need the same type of stability focus as the iOS app, but with more options for compatibility in the fragmented Android domain.

Story or feature level quality characteristics

Some stories or features are more important or bigger (or whatever more) than others. If this is the case and there are uncertainties regarding the quality expected at delivery it might be useful to take out the quality characteristics index cards to facilitate a customer discussion around the quality. It does not have to take very long for either side to realize where the solution needs to be cut.

Breaking quality stories into pieces

People will have a hard time prioritizing, that is to be expected. Some parts of a certain quality may be more important than the rest of it and some other quality. I think it should be preceded with awareness, but you might in some cases want to break away a sub-quality from its index card to enable the discussion to go forward to completeness instead of a stale.

Internal and external quality characteristics

Depending on the context it could be important to blend internal and external quality. However, I think it might be important to have them separated in the discussions. I suspect that in our projects we will probably most of the time need to have them separate.

Discussion

It should be noted that I have not tried the approach on many projects just yet. My colleagues that I shared the idea with have first been suspicious to it, but then mostly come to the conclusion that it might be an easy way of getting to the right discussion with our clients regarding quality.
I tried it with two different stakeholders in my current project, although not /the one that matters most/. They both had their views on the quality needed, but the prioritization game actually got them to talk to me about quality in a more understandable way. Or actually, by getting them to express their needs in their own words, I could translate the general wordings of quality characteristics to the project context. That way we got on the same page of expectations on quality.

This post was also published on my company blog.

UPDATE: John Stevenson was kind enough to share his poster with the Software Quality Characteristics. I might just cut out those clouds the next time I am playing the game to make if even more visual. And John, I was unable to comment on your blog for some reason. The “Comment as…profile” did not work. When I had written a comment and pressed publish it just disappeared.

  1. oscarcosmo
    April 11, 2012 at 15:53

    I see this as a really good way of discussing quality expectations within a development team prior to actual implementation. I imagine it will help the team not to fall into discussing “value” from their individual point of view but instead keeping focus on the product’s quality.

    Also it is very visual. Having the cards, or similar, is a real support during group discussions.

    I like it! Good job.

    Although I probably will use a more to the point (in my context) version of the characteristics.

    • Sigge
      April 11, 2012 at 23:23

      Thank you for the comment Oscar.

      I think both of the things you bring up are very context dependent. Since I know that would be the case I was trying to show that with my section about different viewpoints (contexts).

      The main thing with my idea is the playing and visualization of quality criteria to get a good discussion. That is the core idea that could be applied to most contexts where we have the problem of no explicit quality expectations.

      The reason I like keeping the characteristics as-is in the general sense is because this itself drives conversation towards asking what they mean in the current project context. If you later on for example when doing another iteration of planning, bring up the game, you will of course have established those more to the point wordings. But if you use the still general words, it visualizes if people have adapted to project jargon or not.

      I also point out that I want our customer very involved in this. The reason for this is also because of our context as an external development shop towards customers that might or might not have bought software before. Since they are the ones that matter, they should be the ones stating the quality required. By having the discussion together, both customer and development team, the expectations will align better towards what will be delivered.

  1. July 21, 2012 at 21:00
  2. January 3, 2013 at 01:19
  3. June 19, 2013 at 14:15

Leave a comment