Rather than spending several months cranking out a comprehensive requirements document, agile methods teach us that it is better to approach the creation of requirements as an iterative process. Creating requirements this way helps generate feedback, promotes collaboration, and enables teams to identify potential defects earlier in the software development lifecycle.
I recommend that the business analyst start by defining the high-level business requirement, describing who needs the functionality for what purpose and why. Then, rather than working in isolation, the analyst should go back to the major stakeholders to get feedback. Does the high-level requirement adequately describe the business need? Is there enough information to get developersstarted? If not, drill down to add an appropriate level of detail and check in again with the stakeholders. Repeat until there is agreement that there is enough information, and then let the developers get going.
Remember that different requirements will require different levels of detail. Reduce complexity by providing just enough elaboration without overdoing it. This will save time for both the business analysts who define the requirements and the application team members who consume them.
Requirements do not have to be written in paragraph form or as lines of code. Sometimes, a picture really is worth a thousand words. Agile methods teach us that visualization can increase understanding of both the requirements and the dependencies between requirements. Visualization can make it easier to identify potential problems, such as missing use cases. Pictures can also be easier to read and navigate than text-based requirements.
Even with these benefits, it does not make sense to visualize all requirements. The following criteria should be considered when deciding whether to use visualization:
- Will requirements visualization speed up requirements definition, or will it add more time to the development process?
- If a requirement is very complex and has too many sub-requirements, will creating a picture turn into a "spider's web" diagram that may overcomplicate the definition of the requirement?
- Does it make sense to visualize the high-level requirement only and define functional requirements associated with it as text, or is it appropriate to visualize all requirements?
- Should high-priority or high-risk requirements be the only candidates for visualization?
There are many methods to use for visualization of requirements. For example, when showing how a user will move through an application to make a purchase, using a tool such as Microsoft Visio to define process flows would be appropriate. However, mockups and more rich-content visualizations will be more suitable when describing how a new user interface should look.
Requirements visualization is not a panacea for business and IT communication, but it can act as a facilitator of better understanding between business analysts and the rest of the applications team.
Building applications right the first time is more important than ever. These applications not only need to meet the needs of the business, but they have to overcome extremely complex processes. To add to the challenge, customers are accustomed to accessing information when they want it, meaning the applications need to always be available, in an instant.
In order to overcome these complexities, organizations should leverage these practices to properly define application requirements. This will allow application teams to execute more efficiently, lower costs, and eliminate rework—all while meeting the needs of the business and providing instant results to customers.