There are those who would argue that Agile Application Lifecycle Management (ALM) is a complete contradiction in terms or at best an oxymoron like “Jumbo Shrimp.” And there are certainly definitions of Agile that would preclude many of the concepts of ALM. But if you consider the spirit of Agile software development (and at its purest, what else is there?), then the spirit could be captured as
- Deliver value to stakeholders faster
- Empower teams to be self-directed
- Deliver stable, working code using time-boxed (short) iterations
- Quality, quality, quality
In that case, I would argue that it’s just a matter of scale. When an organization has a multi-disciplinary team with members from requirements, development, test, user experience and design, all co-located and all in the same team room then they are pretty darn lucky. Most of us work remotely from at least some team members, often across time zones. Most of us work on smaller components of complex systems that require organizational boundaries like independent test teams as opposed to embedded testers. When teams have a bigger scale and then they actually need to leverage the strengths of ALM to achieve the benefits of agile. In other words, ALM is an enabler of agility for otherwise hard-to-be agile organizations. This is because ALM provides the transparency and communication that is the key success factor for agile: building the trust that allows teams to work effectively.
Let’s look at the idea of self-directed teams. Search
A self-directed work team (SDWT) is
a group of people, usually employees in a company, who combine different skills
and talents to work without the usual managerial supervision toward a common
purpose or goal.
In order for teams to function in a self-directed manner,
everyone on the team has to have enough information to make sound business
decisions. That’s the core of success. It’s not that everyone always agrees on
a given direction. But rather, that each individual understands the goals
sufficiently to make good decisions as needed. But when people have different
talents, skills and responsibilities how do they align on a common purpose? How
can that happen across time zones? How can globally distributed teams deliver
on the vision of self-directed?
ALM tools can help by providing a single source of truth where everyone on the team can go to see what’s what. And the team that plans together delivers together. ALM tools can provide the transparency to understand who is working on what and when to ensure they deliver on the milestones. Transparency builds trust and trust builds communication. It’s well known that teams with high levels of trust are the most productive teams.
So is Agile ALM an oxymoron? I would say definitely not. Maybe like “jumbo shrimp” it’s a relative description that makes sense. You can certainly be Agile without ALM, you can certainly leverage ALM without being Agile. But you can also, particularly for large scale, distributed teams, reap the benefits of combining them with Agile ALM.