I can tell you for me it has been plenty!!!!
Whilst requirements specifications are a great way to document the detailed information related to a new or existing product's functionality we all live in a time poor society and few of us have the time to trawl through large documents and extract the information we need and then start the seemingly endless e-mail threads to discuss the individual use cases associated with each requirement consisting of many messages that start and end with "what did you mean by X?", " I meant X and Y but I think you thought I meant Z!" Instead why don't we adhere to the adage of a picture tells a thousand words and instead of page after page of documents create a visual representation of those requirements - hopefully communicating a thousand words in a single picture.
However, what we must remember is that visualization of requirements can vary in its meaning. For example, some people may view requirements visualization in the same context as simulation diagrams, whilst others interpret visualization to mean simple use case diagrams or business process flows typically created in a MS Visio type tool. For me, all of these usage contexts can represent visualization, so instead of trying to classify visualization into one genre I thinking it is best to view it on a scale with simple flows at one end and high end simulations at the other - and the user selects which method is most appropriate for them at any given time. For example, if you are trying to show how a user will move through an application to make a purchase then using MS Visio to define process flows may be enough. However, if you are trying to envisage how a new UI (User Interface) may look then mockups and more rich content visualizations would serve you better. Whichever method is selected there are a number of benefits that come from visualization these include:
- Flexibility and Usability - flow diagrams can be easier to navigate helping to find content
- Mistakes can be easier to identify in a visualization
- Easier to identify potential parallelisms between requirements and business processes
- Easier to spot missing Use Cases in business process
- Increase understanding of the requirements themselves
- Increase understanding of the dependencies between requirements
- Visualization of business flows can provide a first bridge to Business Process Models or SOA repositories
Now that we have explored some of the benefits of visualization the question now becomes when should it be used? Should we visualize every requirements we write or just some and if we are going to be selective which requirements should we chose?
In my opinion there are a number of questions we can ask ourselves which can help to determine when to and when not to visualize. These include (and there are many more):
- Type of development method - we need to ask ourselves the question do requirements visualizations fit in with the need for more agile and rapid requirements definition or will they add more time to the development process?
- Complexity of the requirement - if a requirement has too many sub requirements will this create a "spiders web" diagram which may overcomplicate the definition of the requirement?
- Type of requirement - should we visualize the user story only and define the functional requirements associated with this user story as text or do we want to visualize all requirements?
- Risk level of the requirements - should only high priority or high risk requirements be candidates for visualization?
It is important to note that I am not saying that requirements visualization is a "panacea" for enabling effective business and IT communication but what it will do is act as a good facilitator to help initiate a better degree of communication and understanding between the two parties.
So now the decision is yours. Why not try visualizing requirements and feed back to the group how things go.
Genefa Murphy works and blogs with Hewlett-Packard where she is Product Manager for Requirements Management. This article first appeared in HP Communities.
© Copyright 2009 Hewlett-Packard Development Company, L.P.