Editor's note: This is the second in a series of articles that will explore how organizations can best prepare...
to adopt application lifecycle management (ALM) for software and systems development. Having explored the five important areas of process maturity in part 1, we now look at how integrating these processes support the benefits of ALM.
Once you have improved processes for requirements management, change management, test, and model-driven development, the next step is to integrate them in an ALM environment. This not only breaks down existing silos, but more important, amplifies the resulting benefits. For example, ALM provides the traceability, automated processes, and consistent reporting across the lifecycle that can improve quality, productivity, and overall management of the entire development lifecycle. This approach also makes it easier to demonstrate compliance and produce metrics that support more informed decision making. Ultimately, improved processes in ALM enable your teams to build better software and systems -– and remain competitive and innovative in a dynamic marketplace.
Let's look in more detail at some of the capabilities and benefits ALM can provide.
Requirements-driven development and round-trip traceability
Requirements-driven development (RDD) ensures that developers are focused on the right priorities with the latest updated information and access to the full context of their assignments. Development activities are driven from approved requirements, providing focus, traceability and impact analysis. Developers know exactly what they are supposed to do and can address priorities without wasting time digging for information. Analysts can check on progress and optimal resource focus. Building better software and systems -– and achieving process maturity in ALM –- depends on having a reliable, on-demand view of a project's progress in both agile development initiatives and traditional waterfall approaches.
Round-trip traceability is RDD's twin practice and is critical to achieving that visibility and the many other benefits of ALM. Round-trip traceability enables analysis of the contents of each build, baseline, and release. Teams can see exactly which requirements, change requests, and development tasks have been implemented and which have not. In addition, the ALM platform displays the differences between different baselines. As such, teams can pinpoint exactly what has changed. This approach makes it easier to demonstrate accountability, ensure security, and complete audits.
In addition, with the ability to map requirements to test cases, testing teams can check exactly what new functionality has been added, to focus functional testing, and what hasn't changed, for non-regression testing. As discussed in the previous article ("Successful application lifecycle management: Setting the foundation"), one of the biggest roadblocks to testing maturity is to confine testing at the end of development when bugs are most costly to fix, resources are low, and time is short. By mapping requirements to test cases throughout the lifecycle, teams can check to see that requirements match specifications, customer requests, regulations, and standards -– and make necessary fixes -– early in development. Organizations should also describe the tests associated with each requirement as soon as these are defined to ensure that testability is a best practice for writing better requirements.
Round-trip traceability is especially valuable for banking and financial institutions, which have very fine requirements traceability needs. Banking systems need extreme reliability, so testing throughout the lifecycle is imperative. Round-trip traceability helps ensure reliable builds by giving test engineers the edge of real-time analysis of requirements. They can see exactly what requirements and features they should be testing -– as well as who made changes and when -– and they can be confident that they can map all of them back to the most current lines of code.
In addition, RDD and round-trip traceability provide valuable impact analysis. How will the removal of one feature, for example, impact the performance of others in the build? How much rework is required? ALM gives you the answers to those questions and more, thus bringing together the best of traditional version control and requirements management in a single best practice.
The best of both worlds: ALM with model-driven development
Model-driven development (MDD) is another natural fit within an ALM framework, from embedded systems to service-oriented architectures (SOA). Integrated MDD enables the fast, accurate and coordinated design and development of architectures, IT applications, and products. Most of all, an organization can respond with greater agility as it evolves, changes, and grows.
MDD helps development teams better manage system complexity by doing the following:
- Focusing on high-level design and development of application architecture and software
- Using a graphical language to translate requirements to a system model depicting functionality
- Leveraging the model to simulate the system and validate and verify its intended functionality
- Analyzing the results and using the model as a basis for further development, test, and deployment
- Extending requirements into a complete application design
Incorporating MDD into the ALM environment further reduces the gap between the project requirements and the final implementation. The ability to visualize requirements and trace them throughout the lifecycle improves understanding and project-wide impact analysis. The result is enterprise agility that helps teams deliver high-quality software and systems faster.
MDD is proving to be absolutely essential in the embedded software marketplace, which must react with lightning speed to consumer demand for feature-rich cell phones, MP3 players, in-dash auto communication systems, and other electronics. Combining ALM with MDD gives developers the luxury of working at a higher level of abstraction that can help speed time-to-market of new models and versions. Instead of changing 10,000 lines of code, developers can work on a model in which the code is automatically generated as changes are made. The new model can be ready for testing in a half hour as opposed to several weeks -- and the new, improved end product into the hands of customers faster.
Additional benefits of ALM
These practices are just a few of the components of a successful ALM implementation, as integrating improved processes across the lifecycle is the key. Teams will increase productivity when they focus on current business requirements, reduce rework, and make faster, better decisions that lead to high-quality products that are delivered on time.
ALM also helps organizations meet many other critical business goals: lowering the cost of development, designing and delivering innovative offerings, and embracing change at lower risk and cost. For many organizations, ALM is also a solution to the levels of governance, compliance and accountability, including CMMI certification. All of these benefits help the organization become more competitive and agile.
Next: Global ALM
ALM is very high on the priority list for global organizations today -- and those preparing to go global -– as they realize the need to better control and manage the way they develop software for a faster paced, on-demand world.
In the next article in this series, we'll explore how ALM works in the real world of legacy systems, different levels of maturity, and geographically distributed development teams using diverse tools. We'll give you the roadmap to global ALM and show you the best way to make the transition to a completely integrated global software development and delivery platform.
About the author: Dominic Tavassoli is vice president of Telelogic, an IBM company.