Tuesday, December 3, 2013



I've been designing my new heuristic test strategy model. Mary Gorman's keynote in Agile Testing Days 2013 gave me some ideas on how to develop the viewpoint on product elements. For a long time I've been using James Bach's SFDIPOT and it has served me wonderfully, but I think I need to try something different. I need to evolve.

It's time for FIT(Q)CODES!!

"What is this craziness", you might ask. Well, let me explain. Let's consider James' SFDIPOT a bit:

  • Structure i.e. everything that comprises the physical product.
  • Functions i.e. everything that the product does.
  • Data i.e. everything that the product processes.
  • Integrations i.e. every connection the product has with the outside world.
  • Platform i.e. everything on which the product depends.
  • Operations i.e. how the product will be used.
  • Time i.e. any relationship between the product and time.

This is great and I have no need to improve it. Actually it's more than many of my customers or colleagues are able to handle. Still, Mary's approach had a impact on me and I cannot stop thinking about her product dimensions:

  • User. Users interact with the product.
  • Interface. The product connects to users, systems and devices.
  • Action. The product provides capabilities for users.
  • Data. The product includes a repository of data and useful information.
  • Control. The product enforces constraints.
  • Environment. The product conforms to physical properties and technology platforms.
  • Quality attribute. The product has certain properties that qualify its operation and development.

As you can see, there's some overlapping between the elements, but there are still areas that beautifully complement each other. If James' and Mary's approaches had a baby, it could look something like this:

There are still some aspects I'd like to think twice. The biggest of them is of course quality attributes (which is why FIT(Q)CODES has Q in parenthesis). I'm not really sure they should be handled as a separate focus area because quality attributes crosscut the elements. For example every functionality has one or more corresponding quality attributes. Filling a web form can be easy/hard, fast/slow, secure/unsecure, etc.

If you have any ideas how to develop this, concerns about it, questions how to put it into good use or whatever, please contact me (sami.soderblom[at]gmail.com, +358 41 538 2001).




  1. Thanks for sharing. I am looking for ways to make myself and the team more creative for our next project release, and I think I will give this a try.

    1. Thanks for the comment! If you have any ideas on improving that, please let me know.

  2. Hi Sami! How's it going? This is great!

    One thing I was thinking about regarding "Integration" was about services (both internal services and 3rd party). How much software do you see now that integrate with social media sites for sharing info... Maybe that should be explicit in your mind map?


  3. Nice article thanks to shared this wonderful information

    How to read product dimensions