The usage of Agile methodologies is common in application lifecycle management (ALM) implementations today, but...
Agile-minded due diligence is needed when choosing ALM tools. In this tip, we’ll explore the attributes that make development, testing, quality assurance, requirements management, version control, security and other ALM process tools truly Agile.
If you ever get into a discussion with technologists who are passionate about the methodology they use, be prepared to witness some emotion. The debates between traditionalists and agilists can sometimes be as heated as those between Republicans and Democrats. In his recent article, Waterfall or Agile: Differences between predictive and adaptive software methodologies, David Johnson-- a senior software test architect-- describes the two software camps as predictive and adaptive. And like politics, there are people who are far-right, people who are far-left and those who are middle-of-the-road, who perhaps prefer a hybrid methodology-- or at least remain relatively open to the merits of all methodologies.
What about ALM tools? Are they for the traditionalists, the agilists, or the independents? Or is it fair to even associate them with a methodology? First we must explore the question of what ALM tools are before placing them in a particular political camp.
What is ALM?
Application lifecycle management (ALM) includes the processes, tools and methodologies used in the software development lifecycle (SDLC). SDLC has been used to describe the software processes starting with requirements analysis and ending with deployment with an emphasis on development. Each software project employs a particular methodology, whether it is waterfall (predictive) or scrum (adaptive) or perhaps some hybrid custom methodology specific for an organization.
ALM also covers processes beyond SDLC. ALM processes include governance processes, business processes and operations processes. Other attributes of ALM include the emphasis on increased communication and collaboration between various teams, which are typically considered attributes of an “Agile” organization.
What are ALM tools?
ALM tools are those tools that manage the processes involved in software development and lifecycle management. They fall into many different categories. Though they originally were used to describe change management tools, the term has evolved to include almost any tool that is used in software development and lifecycle management. Often, ALM tools are packaged in a suite of integrated tools that handle multiple processes in the lifecycle.
Many ALM tools are not tied to a particular methodology, but are used to manage the processes of the SDLC, regardless of what methodology is being used. So, for example, you may be in an organization that has projects that are following a waterfall SDLC as well as projects that are following a Scrum SDLC. You would need ALM tools to manage both of these. A software organization may be using a wiki to keep track of project status and keep the team informed. Though often wikis are considered an Agile ALM tool because they foster communication and collaboration, they could be used on any team, using any methodology.
Integration of various functions that manage your lifecycle is another attribute of an ALM tool. Having a lot of disparate tools can cause frustration on project teams, so they want tools which will seamlessly share data. Transparency of information is another attribute that is considered both “Agile” and important in an ALM Tool. Also, many ALM tools tout the ability to create reports and information that can be shared with appropriate stakeholders.
Good ALM tools are tools that manage software development processes in a more “Agile” way. They foster that communication and collaboration between cross-functional teams that is so important to agility. They allow the project team to work more efficiently and effectively by integrating tools and processes. Many ALM tools are specifically designed for project management of projects that are using Agile methodologies, having functions that take into account Agile concepts and practices. Many of the tools are configurable, so that you can customize them to fit the exact needs of your organization and the type of SDLC you’re using. In other words, they are “adaptable,” another attribute which is important for an Agile team.
The attributes of Agile and non-Agile ALM tools
The issue that many left-winged agilists have with ALM tools is that they can add a lot of bureaucracy and overhead to the development cycle, something that is anti-Agile to a purist. Sometimes, they say, it requires many resources just to manage the ALM tools. Why? While seamless integration of tools is a goal, it rarely is possible, and efforts and energy must be expended, not just on the work required to develop the application, but to do all the data entry and maintenance of the tools required in order to make them effective and accurate. Also, flexibility in tools is desirable, but configuring and maintaining those tools so that they operate according to your team’s processes can be time-consuming and require specialized skills.
The key to making an ALM infrastructure and its processes truly Agile is choosing ALM tools or suites that enable flexibility and agility without increasing labor or technology maintenance overhead. Truly-Agile tools help teams break down bureaucracy and the silos between software, IT and business processes.
There is a need for ALM, because it can help organizations centralize software development and lifecycle management, reducing redundancies and breaking down departmental silos. Tools that automate processes are a necessity for ALM’s goals of streamlining software development and management. Whether those tools are simply the core tools needed to develop and build your application or a whole suite of products that will manage every project process from inception to end-of-life depends upon the needs of your organization.
If your organization wants to bring Agile to ALM, do tool-shopping due diligence in these ways:
- Do your homework. Figure out the methodologies that are currently being used and how they are evolving. What gaps do you have? How could you make your organization more efficient?
- Don’t be sold simply on the buzz words of “agility, transparency, and integration.” Talk to the development teams and find out what tools they think would help them be most productive.
- Look for tools that will foster that very important communication and collaboration without introducing unnecessary bureaucracy and overhead.
Many ALM tools can help your organization become more Agile. Be sure to remember, however, that a key value in Agile is that people are more important than tools. Start by talking to the people developing and managing your applications. Find out what they need, and go from there.