Congratulations! You managed to convince senior management to try Agile. You've formed several pilot teams and...
successfully executed proof of concept projects. The teams have produced shippable software in short iterations and the business customers are thrilled. Senior management is ecstatic about the results and has pledged their support for a full-scale Agile transformation. And the transformation for Agile and application lifecycle management (ALM) begins.
Many Agile teams and organizations follow the trajectory of ShuHaRi, the stages of learning mastery. As organizations adopt Agile, they may begin by doing Agile as a rote practice, in the Shu phase of mastery. They may move on to Ha and break the rules, beginning to adapt Agile methodologies and practices to their own needs. However, Ahmed Sidky, executive director of ICAgile, argues that true Agile exists in Ri. An organization only becomes Agile when it collectively internalizes the mind-set, the four Agile values and 12 guiding principles, and then chooses the right practices and methodologies that meet the needs of the individual situations.
As the Agile transformation moves along, it becomes necessary to include not only the business and the development teams but also operations, and the question becomes, how do we integrate Agile within an ALM framework? Can we? Are Agile and ALM mutually exclusive concepts? Maybe we need to determine what ALM is and what Agile is.
Agile promotes adaptive planning, evolutionary development and delivery, and a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen, tight interactions throughout the development cycle.
Agile and ALM may appear incompatible. While both involve the management of processes, their approaches are very different in many ways. Most importantly, Agile emphasizes flexibility and quick response to change, whereas ALM is based on tightly controlled processes that do not adapt well to changing business requirements and needs. However, if we look more deeply into the Agile transformation process, we see that adopting Agile involves more than a change to the ALM approach; it involves a change in the organizational mind-set.
At a recent Agile New England meeting, Ahmed Sidky applied the mind-set research of Carol Dweck to Agile transformations. He defines the "Agile Mind-set" as a growth mind-set, an approach to managing uncertainty by learning as much as possible in the most efficient way possible.
If we look at Agile as an organizational mind-set, then the Agile transformation fully encompasses the strategy and goals of ALM. When an organization builds an Agile mind-set, it has developed a foundation for commitment, not only to an Agile transformation, but also to other types of organizational change, whether these changes involve reorganizations, geographically distributed teams or ALM. So, the question becomes, how do we develop an Agile ALM?
As with all things Agile, the key to designing an effective ALM strategy within an Agile framework lies in the Agile Manifesto and the 12 guiding principles. An Agile ALM strategy will have a customer focus and the ability to handle changing requirements from project definition through release management. For example, if we encourage developers to ask for early feedback from testers and business analysts, we begin to build a culture of collaboration. When we encourage testers to perform exploratory testing and to submit what they see as bugs, even though these observations are not strictly deviations from specifications, we are encouraging continuous learning early feedback.
Agile principles must also apply in our choice of ALM tools. We should choose tools that integrate smoothly through the application lifecycle process and are easy to maintain. The focus should be on tools that enhance the process without hindering acceptance of changing requirements and quickly developing potentially shippable software.
There are many approaches to an ALM tools strategy in Agile. Certainly products like Atlassian Jira and Rally are geared toward making Agile work. But it may also make sense to look for discrete tools for Kanban, backlog management, user story management and defect tracking to create an Agile process that makes sense for a particular team and organization.
So, the key to an Agile ALM lies in applying the Agile mind-set to the ALM process. If our ALM is truly Agile, Agile and ALM can be a match made in heaven.
Gerie Owen is a quality assurance consultant who specializes in developing and managing offshore test teams. She has implemented the offshore model and developed, trained and mentored new teams from their inception. Gerie manages large, complex projects involving multiple applications, coordinates test teams across multiple time zones, and delivers high-quality projects on time and within budget.