This is a guest posting by Simon Knight. Simon Knight works with teams of all shapes and sizes as a test lead, manager & facilitator, helping to deliver great software by building quality into every stage of the development process.
Albert Einstein famously asked the question; “How would it feel to ride on a beam of light?” Why don’t you take a moment and just think about that yourself; how would it feel?
Nobody knows the answer. We can speculate. Scientists can synthesize information and hypothesize possible answers based on available data. Still, we don’t know. Maybe we never will. You might reasonably argue that the answer doesn’t matter anyway. I mean, who cares – right?
But isn’t it fun to think about anyway?
“Imagination is more important than knowledge.” – Albert Einstein
The point of the exercise isn’t necessarily to find the answer. Using your imagination to explore unknown realms brings rewards of a different kind. That’s not to say you should give up on the idea of trying to find the answer. After all, your own thought experiment may be an order of magnitude more solvable than knowing what it feels like to ride on a beam of light. Einstein was just a child when he pondered what would turn out to be one of his most fascinating lines of inquiry. It certainly didn’t hurt him or his career.
Amazing things happen in the brain when you let it roam free. When you allow it to explore the boundaries of the known, and take excursions into things yet to be known.
This is one of the joys of my work, in the field of professional testing. The exploration of things. Software, systems, artifacts. Always questioning. Always seeking answers. Always trying to dig a little bit deeper.
“I have always loved things. Just things in the world. I love trying to find the shape of things.” – Leonard Cohen
One of the challenges of software testing is that the focus of your efforts are often somewhat abstract. However, the specific thing you’re currently exploring (or testing) may have elements of physicality. It may have an interface purposely designed for users to interact with, including buttons and displays. It may even be a physical device like a phone, a watch, a robot or a headset.
If you want to sharpen your noticing powers, it’s worth paying the physical realm some attention. The things you explore with your mind don’t have to be abstract. They can be things right in front of you. Everyday things. Things you sit on. Things you work or play with. Things you put on or into your body. When you explore, you should use as many senses as possible to determine the shape, weight, texture and substance of a thing.
You need to take an interest in every part to test what you’re working on effectively, and to its fullest extent. You need to show a deep concern for each component and interface. A passion for every detail.
“Look with all your eyes. Look.” – Jules Verne
First Class Noticer
If you’re a tester, you’re basically being paid to observe and to gather information of importance for people who care about a facet of a product. Different aspects of what you do will be for different levels of interest to the people you report to. Ultimately, the whole product is important to somebody, somewhere. For example, the wearer of a smart watch isn’t going to care about the clear, clean user interface if the clasps of their watch are so fragile they can’t leave their home without the device falling into pieces. Nor will they care that it wasn’t your job to test that part. The whole experience is what ultimately counts. In order to give people the experience they’re searching for, you need to become a Noticer of the highest order. An explorer of every aspect of your software, your device, your project.
First-Class Noticer – noun (coined by Saul Bellow in his novel, The Actual)
Someone with the ability to spot important details among noise.
As a tester, it’s your job to become a First Class Noticer. Your ability to identify key issues of concern, separating them out from the surrounding noise, bringing them to the attention of others clearly and persuasively, are skills that separate First Class Noticers from ordinary, or Second Rate Noticers. Testers often joke about having OCD. The ability to notice or observe important details that others miss may come naturally, or it may not. Even if it doesn’t come naturally to you, there is still room for you to build your existing noticing skills from a standing start.
Here’s Nine ways you can Develop First Class Noticing Skills:
Make sure you are always looking – keep your eyes open and attentive always. Be completely open to the possibility that something of interest is happening either right this very moment, or very soon will be. If you don’t pay attention – you might miss it!
Think about ways you can capture more information from the software or systems you’re testing, so you can look in more places at once. Can you monitor the logs while you’re testing? Can you observe network traffic? What about resource utilization on your servers? What other information might you have missed? Did you read all the documentation? Is it up to date? Does it cover everything it needs to?
Deem everything interesting – stay curious! Try to cultivate a sense of wonder, go far beyond the surface. Be deeply interested in the object of your attention. Look at all aspects, elements, components and sub-systems. Keep building upon your understanding. Make detailed notes. Drop and return to them later if you get bored. Slow your work pace down if necessary (and justifiable) so that you can follow a line of inquiry to a conclusion. You never quite know what you may discover and learn along the way.
In my experience, it can be useful to occasionally put time into something that isn’t directly related to what you are working on. For example, investigating a new tool may not help you make progress on a deliverable in the moment. However, if it proves to be useful, is likely to realize many benefits in the future, outweighing the cost of time originally spent. That’s what makes the time invested justifiable.
Change course often – don’t allow your brain to get stuck in a rut. Allow your mind to wander and explore many different paths. Focus for a period, then refocus and change your approach. Use heuristics to guide your thinking. Randomize them if this is helpful or necessary to move forward.
Your brain is lazy and will happily settle into a groove (see my eBook: How to Bust a Testing Groove). It can be difficult to break out of a rut if you allow yourself to stay there for too long. The best thing to do is not to allow your mind to settle in the first place. Using heuristics to guide your thinking down avenues that your brain might otherwise resist, is a great way to disrupt its natural tendency towards idleness.
Observe for long durations – what might you notice if you just maintained your attention a little bit longer? Does the state change over time? Are there details you may have missed previously?
Buddhists and other traditions have methods of meditation that lead to a condition they call Jhana – a “state of profound stillness and concentration in which the mind becomes fully immersed and absorbed in the chosen object of attention.” It’s surprisingly easy to enter this state of profound concentration:
- Stare really hard at a thing for 5-10 minutes
- Repeat step 1 until everything in your peripheral vision gets dark, and only the center of your vision is bright.
Whether you use this method or not is up to you. Personally, I’ve found mindfulness meditation to be a useful and reasonably effective tool for practicing increasingly longer periods of focused attention. It’s like the steps above, but without the staring. Or the tunnel vision.
Sometimes though, it’s just difficult to separate out the distractions, and for those occasions a Pomodoro timer is a useful accessory.
Pay attention to the stories around you – consider the narrative of the situation you’re in, or the application you’re testing. What might be going on in the end-users’ world? How might their story affect the use of the software?
Everything around you has a story, a context of some sort. Your job, as a tester, as a First Class Noticer, is to act as an exegetic for the story of your software under test, and for your project. To interpret events, issues, bugs, threats and risks and explain to the people who care about them what they mean, in the context of their occurrence.
Look for patterns and connections – where are the dots and how are they joined? The very act of attempting to identify the patterns and connections between different items is likely to expose gaps in your own understanding, and potentially omissions in the product that has been delivered.
This is an area where you can add significant value as a tester. With many teams and projects focusing hard on trying to automate everything, it’s easy to forget that machines, at least for the moment, only do what we’ve programmed them to. They only look where they’ve been told to look, and only see what they’ve been programmed (or trained) to see. The application of your human intelligence, though imperfect, is nonetheless a powerful tool for separating signals from noise.
Document your findings – be a compulsive note taker! Take the mechanics of note-taking seriously. Invest in a quality notebook (I tend to have numerous Moleskin note books lying around for various kinds of notes) and take one everywhere with you. Use it judiciously.
Don’t forget to review them occasionally either. Look for insights. See what jumps out at you. What inspired you? What confused or irritated you? When you re-encounter an anomalous behavior, did you make a note of it? Was it timestamped? If you use a tool like Evernote, you can add screenshots, videos, snippets etc and have access to them from whatever device you’re working on!
Don’t judge, be indeterminate – when you judge, what you’re really saying is “I already know as much as I need to about ”. You’re closing your mind to possibilities that lie outside the realm of your current worldview.
And that’s fine, I won’t judge you for that. 😉
But, it means some insights may elude you, had you remained open to alternative possibilities or world views. Seek to hear what the object of your focus shows you, instead of imposing answers, trying to shoehorn a situation or problem into a predefined conception, or trying to control the order of things.
Use all your senses – being a First Class Noticer isn’t just about using your eyes. You should always be listening too, and using any of your other senses that are appropriate for the situation. For the purposes of this exercise, you might also consider your emotions as sources of useful information. Do you feel confused? Angry? Offended? What does that tell you about the object of your attention?
Beyond Software Testing
In each point above, I’ve applied the principles primarily to software testing activities. Hopefully you realized as you read through them, that these principles can be expanded far beyond software systems and applied elsewhere. For example, you could apply your noticing skills to the people and activities involved with the project your working on. Watching how the product is developed, and how the people who are developing it behave and communicate with each other. Paying deep attention to how people are interacting during meetings, conversations, in emails and tickets, can provide powerful insights into the root causes of bugs and other issues that emerge over the life-cycle of a project.
Developing your noticing skills can take you much further than software testing. If you aspire to a leadership position, the ability to observe, reflect upon those observations and incorporate them into deeply considered decision making process will serve you incredibly well. While you’re heading in that general direction though, enhancing and applying your noticing skills can, and should, be a key part of your software testing repertoire.