Many may view it as a collision of ideologies, but pairing ALM with Agile practices makes a lot of sense to those who have pushed ahead in the latest application development and delivery methodologies.
Raj Mehta, president and CEO of Infosys International, an enterprise services firm, explains it best: “Most people do not realize that Agile and ALM are two different concepts that complement each other very well. Agile is all about the Agile Manifesto, which focuses on establishing practices, while ALM is all about managing lifecycles,” he said. More simply put, Agile is the how, and ALM is the why of application development.
Mehta is not alone in his observations. Sagi Brody, CIO of WebAir, a cloud services firm, said “While adopting Agile methodologies helps to accelerate application development, it is critical to think about long-term goals and how an application evolves to meet changing business needs, and that is where ALM comes into play.”
Pretty much any application will change over its lifetime to maintain its usability, regardless of who built it. Those changes may be driven by business needs, changes in related software or hardware elements, or even to meet changing compliance or other legislative needs. While Agile methodologies help to expedite that change, the process needs to be managed, which leads to the ideology of pairing development and delivery with application lifecycles.
Mehta said “ALM helps to bring together the people, tools and procedures that are necessary to create an integrated process that lends itself to predictable and repeatable application development.” That said, it seems obvious that for ALM to achieve those goals, there must be some form of planning or project management, as well as defined requirements, and a development process that includes build and testing activities. And that is where Agile methodologies come into the picture.
Best Practices for Agile ALM
As with any process, there are tried and true best practices that smooth adoption and Agile ALM is no exception. However, the intersection of Agile and ALM means that DevOps teams must think about application development and deployment in a different light, one that illuminates how application iterations fit into business processes that are changing at an ever faster pace.
Brody said, “There are multiple vendors and organizations that provide templates and guidance for building DevOps into an Agile ALM practice, however there is no one-size-fits-all, and different projects may require different ideologies. It all comes down to adhering to some basic guidance and selecting what works best.”
As a matter of fact, numerous vendors have created services that provide guidance around implementing Agile ALM. Those vendors bundle together training, templates, software tools, and other resources into a package that businesses can adopt. Mehta said “some of those offerings prove to be a good starting point, however most will find that customization is a must and that can run into excessive costs when relying on outsiders to fully understand your business processes.”
Even so, there are takeaways that offer benefits to the majority of those moving into Agile ALM.
Agile is about processes, but ALM is about the tools:
- With that in mind, it becomes critical to pick the appropriate tools to support ALM.
- Incorporate planning tools: ALM has a direct impact on project planning, the information surrounding the steps of a plan should be captured and analyzed.
- Incorporate reporting and analytics tools: Having insight into the process and better understanding how things work in an Agile environment is critical for success.
- Leverage Scoped Work Tools: Having tools that are aware of project scope proves to be an important building block for creating Agile ALM. Scopes often change and evolve, so tools must be able to handle those changes with little fuss or muss.
- Incorporate version control: With Agile, application iterations can happen quickly and often change based upon feedback and other considerations. Part of lifecycle management is understanding where an application is in its lifecycle. Here it becomes critical to track iterations and relate those to versioning practices.
- Remember QA: Quality assurance is often glossed over in an Agile cycle, with many relying on iteration feedback to fully validate the quality of any change pushed down the pike. However, QA is a big part of ALM, and ALM forces the introduction of better QA policies. Integrated tools that validate and track QA tests are critical to make sure released code meets minimum requirements.
- Incorporate automation: There are numerous tools on the market that can automate much of the QA testing process. Those tools can test iterations much faster than humanly possible and can be scripted to look for contingencies. RPA (Robotic Process Automation) comes into play here and by wrapping an RPA tool with machine learning, testing can be further automated, speeding the processes and ensuring that Agile driven timelines are met.
- Team Involvement: Picking tools for Agile ALM should be a team process. In other words, Agile team members should have a say in what tools are used, how they are selected and what results are expected from the tools. That lends to self-organization of team members and also helps to normalize processes.
- Institute a Feedback System: One of the most recognized aspects of Agile is the feedback loop, where iterations offer feedback that is used to improve future iterations. With ALM, the feedback loop is just as important to prevent declining application quality and ideological shifts. Incorporating feedback as part of ALM helps to prevent those issues and brings ALM into the folds of Agile.
- Make sure selected tools handle governance: ALM is the continuous process of managing the lifecycle of an application through governance, meaning that governance must be executed accordingly. That requires management tools that incorporate governance ideologies that align with Agile, yet offer the appropriate reporting and control of iterations.
The adoption of appropriate ALM tools is quickly becoming part of the Agile ALM manifesto. It is those tools that provide the framework for instituting ALM, while also supporting the ideologies of Agile. Bringing ALM into the world of Agile should not be taken likely, it is a new frontier that many organizations are ill equipped to deal with, much less understand. However, numerous resources are only a web search away, which also shows the flexibility of Agile ALM, as well as there is no one answer for the Agile ALM symbiosis. Organizations will need to fully understand how Agile impacts their DevOps before bolting on ALM.