The crucial importance of requirements management
Ken Harkin of Sparx Systems explains how effective requirements management can save time and prevent mistakes
The concept of requirements which today has become a formal process critical to successful outcomes is familiar to many organisations large and small around the world. The modern definition of requirements is a singular physical and functional need that a particular product or service must be able to perform.
It is most commonly used in a formal sense in systems engineering and software engineering, but is often used in enterprise engineering. The requirements-gathering task and the necessity to use the best tools available is best demonstrated in standards development. This is becoming more complex day by day, and therefore increasingly challenging.
Standards being developed for the industries and technologies of today must be able to withstand the pressure of rapid market change, the high-speed evolution of existing technologies, the emergence of new technologies, and associated process change. Simultaneously, harmonisation is widening the range of stakeholder interest in the development of standards.
Faced with these challenges, it is essential that best practice is followed and that includes the use of powerful tools by anyone who is managing requirements. The requirements management function is the first step in a trail of traceability from requirements through use cases or user stories, model design, code generation, testing and deployment.
Preventing chaos
It is crucial to identify errors and discover needs during the requirements phase. Effective requirements management goes a long way to eliminating most design mistakes and reducing failures during the development process: we are all familiar with the saying ‘a stitch in time saves nine’, which advises early remedial action to avoid deterioration later.
This wisdom withstands time as many benchmark studies show it is much less expensive to identify and capture requirements early in the development lifecycle. Systematic and effective requirements management based on best practice captures risks earlier in the lifecycle and should help to reduce errors by controlling element characteristics in complex projects.
From the smallest business to the largest enterprise, cost overrun, project failure and in some extreme cases loss of life may well have been avoided had the requirements been complete. In the CHAOS Report by the Standish Group, which examines failed projects, three reasons were identified for project success: a clear statement of requirements; user involvement; and executive management support.
Requirements management is the essence of successful project outcomes whether it is software or product development for business or engineering, change management, or project management. One simple necessity is to ensure that the business and IT stakeholders understand each other.
Seeing is understanding
A visual representation of how requirements interact and depend on one another is powerful; it can help users understand what they want by using mind mapping to give a clear and contextual idea of their requirements.
Collaborative tools, such as Enterprise Architect from Sparx Systems, provide the ability to electronically document requirements and capture any artefacts (audio, video, pdf, etc) in a common model. This requirement model provides a complete, inclusive and easy-to-understand picture for stakeholders, which creates assurance and strengthens stakeholder commitment.
Requirements management is the essence of successful project outcomes
Again, where users are uncomfortable with written requirements, a picture is worth a thousand words, since a group of related concepts is often easier to remember than written material. This is why the use of mind maps assists with problem solving; different stakeholders, by visualising relationships, can more readily recognise their shared concerns about a given requirement.
Mind mapping improves verbal communication by enabling stakeholders to outline their thoughts spatially and subsequently articulate the meaning behind the concepts they have outlined. Using mind maps, the group can provide support to the individual by helping them find the words to communicate concepts represented by the mind map.
The system or product being produced displays quality aspects that result from effective requirements management. The requirements statement identifies a necessary attribute, capability, characteristic or quality of a system in order for it to have value and use to a user.
Matching expectations
Quality is not an accident and such statements are created on the basis of a well-considered and effectively executed process involving all the relevant stakeholders. The objective of requirements management is to increase the probability that a given project will deliver applications with the expected functionality.
With complete traceability from mind mapping, requirements and business process to software design and deployment, the overall likelihood that problems will be introduced is effectively mitigated. This expectation is more realistic with the ability to store requirements in a central and secure location, track artefact inter-relationships and control changes to single and group requirements.
Today, it is not uncommon for development teams, customers and stakeholders to be geographically dispersed, and efficient tools are necessary to link and organise people working on shared, complex projects. Using tools such as Sparx Systems’ Enterprise Architect, these stakeholders can effectively collaborate on projects by understanding who is working on specific tasks, what roles are to be filled and who has responsibility for the various aspects of the project.
Different team members and stakeholders must be able to input information that is relevant to their roles and activities, and is useful to the other members of the project. This implies the necessity to capture this information in a model that is available to all team members, overcoming their geographical limitation. Since the requirements function is essentially a detailed tapestry of the project elements, their definition, their inclusion and their traceability must be visible to the entire team.
For instance, a database analyst, a programmer and a security analyst could be assigned to work on a requirement. These resources must be managed to ensure their availability to work on assigned tasks, which exposes the need for integration between requirements management and resource management tools. Again, depending on the particular role, tools such as Enterprise Architect provide many different role-dependant views of the same information.