A recent IBM whitepaper illustrates how well executed requirements management drives the success rate of software development. Quality requirements will lower the possibility of software failures and are likely to be cost-effective. Regardless of whether you are a Software Development Company or developing an in-house project, a key driver of successful project completions is creation of well-defined requirements that comply with operational function. This becomes even more important with outsourced software development, wherein team members may be scattered across the globe and collaborating remotely.
1. Perform requirements capture effectively
Business function drives the requirements definition process and must be thoroughly and accurately captured, with no duplication. Well defined requirements must be complete, consistent and unambiguous. Duplication of definition can obscure the actual requirements and be a waste of time. Related requirements must not contradict each other. Requirements prioritization can also take place. Techniques used for capture might include analysis of natural language documents. Visual editors help in diagramming and story boarding will help to create clear functional specifications.
2. Perform requirements, analysis and validation to reduce errors upstream
Apply quality assurance to requirements definition. Performing due diligence in gathering quality assurance system requirements is likely to save money later on. When the QA portion is not well executed, requirements errors can make it all the way into your deliverable code, the most expensive type of error to fix. Consistency checks should be a part of this QA. It’s essential to maintain traceability of documents throughout the lifecycle. Outsourcing software development necessitates predefined requirements.
3. Integrate with Agile Lifecycle Management processes and tools
Functional change must be managed as part of the requirements. Business strategy and function evolves to meet real world forces, structures and events. A time component with versioning will indicate this change process. Following integration standards and published APIs helps maintain consistency and clarity. You should be supporting end-to-end traceability from business function through to software implementation. If changes need to be made, examine the impact on implementation.
4. Specify rich reporting features that will facilitate knowledge sharing
Specifications for regulatory compliance, models, and images, agile just enough documents, analytics requirements for usage patterns, powerful search capabilities, access to auditable requirements history changes and requirements by baseline reporting may be essential to a viable product.
5. Specify rich access by all stakeholders.
This includes web access, document availability in a wide range of formats, and role based access control for organizing this critical resource by functionality. You might consider making audit trails available to regulators and other relevant 3rd parties.
6. Specify reliable storage and management of requirements
This storage should be scalable on a global basis that may include SaaS. Backup and recovery of this asset is essential as is database storage. Your requirements’ repository should be available 24/7 and accessible by a wide range of valid users.
While there may not be a single ideal tool for requirements management there are ways to cost effectively manage this process. Understanding of your initial business process requirements will probably evolve as you progress and you can study the capabilities of different tools as they relate to your increasing knowledge. Ideal tools are those that will help you share understanding with others and move the process along with greater clarity.