Free Site RegistrationFree Site Registration

Sign up today and access Information Management on the web!
Your FREE registration entitles you to:

FREE email newsletters

FREE access to all Information Management content

FREE access to web seminars, resource portals, our white paper library and more!

Improving Traceability and Auditability Across the Development Lifecycle

InfoManagement Direct, December 28, 2007

Dominic Tavassoli

The Increasing Pace of Change

 

Software development processes are being put to the test by conflicting priorities of faster time to market, flawless quality and governance that are layered on top of the constant need to respond to changes that are introduced into the lifecycle. Teams must also respond to demands driven by C-level management and boards of directors. From changing market conditions, evolving user needs and competitive pressures to service-level agreement mandates and service-oriented architecture (SOA)-related change response commitments, just about everything that impacts an organization impacts the software development process.

Advertisement

 

According to the “Chaos Chronicles” report, allocated requirements increase one to two percent per month, or more than 30 percent for a two-year project. The same source states that only 52 percent of originally allocated requirements appear in the final released version.1 With any change comes an element of risk: are all team members working toward the same goal? Any inconsistency in communication and coordination can have dramatic effects on the project cost, schedule and quality.

 

To address this challenge, many development organizations must add a level of agility to lifecycles that are traditionally based on the waterfall model. Iterative implementation, test and delivery cycles allow teams to continually move with the flow of requirements. Priority features are implemented first, the current build of the software is compared with requirements and new key requirements are addressed by adding to the software. Then the product is regularly presented to customers (or key representatives) and their feedback also influences the project plan.

 

The increasing success of SOA also underscores the importance of change management, visibility and verification. The loose coupling of services enabled by SOA provides the development team with the ability to change a service without having to impact the consumers of that service. The challenge is that some service or consumer changes will require modifications to the respective service contract or interface. The service contract contains the functional metadata that describes how to interact with a service as well as the nonfunctional metadata that defines what conditions and restrictions apply to consumers looking to access service functionality. When such a change occurs, the service, service contract and consumer will all need to change at the same instant to avoid breaking the process. For this reason, change management and traceability play a particularly important role in SOA by ensuring the schema, service metadata and relevant services change concurrently to maintain interoperability from release to release.

 

Traceability from Requirements to Code

 

A first key to consistent communication is traceability: providing key players with the information they need to make better decisions directly leads to improved customer satisfaction, reduced development lead times and lower risk. This traceability is accomplished by maintaining links between requirements, change requests, issues and items to development tasks, then to versions of directories and files and ultimately to the lines of code that may have been impacted.

 

Integrated configuration management and change management systems are the heart of this traceability and combine with requirements management and test management solutions to provide an unambiguous, always up-to-date view of the impact of change, often with very little overhead for the developer or project manager. The team leader has real-time visibility into which issues have been corrected, what work is in progress, how previous bugs were resolved and by whom. Developers can understand the complete context of code changes by quickly tracing back to the original change requests. Business analysts and product managers can assess the impact of a change before making a decision, while producing more accurate estimates based on real-time reports (Figure 1).

 

Page 1 of 4.

Advertisement

Advertisement