At a time when applications can be written and put up in the cloud in a matter of hours, some would argue that Application Lifecycle Management (ALM) is more important than ever.
However, over the last decade—and particularly in the last 12 months as the volume and velocity of digital transformation efforts has accelerated—the focus has shifted from project to product and from applications to the value that development efforts deliver to end-users.
As such, shouldn’t our approach to creating applications change accordingly? In this article, I’ll look at the state of ALM today, and introduce an emerging approach more focused on value delivery called Value Stream Management.
What Is ALM?
Application Lifecycle Management (ALM) does exactly what it says on the tin: it manages software applications across their entire lifecycle, from the original idea to the decommissioning of the app. Its proponents would argue that it provides organizations (particularly large enterprises with a sprawling software portfolio) with visibility of and control over critical business functionality.
In addition to development and maintenance, ALM crucially covers portfolio management and the governance of the application on an end-to-end basis:
- Should this app be developed at all (i.e. does the same functionality already exist elsewhere within the organization)?
- If so, what are the KPIs that will tell us whether it is performing against expectations?
- Has it reached an ‘end of life’ state where plans to decommission it should commence?
ALM also includes elements of project management and ensures that every application passes through an approval workflow. This will ensure that, for any new application, a proper business case is made that takes full account of the resources required to create it, and the benefits of doing so.
Difference Between ALM and Software Development Lifecycle (SDLC)
There’s still some confusion between ALM and SDLC, so for the purpose of this article, it’s relevant to distinguish between them to ensure we’re all on the same page.
SDLC may be considered as a subset of the functionality provided by ALM. But, although SDLC focuses on the development and deployment aspects covered by ALM, it crucially overlooks the governance elements described above.
Benefits of ALM
Fundamentally, ALM brings order and structure to the process of creating and managing enterprise software, and enforces best practice in doing so.
At the start of the process, ALM clearly sets out the resources needed to create the application. It also prevents the process becoming siloed by bringing together all the stakeholders – business users, testing and quality assurance, security and the IT function – necessary to create a properly functioning enterprise application.
ALM also defines and implements the workflows that ensure that everything happens at the right time.
In addition to that, ALM enables portfolio management of large software estates. For example, in a large digital transformation program, it’s likely that the design of a customer journey will involve several different touchpoints. Without clear governance, it’s all too easy for different teams to create multiple applications with misaligned goals that have the same or similar functionality.
By taking a holistic and long-term view of the application’s lifecycle, ALM, therefore, allows organizations to make better decisions about their software assets, and to have more control over their applications, avoiding unnecessary investments of money and resources in products that won’t deliver value.
Has DevOps Made ALM Irrelevant?
DevOps (as the name suggests) was created to increase the pace of development by breaking down the barriers between software development teams and the business operations and users they serve. It has largely replaced ‘waterfall’ development approaches and is synonymous with the agile development that has become the de facto means for creating software applications today.
Because ALM achieved prominence at a time when waterfall development was the norm, it’s easy to imagine that it no longer has a place in the DevOps world. But, DevOps focuses on the practical issues of creating, releasing and deploying software at speed; and, while it does involve business users in the process, it doesn’t engage the wider stakeholder community or answer many of the governance issues described above.
Overall, ALM has provided the end-to-end discipline that DevOps lacks: it ensures that all relevant stakeholders are engaged, and that the portfolio is managed effectively, and the two should be considered as complementary disciplines.
However, ALM is being challenged by the project to product philosophy. This essentially demands that organizations stop focusing on a series of short-term and iterative development efforts and start thinking in terms of a long-term and holistic ownership of the overall product or service.
This is one of the reasons why Value Stream Management (VSM) is starting to supersede ALM.
What Is Value Stream Management (VSM)?
Value stream management is an agile methodology that, like ALM, seeks to manage and monitor software delivery on an end-to-end basis over its entire lifecycle.
However, while ALM focuses more on the management and monitoring part of development and delivery, VSM focuses on the overall value that a software development initiative aims to deliver with the goal of accelerating the flow of value to the organization.
Rather than identifying and examining features and functions, VSM focuses on value streams to understand where processes can be improved, so that teams focus their energy on what works, and move away from what doesn’t. In other words, VSM offers visibility over complex processes through the perspective of the customer experience to improve alignment with business objectives and enhance agile and DevOps practices.
ALM and the Shift From Project to Product
ALM has been well-suited to an approach that emphasizes the need for project management across a portfolio of different applications which focuses efforts on managing a series of milestones.
However, the product management mindset assembles a cross-functional team which is much less concerned about fulfilling a monolithic project plan than with achieving a particular business outcome and being a differentiator in their market with unique and custom solutions. (You can learn more about this in Shift IT from Project to Product, an article by Deloitte.)
The product approach therefore involves frequent course corrections and multiple iterations of the applications, a task for which the agility of DevOps is perfectly suited. However, for all the reasons discussed above (governance, stakeholder engagement, workflows, portfolio management), DevOps capabilities need to be complemented with a more end-user centric view of the product in order to deliver value.
ALM has striven to fill this gap, and with some success. But, as more and more business processes and customer interactions move online - a process dramatically accelerated by the global lockdown - organizations are moving away from an application (project) mindset to one that looks at the overall value (product) that they want to deliver.
Inevitably, and as this becomes the dominant mindset, ALM will give way to a focus much more aligned with VSM.
Supporting ALM / VSM with a Modern Application Development Platform
OutSystems is a modern application development platform that shares many of the aspirations for which ALM and VSM were created. Since the inception of the company, OutSystems has aimed to enable digital transformation rather than to merely deliver applications.
Two decades ago, we started teaching Agile and Scrum as part of our product training with the intention of helping organizations to become elite performers by optimizing value streams and applying the power of AI to all stages of the software development lifecycle.
With OutSystems, applications can be thrown up overnight. This way, the platform shares ALM/VSM’s focus on governance and on ensuring that enterprises can retain control of their software estate.
Technical debt is also something that OutSystems work hard to avoid: this ensures agility in execution whilst also focusing teams on value delivery.
Eliminating technical debt can be managed through coding best practices that ensure each application is correctly architected in the first place: we recommend using mediated APIs and a BFF (Backend for Frontend) design pattern to ensure agility and that new experiences can be seamlessly delivered across different touchpoints and modalities - an outcome that is key to the VSM mindset.
So, OutSystems puts in place safeguards with unique support for full value stream control over large portfolios to ensure that, for example, people can’t create apps without the right approvals. There are also specific tools that define the type of permissions to which individuals are entitled (deployment, use and reuse).
In ALM, knowing when to decommission applications is as important as knowing when to create them and is an integral part of the value stream innovation process. And there are many analytics tools within OutSystems that assist with this: the usage of applications can be monitored and users – whether in a business unit or in a development team – can easily identify (and eliminate!) instances of duplicate functionality.
So, your OutSystems-based development initiatives can easily accommodate both your existing ALM based development efforts and your future VSM initiatives.
To find out more about OutSystems and ALM/VSM, visit Optimizing the Entire Application Lifecycle. To learn more about how to leverage OutSystems AI capabilities across the SDLC, check out this Tech Talk!