In the business world today, software systems are the life-blood of almost any company. Competitive pressures, customer demands and flat or reduced IT budgets require increased quality and productivity from the development team. The challenge of delivering faster and better solutions is now harder than ever, thanks to complex business requirements, constantly changing technologies and growing development teams that are often widely dispersed.
The solution is to establish control over the software development process. Just as every enterprise has a strategy designed to accomplish the overall objectives of the organization, so must they have one for achieving software system objectives.
A successful strategy for achieving software system objectives depends on the clear expression of distinct business requirements. This has lead to the widespread adoption of requirements management as the core discipline or ‘best practice’ of modern development processes. As a result, having key business requirements drive the entire software development process within the enterprise is of primary importance.
Business requirements that allow requirements definition, development and verification to work together, enabling the team to define and maintain the project's vision from inception to completion, drive modern development practices. An integrated solution supports the entire development process.
A requirements driven development process (RDDP) imposes controls on the project to ensure all changes to files, such as design documents, specifications, models, reusable components, source code—in fact any asset stored in the repository—is traceable to an approved requirement. This drives every facet of the development process: the cost and time to fulfill the requirement, the tasks required to develop and build the requirement, the resources working on the tasks, the designs associated with the requirement, the source code created, the changes requested and approved, the defects discovered against the requirement and so on. Requirements must also drive the verification process to ensure the information on both the existence of a test case associated with the requirement and the progress of the test case against the requirement is recorded and available. Using RDDP to drive your development process from the perspective of approved requirements provides many benefits.
Benefits to the Enterprise
From the enterprise stand point, the development process creates and maintains a wide range of development assets. These assets can include discussions about an aspect of the project, documents and models associated with the design of the application, the actual software that is developed or purchased, the tests used to verify the correct operation of the software and the assets that drive the development process. The assets that drive the development process are requirements. As the project progresses, other assets may be driving changes—changes to the requirement over the course of development will be driven by change requests. When the application is tested, defects will be driving the corrective change. Tasks may also be required to drive the process. After deployment, both defects and change requests for enhancements will be the drivers.
In requirement driven development, the change requests, defects and tasks are always associated with the initial requirement. A requirement driven development process can improve the focus, traceability and visibility of all the development assets. However, this benefit is significantly increased if all assets (requirements, design documents and models, source code, change requests, tasks, discussion topics, tests etc.) are defined as unique objects and managed by supporting tools.
Focus
Defining all development assets as unique objects can improve the focus of the development team. Clearly defined, uniquely identifiable requirements improve the quality of development and enable requirement responsibility to be easily allocated and tracked. Specific requirements can be allocated to designated team members for definition, approval, development and testing.
Using the same paradigm across the entire process enables work on all development assets to be easily allocated and tracked. The granularity of the asset allows team members to work on their own allocated assets, in parallel with each other, as access rights are at the asset level. This paradigm also facilitates access to the right asset at the right time keeping the team focused.
Traceability
Defining all development assets as unique objects also enables traceability. Relationships between similar and dissimilar assets can be established and then used for impact analysis, problem detection and resolution and quality assessment. Using requirements to drive development combined with the ability to establish asset relationships enables requirement traceability across the lifecycle.
Requirement driven traceability will help reduce scope creep and rework, and thus significantly improve the application quality and productivity. For example, a requirement may be traced to its related system requirement(s), test requirement(s), designs, source code or component module in order to easily conduct impact analysis any time a change to a requirement is identified or anticipated.
Tools that support automation of the traceability, and enforcement of it where relevant, will significantly improve process control and productivity. Good tools also support automatic publishing of approved requirements and requirement changes to the designers and developers who are going to fulfill them.
Visibility
Defining all development assets as unique objects also enables traceability. Relationships between similar and dissimilar assets can be established and then used for impact analysis, problem detection and resolution and quality assessment. Using requirements to drive development combined with the ability to establish asset relationships enables requirement traceability across the lifecycle.Requirement driven traceability will help reduce scope creep and rework, and thus significantly improve the application quality and productivity. For example, a requirement may be traced to its related system requirement(s), test requirement(s), designs, source code or component module in order to easily conduct impact analysis any time a change to a requirement is identified or anticipated. Tools that support automation of the traceability, and enforcement of it where relevant, will significantly improve process control and productivity. Good tools also support automatic publishing of approved requirements and requirement changes to the designers and developers who are going to fulfill them.
Defining all development assets as unique objects and establishing relationships between them also increases visibility of assets across the lifecycle. Each asset can be described in terms of comprehensive metadata adding to its visibility.
The right RDDP tools support the grouping and displaying of assets according to customizable criteria enables team members to view assets in any way they wish. For example, a specific type of asset such as a requirement, file, change request, discussion topic or task should be able to be selected for viewing individually or in relationship to other assets.
A development asset can be seen from any perspective. Implementing a requirements driven development process will often emphasize the requirement perspective in terms of the requirement driving links, traces and reports. Without RDDP and the tools to enforce it, assets are created and maintained without any knowledge of, or relationship to, any of the business drivers—requirements, change requests and/or tasks. The result of the adoption of RDDP and supporting tools is a dramatic increase in application quality and team productivity and therefore the return on the investment in software development.
There are many ways to implement RDDP. Modern development practices provide customizable process frameworks describing the recommended lifecycle activities, the deliverables from each activity and suggested techniques for achieving the deliverable. Required skills for each activity are also often defined as part of the process documentation as well as suggested user roles involved in the approval/review processes. These software development process frameworks are driven by business requirements allowing the key software disciplines of requirements definition, software development and verification, to all work together to enable the team to define and maintain the project's vision from inception to completion.
Development is not a sequential ‘waterfall’ process, but is a collaborative effort where members of several teams must have on-going interactions in order to achieve the business objective expressed in the requirements. Information must flow in both directions if true collaboration is to be achieved.
Conclusion
Implementing a Requirements Driven Development Process has become mandatory for modern development organizations. Selecting the appropriate development tools to implement the process is critical. Implementing RDDP will improve focus, traceability and visibility of all development assets created and maintained in the development process. This solution enables you to gain control, achieve measurable and definable improvements and increase your return on investment in software development.
Mr. Hunter is responsible for Starbase's product engineering, quality assurance, quality control programs, and MIS/IT departments. Mr. Hunter has over 15 years extensive experience in product strategy, managing software development projects, quality assurance, and team building. Mr. Hunter was most recently the Vice President of Engineering for Mustang Software, Inc. Mr. Hunter holds a BS in Computer Science and minor in Economics from the California State University.
You can reach Mr. Hunter by email at Scott.Hunter@Starbase.com
Trackback(0)
Comments 
Write comment
 |