Requirements — the foundation of any (every) software application/ product. For years software organizations are constantly suffering from various issues related to requirements and hence trying to find better solutions and techniques to manage requirements. But, there is nothing concrete and reliable solutions or techniques/ methodologies yet that can be used as a cent percent solution for managing and maintaining requirements in better way. Ideally, it seems very little is done to mitigate this long-living problem and the scope is still limited but highly demanding. Well defined and clear to understand requirements is always one key player that can lead to fewer mistakes and other uncertain or certain errors in the later stages and ensure successful project completion.
What are requirement(s)?
Basically, requirement is a condition or capability needed by a user to solve a problem or achieve an objective that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document. The IEEE Standard 1233-1998 focuses on 3 important parts (points) that a requirement must contain:
Where, capability means ability of doing something e.g. Computer has data processing capabilities. Condition, state of something (e.g. weather conditions) or in other context existence/ appearance of any entity for something to happen (e.g. Account access can be availed on certain conditions.) and Constraint means either limitation or restrictions e.g. dropping testing activities due to time constraints.
Not just the above three points are equally vital to define and design any requirements for a target application/ product but I would like to add 2 more points and these are Clarity – means free from obscurity and easy to understand and the second one is Complete, which means perfect and up to the mark in every respect. The more clear and complete the requirements, lesser are the chances for errors and mistakes and then the derived hassles.
In other context requirements are the base which finally results in the form of application or a product. Requirements are the documented needs of a project that are gathered to identify the specific constraints (scope) of each project component and act as the foundation for everything else that occurs in a project.
Requirements – The Foundation
“Requirements” is the foundation on which any application or product is built upon and also are the pillars on which the product stands on and holds to. Hence, stronger, clearer and constant the requirements better and reliable the product is built and higher the quality achieved.
In any field if observed closely, if the requirements/ objectives are not clear and properly (precisely) defined the results are always a worry and headache in all the later stages and finally a complete failure; lets take a simple example “One cup of sugar free tea” now here, the tea to be prepared for a diabetic patient (or sugar free) or a normal person is not clearly specified (because too many meanings can be derived like i) tea using Sugar free Sugar for diabetic patient or normal person, ii) tea for a diabetic patient with normal sugar, iii) tea for normal person with normal but less sugar, and so on.); thus, it is natural that the prepared tea will contain sugar (either sugar free or normal as it is no t clear enough) which means that the final product is not as expected and this may lead to completely scrap the final product i.e., “Failure” and the reason is poor, unclear or incomplete requirements.
The above requirement may be easy and much clear to understand in the re-phrased structure as “One cup sugarless tea for diabetic patient”.
Similar simple scenario in different context, tea for 5 people, 2 cups for diabetic patients. The requirement seems too simple and may be understandable enough but still lacks clarity and completeness thus, can be re-phrased as “5 cups of tea, 2 cups sugar free for diabetic patient and 3 cups for non-diabetic people”.
Even though elaborated, above examples still may be incomplete and confusing if they do not have other relevant data specified like the type of tea i.e., Black tea/ dark (strong) tea/ Light tea or if the ingredients-wise classification is not clear like Ginger tea/ Lemon tea, etc.
The above example may not seem much technical but it explains the context either way. As stated earlier there is little done and exists that can be a vital workout for these classic chaos, the woes are also due unavailability of standard and universal tools/ systems that can be used to mitigate and overcome the requirements management concerns. There are few traditional ways that industry knows and a few select tools that can be quite helpful to the software companies but depending on the availability and the requirements of the requirements management.
What’s the current story?
Presently, till I know, excel and or word doc based requirements management is one of the widely used (accepted) and a classic way of organizing, managing and maintaining the requirements. It still takes the major share in the industry because of its simplicity and easy availability. But this is really a cumbersome job when it comes to the part of gathering these requirements to define the specifications and the higher level designing.
Now, as the software development process is gradually changing and the development techniques have been faster and more time-bound it is crucial that the requirements needs to be properly formatted and well organized and conveyed thus, managed and maintained. This may not be true enough in case of traditional excel/ word doc based methods.
Any Tool supports?
This is a critical and more or less complex question to answer with justification that is there any tool that helps in managing the requirements management but, up to greater extent the answer is yes and there are few valuable and useful tools that would really help managing these tasks, some of the software’s that are available are JAMA’s requirements managements tools and Rational’s DOORS, RaQuest and few others which are very less known or either used.
Is it wise investing in tool?
This is very crucial question that needs to be very well justified that whether the investment on a tool for just a single task is enough and worth? Will it give the intended ROI? And what if the expectations fail? Because investing in any tool is a big cost and software companies usually do not make up themselves for investing on tools. Ideally, it is a wise decision that investing in a tool will definitely be helpful and guarantee better process approach and organizing of requirements managements activities. But, the decision is of management; as cost factor that matters!
How about Test management tools?
Thinking in different way is considering the Test Management as an alternative and this is really value driven approach in order to get more from the investment made as many of them provide or possess the requirements management capabilities as well. Today, there are many test management tools available in market and many of them have their own advantages and disadvantages like QC, ClearQuest, SilkCenter, QMERTY, etc all with their unique features and functions. While, QMERTY is one of the tools that is used usually for Test management activities in many organizations with one of its extreme valuable feature of “Requirements management”.
QMETRY (http://www.qmetry.com) provides extensive capability to manage requirements and link them to testcases as well as defects for traceability analysis. By defining Requirements, you can plan and manage tests that are more focused on your specific business needs. Not only this but as requirements are also associated to tests and defects to provide complete traceability and to aid the decision-making process. QMETRY with its advanced search feature allows you to locate any requirement within seconds and see all versions. In addition, QMetry has a highly demanding and well formatted reporting mechanism which provides basic reports and allows you to generate advanced reports based off your requirements. Just select your requirements and plug away, simple yet efficient. Just as if you invest and then earn the interest with periodic bonus because QMETRY is just not a requirements management tool but a complete test management tool so the ROI is assured and highly appreciated!
Hence, managing requirements is not just easier task but needs sufficient time and proper organizing capabilities in order to manage and coordinate them. As if the foundation is laid it must be strong enough and always one grade ahead than the target so as to withstand the structure strongly and unmoved, thus building the foundation strong!
- Effective Requirements Definitions and Management, White Paper. Source — Borland.
- Introduction to Requirements — The Details That Make or Break a Project. Source —Global Knowledge.
- 7 Essential Tips to Ensure Success with Requirements Management. Source – Jama Software.
- The Secret to Designing Products Customers Love — Manage Requirements Effectively. Source — Aberdeen Group.
- Requirements planning: overlooked and undervalued. Source — IBM.