Application lifecycle management tools: A buyer's guide to ALM software
A collection of articles that takes you from defining technology needs to purchasing options
Do we really need application lifecycle management (ALM)? In reality, all but the smallest projects have to be managed in some way. ALM, while not a magic bullet, is effective in addressing many of the challenges not only of application development and maintenance, but also the challenge of change.
This article lays out the functions and benefits of ALM software and offers different scenarios in which you could find yourself needing it. All industries, such as construction and manufacturing, use their own versions of ALM software to manage the many moving parts of their core processes. Building and deploying software is no different, and at some point all organizations that develop, customize and deploy software will have to get its processes under control.
Determining a need for ALM software
Developing and maintaining a software application throughout its lifecycle is a complex endeavor involving many people with different skill sets and perspectives. A new application is usually part of a portfolio, and its development and continued existence depends on the value it provides to meeting the organization’s goals. Furthermore, a new application must integrate with many other legacy applications, which may be built on older technology. ALM software allows companies to manage all these moving parts, goals and personnel.
Recognizing patterns of failures and pain points is one of the main initiatives that drives IT management to look at ALM as a means of improving efficiencies in application development. Application development projects fail for a variety of reasons, including a lack of coordination among all the moving parts, inefficient design or ineffective coding and testing, and an incomplete understanding of the scope. Functionality and stability issues can plague an app after deployment, too.
To determine a need for ALM, IT management may begin by assessing what improvements ALM offers. Some of the most important benefits of implementing the application lifecycle framework through ALM software include the following:
- Fostering agility, visibility and stability by integrating the entire systems development lifecycle. This includes requirements management (i.e., the management of application specifications, development and test management) and release management (i.e., the process of moving new application code through test and into production).
- Improving communication within and between project teams, senior management, business stakeholders and operations teams.
- Increasing speed to market and ensuring accountability by following a standard, repeatable process.
- Meeting audit, regulatory and compliance requirements by maintaining standard project documents -- including application specifications, test plans and change control documents -- in a central location.
In many organizations, the tools and processes used during each phase of the application lifecycle differ widely and are chosen by those primarily responsible for execution during that phase. For example, business solutions analysts may gather requirements manually and produce a Word document, whereas developers and testers may use a best-of-breed defect tracker. Then the process of matching defects and requirements becomes a time-consuming, manual one. The lack of full integration between these toolsets opens many opportunities for miscommunication and user error throughout the product lifecycle. In addition, lack of a seamless process leads to confusion and a decreased speed to market. If a company has found itself in this tangled web of processes and tools, then ALM software needs to be considered a top priority for senior IT managers.
The value of common artifacts
Establishing a standard process and standard project artifacts (i.e., document templates) lets organizations have a single repository that becomes the source of truth throughout the lifecycle of the application. This increases accountability by improving the alignment of efforts across the team and creating 360-degree traceability. Traceability begins as developers code from the most current application specifications and testers link their test cases directly to those same application specifications. Issues are written against test cases, which are automatically traceable back to the product specification. Access to the single source of truth provides operations with a better understanding of the design and development of application, which places them in a better position to maintain the stability of the application in production.
Increased visibility provided by a complete ALM tool suite leads to better communication within the team, and better communication leads to a more cohesive team. For example, a standard dashboard of project metrics creates transparency and ensures that all project team members and business stakeholders have the same understanding of the achievements, issues and overall health of the application. Finally, when all project information is located in the same place, it is quicker and easier to prepare data for internal audits and respond to requests from regulatory authorities.
Do you have a process yet?
Before an organization can implement application lifecycle management, it must assess its current approaches to the components of an ALM framework. Some of the components of ALM software that create this framework include project and portfolio management, application specifications management, development and test management, and release management. Because implementing ALM involves change, to tools and to processes, the organization must also assess its readiness for change. Application lifecycle management must be tailored to the specific needs of the organization, because different companies have different rules, standards, products and personnel. However, a coordinated and standardized approach to software development and maintenance can provide value in various organizational scenarios. Let's look at a few of these scenarios.
Small technology startups often find themselves in a position where they have outgrown a process-free environment. These companies may be backed by venture capital and may have had early successes that enabled them to grow quickly. Suddenly, they are no longer a small group of entrepreneurs, but a considerably sized company. They are probably using an Agile methodology, but no longer have the ease of communication of a small, single, co-located team. They now have stakeholders, the venture capitalists, investors and employees, to whom they must provide evidence of both tactical and strategic direction. The stakes are high; the failure of a major release could mean the loss of funding and dissolution of the organization. In a scenario like this, implementing ALM becomes critical.
Large organizations with development and maintenance processes may also benefit from implementing an application lifecycle management framework. Often, these organizations have undergone multiple mergers and acquisitions resulting in the need to integrate not only the application portfolio, but also the methodologies and processes by which applications are developed and managed. Change will be difficult as the legacy companies are entrenched in their approaches, and the mantra of "that's the way we've always done it" reigns. Standardizing processes and ALM software will be important, but opening the lines of communication and encouraging collaboration will be the key benefit of implementing ALM.
Disruptive technology and the business climate may necessitate implementing a new application lifecycle management program. Competitors may be bringing their products to market faster which may necessitate moving from a Waterfall to an Agile or continuous development methodology. Customers may have new expectations, like the ability to access the organization’s product on mobile devices. Finally disruptive technologies could require a completely new product design, such as offering the software as a service. An ALM framework designed to handle the specific changes that the organization needs to meet will be important in this scenario.
Finally, regulated organizations or those that must meet new regulatory requirements may need to enhance their process to manage these changes. For example, utility companies may face new regulations imposed after a catastrophic storm and are faced with the challenge of having changes to applications in place before the next storm. Medical organizations also need to react quickly in response to legislation such as HIPPA and insurance reporting requirements. These organizations need an ALM framework that can handle providing information quickly, focusing on visibility and transparency.
Keeping up with mobile means improving your mobile ALM.
Understanding ALM's past can provide a better understanding of its possible future.
Standardizing ALM strategies can lead to more success.
Jama Software may be easier to use than you think.