Application Lifecycle Management Approaches for Modern Software Delivery

[article]
Summary:

Application lifecycle management shouldn’t enforce existing IT and software delivery environments; the idea is to integrate as many tools and processes as possible into a unified workflow. The ALM journey continues forward, and, as technical and process trends come and go, the core principles are perhaps more relevant than ever.

In the crazy world of software delivery acronyms and initialisms, ALM has seen its highs and lows throughout the evolution of our dynamic industry. The value proposition of application lifecycle management makes perfect sense, as it aims to tie together procedures and data to promote a singular, unified software delivery process.

Once associated with heavyweight and “locked-down” processes, the ALM community has worked hard to make platforms more open and adaptive to the varying operations, tools, and team structures that make up highly distributed environments. Now, ALM helps each member of the team understand what needs to be done and how their deliverables impact other members of the team.

ALM provides value by addressing the overall alignment and synchronization of business goals and IT investment priorities. It relies on automation, integration, and a coordinated approach to optimize software development processes and make them more seamless. To maintain quality, organizations define and codify their own processes—like planning, designing, developing, configuring, testing, deploying, operating, and optimizing business applications—to improve lifecycle collaboration and software development efficiency.

It aims to streamline the application development pipeline, starting with the initial idea and followed by a series of activities that are executed in rapid iteration throughout the application’s end-to-end life.

In many ways it addresses the industry-wide move to scale agile and to implement DevOps. When looking at DevOps, it really is an extension of agile; it retains the “culture and movement” aspects that emphasize the collaboration and communication of software developers and other information technology professionals. More recently, automation of processes throughout the software delivery lifecycle and managing infrastructure changes in real time has advanced the practice. DevOps aims to establish a culture and environment where building, testing, and releasing software happens rapidly, frequently, and more reliably.

In today’s world, nearly every company is now a software company. Creating something new and unique is not just a driving and continuous goal, but also a strategic initiative that aims to achieve and maintain a competitive advantage in the market. Increasingly, every requested application is more and more complex. In order to maintain productivity and quality, teams must overcome many challenges, including time constraints, limited resources, and budgets.

Taking all these dynamics into consideration, ALM serves to connect the development lifecycle and the people and processes responsible for timely software delivery. As a methodology, it began with roots in source control tools, but along with the growth of more modern software development processes—primarily agile-based methods and open source technologies—different types of tools have been added to the ALM space. Integration is a leading value proposition for ALM, regardless of how you approach it.

Speaking of tools, as with any major initiative, when implementing ALM it pays to do your homework and pick the right tools that fit the type of applications being built—and, of course, tools your developers want to use. However, picking the best tools must not be the only focus; also think about how all the tools will integrate to achieve the end result. Remember, ALM includes product lifecycle management (governance, development, and maintenance), requirements management, software architecture, development, testing, maintenance, change management, continuous integration, and release management. Add them up and you have a wide range of potential tool possibilities.

Also take into account the proliferation of choice around tools and processes and how this has spurred enterprise IT heterogeneity. Likewise, it also has given rise to a more open, integrated approach to ALM, where all the tools, tasks, and associated activity is synchronized throughout the application development and deployment stages. This integration-centric approach aims to ensure that every team member has visibility and context into any and all changes made, and that there is a limited number of last-minute surprises that can cause delivery delays or, in the worst case, project failures.

In the context of today’s modern software delivery environment, ALM has matured to address the need for choice and adoption of best-of-breed tools, all while providing the “grown-up” supervision that is an absolute must, considering complexity and demands increasing almost daily.

Regardless of your approach to ALM, there are core capabilities that now make it more conducive than ever to support agile and DevOps initiatives. The ALM approach for managing teams, tools, and processes helps organizations successfully execute a project according to plan, gain control over the project, and connect team members and stakeholders across the enterprise. It provides full traceability of all development artifacts, minimizes rework through collaboration, workflow, and process automation, and creates a common platform for security, compliance, and governance.

Moving to an ALM-based software delivery process poses two basic approaches for creating both a technical and process-based framework. The first is to congregate ALM tools and integrate them by building a customized ALM platform tailored to requirements. The second is to install a full-fledged, prepackaged ALM platform that is fully extensible.

Which method or direction to follow depends on an enterprise’s unique requirements; nonetheless, there are a few guidelines that should be taken into consideration when picking the approach. It might be all about selecting the right set of tools or integrated platform that you feel will remove major bottlenecks and inefficiencies in the overall software development process. The main concern here is integration cost and speed of delivery. Even though assembling a set of tools may promise more flexibility to support the organization’s ALM process, the cost of integration needs to be taken into consideration for building the required ALM framework. Also, adjusting the process over time may be cost prohibitive or simply too slow.

With the acceleration of release cycles and the constant demand for high-quality software, the need for ALM tools has grown significantly, especially in the age of agile and DevOps. Choosing the right ALM tool will help enterprises increase collaboration and eliminate the inefficiencies in the software development process.

A key to successful ALM, whether for agile or DevOps programs, is maintaining contextual visibility and traceability across tool chains and retaining project and event context. Whatever your platform or tool chain, you must integrate the increasingly popular third-party commercial and open source software development tools, such as JIRA, Jenkins, Chef, and Git/Gerrit. Know that you will need to address the reality and requirements to support a range of development methodologies, like agile, waterfall, and the common hybrid approaches that are now reaching into DevOps.

For projects working in either agile or hybrid development environments, planning and reporting are key elements so that users can define and measure projects across trackers, as well as delegate tasks and releases to a range of teams that are often globally distributed. When ALM is implemented as part of a traditional, waterfall-style software development methodology, it tends to take on the characteristics of the methodology itself. That’s not surprising—integration makes existing practices more efficient, but it doesn’t necessarily change them, and ALM is at least compatible with a relatively inflexible, top-down style of management.

ALM shouldn't enforce the common reality of today’s IT and software delivery environments. The idea is to integrate as many tools and processes as possible into a unified workflow, which can be challenging for organizations implementing less structured agile and DevOps programs where functional lines are blurred. The ALM journey continues forward, and, as technical and process trends come and go, the core principles are now as strong today as they were a decade ago—and perhaps more relevant than ever.

About the author

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.