An exploratory framework guides you towards a model of the system you are exploring. Different testers exploring the same thing with the same framework might make different decisions and take different steps. However, they are likely to build similar models, and to be able to understand each other's models.
In – Out – Transformation Framework
This framework helps you explore the ways a system transforms data, and how it reacts to input. It's a handy model for working with a deterministic system, especially one whose internal state doesn't matter much. It's not so good for sequences, non-deterministic systems, systems where behaviour is dependent on state. It can be good for focussing on specific transforms of data, file / data processing, flow of data, and for getting an idea of overall system purpose.
As you work with the system, look for things that change. Make two lists; inputs which you can influence directly, and outputs which respond more indirectly. :Look for things to generalise – rationalise down and expand out.
As you as you organise the items in your lists, you'll model your understanding of the undelying relationships. Try to identify those items which are linked. Think about how the links work, how you can label, generalise, extend and differentiate them.
Join the inputs and outputs to model transformation. Gather evidence about :how the inputs and outputs appear to be related.
I typically end up with a diagram with input on the left, output on the right, and arrows. I might end up with several joined-up parts, if I find that there seem to be intermediary transformations.
As a model, this tends to let me appreciate what something is doing, rather than what it's doing oddly. It's often helpful to consider several ways that data can get into a system when thinking about how to influence it, and ways that information is aggregated or can be extracted when thinking about how to observe it. You might spot inconsistencies in how otherwise-similar inputs are connected to outputs.
This framework helps you focus on data and transformation. If you find yourself considering the function or use of the thing you are exploring, your focus has drifted. That’s fine, but be aware of the change in focusm, and know that you can choose to return to the disciplined framework.
Exercise: Converter I
10 mins exploring, 15 minutes debrief
Work in pairs. Make notes to share with your pair in a later exercise.
We'll use Converter_v3 . Please ignore the sidebar for now.
- Using just the text field, consider what your 'inputs' might be
- Using just the output field, consider what your 'outputs' might be
- When you've made some experiments / observations, take stock. Try to group your 'input' in several ways. Make separate groups for the 'output'. What can you see that is a useful grouping? Can you see any patterns? What experiment or condition might be missing within a grouping?
- We'll talk about what you've seen
- We'll suggest and check connections between inputs and outputs. What is transformed?
- Exchange your models.
Exercise: What did you keep?
5 mins sharing, 5 mins group debrief
Share your notes with your partner(s). Compare notes.
- how are your notes similar?
- how are they different?
Publish your notes on Miro. Check out other people's work. Can some understanding be communicated in notes?
Exercise: What did you use?
5 minutes, then 5 debrief
Have a look at the page's records of your activity.
- How does looking at your actions make you feel?
- How do your actions change over time?
- Can you pinpoint a reason?
Debrief – add notes to board as you think. Share verbally, voluntarily.
Verb / Noun / Adverb / Trigger / Media
In Chapter 6 of Explore It!, Elisabeth Hendrickson describes a "Nouns and Verbs" technique;
The first step in the technique is to identify the nouns and verbs of the system. Imagine you’re working on an email client. The nouns, or things, in your system might include emails, attachments, contacts, accounts, and folders. The corresponding verbs, or actions, might include create, send, edit, forward, copy, delete, and move.
This can be useful with inputs and outputs; if your input is a number, you can think of several classes of numbers (i.e. integer, negative, fraction, exponent – with examples for each), and perhaps several verbs for the way that you act (type, paste, drag in, enter-with-key, enter-with-button). You can extend this further with different parts of speech to arrive at a complex scenario: swiftly drag a negative number from a spreadsheet cell into the input field.
Deterministic / Equivalent / Influential
As you explore inputs and outputs, it's helpful to consciously judge what's going on.
Is the transformation deterministic, or does a particular input have the potential to produce several outputs? What might the outpus depend on? Can you adjust that, or work with its variability?
What inputs seems to be equivalent, in that they produce similar output? WHat are particularly different?
What seems particularly influential? Do some inputs affect few outuputs, or have a 'small' effect? What can change independently?
:x Expand and Contract
List inputs and outputs – whatever those might be. Some people use objects, some people use verbs, some people use verb-object, or verb-object adjective. Some people draw pictures, or highlight a screenshot. Whatever you use, try to group and generalise into coherent collections.
Consider what those collections might mean, and whether it looks like you might have missed anything. For instance, if you end up with inputs that look like ascii-only, consider alternatives. If all your listed inputs are touch, try a keyboard and try pasting, then dragging/dropping in. If all your listed inputs are standard records, try non-standards. If a bunch are future-dated, try past. If all your inputs are transient, try increasing thier duration. If all your inputs are integers, try floats.
Try to extend the groups you have identified, and include more items if you can. Think about things you might not have included in your groups. Consider new groups, or alternative ways of classifying. Look at the ways you differentiate between members of each group.
You'll grow long lists – the interesting part is how you organise the items.
:x Relate In and Out
Find one-to-one, one-to-many, many-to-one, many-to-many relationships. Consider if the system is making a decision, or if an internal or external state (otherwise unconsidered for the model) might be influencing.