This article is part of an Essential Guide, our editor-selected collection of our best articles, videos and other content on this topic. Explore more in this guide:
1. - Agile and ALM tools for business: Read more in this section
- Agile ALM tools that are shaping business agility
- The dark side of Agile ALM tools
- Improving software quality with people
Explore other sections in this guide:
Though many people in the software industry may think of the term Agile as a software methodology like Scrum or XP, the term is also used to describe processes that may be completely outside the realm of software development. Used as a verb, agile in the business context means being efficient, being collaborative, being of high quality and meeting customer demands. In this tip, we'll take a look at Agile ALM and how the use of Agile ALM tools can bring organizations increased business agility.
What is Agile ALM?
Agile application lifecycle management (ALM) refers to tools and processes used to manage Agile software development projects. In traditional Waterfall environments, the software development lifecycle (SDLC) uses a phased approach to development. With this approach, one phase does not start until the last is finished. For example, design doesn't start until all requirements are complete. Development doesn't start until design is complete. Testing doesn't start until development is complete. Many tools evolved to help manage the different inputs and outputs from each phase.
Enter Agile development. Rather than a phased approach, we now have an approach to software development where requirements, design, code, test -- are all done by the same team, or in some cases, even by the same person. Rather than waiting until each "phase" is complete, Agile developers build fully deployable features and then continue to add new features to their product. Doing development this way requires a different type of tool set. That's where Agile ALM comes into play.
The word Agile in the phrase Agile ALM can be used to refer to both the methodology (as in Scrum) or as an adjective to describe the tool (as in including features that allow for collaboration). In short, the set of tools used to manage the software development processes in an Agile manner (whether that's by using a particular Agile methodology or using Agile principles) is referred to as Agile ALM.
How Agile ALM contributes to business agility
"What does Agile bring to an organization? Why bother with this or any other lifecycle management process, anyway? The answer, of course, is that the process is only a means to an end. The end is the better business value proposition that a company produces, not the process used to achieve it," wrote Howard Deiner in the article, Extending Agile ALM: Why Agile engineering practices matter so much.
Deiner explains that it's not the methodology that makes Agile important, but the principles and techniques, such as continuous integration (CI). He went on to write, "Automated testing is the secret sauce that gives an ALM the ability to achieve better and better quality continuously, while at the same time reducing the maintenance time that occurs when defects are found in the code. When we take our automated tests and couple them to an automatic build process, we immediately get a huge win that allows a fairly small investment in practice to yield big results going down the road."
CI is only one example of how Agile ALM is improving business agility. Besides implementing features that align with a particular methodology, for example providing burn down charts or kanban boards, Agile ALM tools provide features that enhance collaboration, communication and the ability to track changes. As stated in the article, Realize full potential of Agile ALM with customer collaboration, "ALM tool suites are designed to break down the former silos that existed between groups and instead provide an integrated and collaborative approach to software development" and list several Agile features that are included in popular ALM tools.
What do ALM users need to assure business agility?
The ability to integrate cleanly between functions is key and an area that some ALM vendors miss the mark on. "A common issue with many tools suites in the ALM space is that many of them focus on having separate types of artifacts and repositories for each lifecycle 'discipline,' and then the tools suite tries to integrate them all together with a single tracking database for issues, defects, backlog items, etc.," said Brad Appleton, an ALM solutions and Lean and Agile development champion at Motorola Mobility LLC.
Mario Moreira, an Agile and Lean principal consultant at Emergn Ltd. said, "At a very high level, I will say that having tools that can handle the pace of an Agile project need to allow for the pace versus dictate the pace with approvals, difficult state transitions and such. And since Agile projects continuously iterate amongst functional areas [requirements, dev, cm, test], there needs to ultimately be the ability to seamlessly move through those areas."
Agility is more than a buzzword in today's competitive market. Agile ALM tools need to do more than simply repackage old tools that were developed for the phased approach of Waterfall methodologies. They need to incorporate features that will allow software development teams to work efficiently, with seamless integration between disciplines, manage change, and allow for strong communication and collaboration. With the right Agile ALM tool suite, improved business agility is assured.