If your requirements elicitation session looks like the photo above, you’re doing it wrong. However, just asking people what they want and confirming that you heard what they said is also not enough. Active listening is important, but to capture great requirements, you also have to provoke thought about why someone is expressing a “requirement.”
Adrian Reed wrote a great article this week (hat tip to Kevin Brennan) on asking provoking questions that leverage lateral thinking techniques to get better insight into the true requirements. Adrian presents eight questions, such as “Imagine if we fast-forward to 2 years after the implementation of this project, what will the organisation look like?” Some of his questions remind me a lot of the ideas behind Enthiosys’ Innovation Games (and Luke Hohmann’s Innovation Games book). The remember the future, and product box games immediately come to mind.
Most good subject matter experts I’ve met, when asked about the important problems to be solved, try and be really helpful and incorporate elements of solutions in their descriptions of problems. They will say things like “the system must integrate with [other system] to do X.” They may even ultimately be right, that this particular system integration is a constraint, and that “X” is the only acceptable (by policy) way to achieve “Y.” But usually, neither constraint is a requirement – it is a solution approach.
Subject matter experts who are not as good at having and sharing insights about their domain often confuse problem manifestations with their underlying problems. By analogy, it is requesting treatment for a runny nose, when the problem the you have is the flu. You can dry up your nose and still feel horrible.
Provoking Questions Reveal Real Problems
Adrian’s questions are designed to help you understand that you’re treating the flu, and not a runny nose. Requirements gathering is a lot like diagnosis of a medical malady. You have to discover the real problems. The problems that people are willing to pay to solve. You have to uncover the latent problems that are “hidden” behind problem manifestations.
In a (rare for me) American football analogy – the problem manifestation is that your quarterback is completing 1 of 20 forward passes. Replacing the quarterback and receivers will not solve the problem. The problem is that your offensive line is not able to give the quarterback sufficient time to throw higher-probability-of-success passes.
Asking questions that force people to describe their objectives differently is a good way to bypass solution-design answers. It also creates chinks in the armor of problem manifestations. Completing more passes is not the future you’re looking for, winning more games is the goal. When you’re treating your flu, your goal is not to be sick – but with a dry nose. Your goal is to be well. When you ask someone to remember the future, they will will describe being not sick, not being dry-nosed. The product box will be a description of a winning team.
Check out Adrian’s list of questions, and ask yourself, how do you get to the root causes? Ishikawa diagrams (also known as cause and effect or fishbone diagrams) provide a great visualization tool if you’re a spatial thinker or a whiteboard-talker. In the example below, you can quickly see that spending too much on fuel is part of the real problem – that the cost of operation is too high. You can likewise see that under-inflated tires are a source of poor fuel economy. Check out the Ishikawa article for an explanation, or this article on providing context (with Ishikawa diagrams), and this article on buyer and user personas for more examples of problem decomposition.
If you’ve got any examples of problem-statement-turned-problem, chime in below…
Reference: Provocateurs Gather the Best Requirements from our JCG partner Scott Sehlhorst at the Business Analysis | Product Management | Software Requirements blog.
This guide will introduce you to the world of Software Architecture!
This 162 page guide will cover topics within the field of software architecture including: software architecture as a solution balancing the concerns of different stakeholders, quality assurance, methods to describe and evaluate architectures, the influence of architecture on reuse, and the life cycle of a system and its architecture. This guide concludes with a comparison between the professions of software architect and software engineer.