BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
As necessary as a software development process and ongoing maintenance is to a software company, so too is having an application lifecycle management (ALM) tool set or software suite. These suites often have many components to them, covering software processes from development to deployment. This is why it is simpler to choose an entire ALM software suite, rather than buying individual tools. Although simpler, there are still challenges in procuring ALM software, because suites vary in size and capability. Luckily, there are must-have tool capabilities and vendor service offerings that are common to all. This article explores those capabilities and offerings.
Matching features with requirements
Once an organization has determined its must-have needs, it must review the features that various potential tool choices provide. It is important to keep in mind that all the components of ALM are not usually contained in one tool. Some ALM vendors offer a suite of integrated tools to cover most of the components of ALM. Other vendors create niche products that provide specialized functionality in a limited number of components and offer integration with other products in order to provide true ALM.
It is usually helpful to analyze features based on the components of ALM, keeping in mind the organization's pain points, as well as ALM component tools already in use. Look for tools that have strong functionality in the components that are least mature within the organization, and when there are tools that are already in use, look for opportunities to integrate with those tools.
Tools that include portfolio management should provide functionality for managing multiple projects and teams, as well as cross-project reporting. Ideally, there should be standard reports and a user-friendly method of creating custom reports. Financial management, resource and demand management, as well as planning and scheduling are important features of portfolio management tools.
There are many project management tools available, but those that are a part of an ALM suite should be fully integrated with both portfolio management and software development lifecycle tools. Often, project management tools are focused on either Waterfall or Agile methodologies; make sure they can provide support across all of your existing and planned projects. All project management tools should include the ability to manage scheduling and resource allocation, as well as provide a dashboard through which project metrics are easily generated. An Agile-focused tool should include user story and task estimation, backlog, release and iteration management, and perhaps an electronic whiteboard. Reporting capabilities should be Agile-based, including velocity and burn down.
Ideally, tools that manage the software development lifecycle should be part of the same product, or at least integrated into a suite of products supplied by the same vendor. Integration among different vendor products can be complicated -- often requiring custom code -- and may not be conducive to an ALM framework. If a vendor does not provide an integrated suite, it should provide pre-built integrations to other tools in order to complete the lifecycle from end to end.
Requirements management tools may include features such as prototyping, generating workflows and converting data formats. However, some of the most important functionality includes traceability to other requirements, test cases and code, and change management. It is especially important not only to track historical changes to requirements, but also to show the effect potential changes will have on other requirements and test cases. This not only provides the full scope of the change to the decision-making stakeholders; but also, it makes updating other requirements and test cases much more efficient.
It is useful -- especially in Agile shops -- for development tools, such as integrated development environments (IDEs), to be integrated with requirements management products. There are many development tools on the market and developers use tools that are geared to their specialties; for example, Web design versus business intelligence and data warehouse development. In some cases, it may be difficult to integrate these with test management, especially without writing custom code.
Test and quality management tools must integrate with requirements management in order to ensure traceability and 360-degree tracking from requirements to test cases, to defects and back to requirements. Dashboard reporting that provides standard test execution and defect metrics are a must; ideally, these dashboards will integrate with the project management module or tool. Integration with functional test case automation products, automated scheduling and execution of automated tests is important, especially in organizations that use Agile methodologies.
Some ALM software will schedule and execute functional tests automatically, often in conjunction with software builds. This is a useful feature for teams doing frequent or continuous integration.
Managing the release process
In order to provide a complete ALM framework, the tool or suite of tools must include configuration and release management, and version control. These features are critical for organizations that are moving toward continuous integration and continuous delivery. Application performance monitoring (APM) is also an important part of continuous deployment, and some ALM software suites provide this feature as well. Security management, including vulnerability scanning, penetration testing and impact analysis is an important feature for teams working with mission-critical applications, financial data or private data. Integration with other tools is often a make-or-break test, because at least some teams will already have partial solutions that they will be reluctant to give up.
Collaboration an important feature for ALM software
Perhaps the most important feature of an ALM software suite is collaboration, because collaboration is the basis for an application lifecycle management framework. Collaboration features that may be found in an ALM tool include wikis, chat functionality, historical documentation of multiple user updates and versioning.
Other important features to consider in an ALM suite are contingent on organizations' demographics: industry type, size and the types of projects to be managed. For example, if an organization is regulated, or its projects involve complying with or reporting to regulatory authorities, ALM tools that provide features for handling requirements traceability, risk management and regulatory reporting may be needed. In addition, if the organization's infrastructure or applications are heavily invested in a particular enterprise services vendor -- such as SAP, Oracle or Dell -- then an ALM tool that is designed to work with those platforms may be the best choice.
Licensing costs can be a showstopper
Beyond the function of the actual software, the capabilities of the vendor should also play a factor in the decision-making process. For instance, cost and licensing structure is a key decision point. Typically, ALM tools are based on streamlining collaboration among many teams within the organization, and will not be successful unless there are enough licenses to accommodate the required number of users.
For this reason, smaller organizations or organizations with limited budgets may need to prioritize cost over non-critical features while choosing a tool. In addition, some licensing structures are based on the location of the user; onshore seats are less expensive than offshore.
It may be possible to purchase a site license or a company-wide license, but that isn't usually in the budget for smaller groups. Larger purchases usually allow for more flexibility in cost and licensing, so businesses should consider buying for all teams and use cases at one time.
No matter the size, just knowing your company's demographics will help you figure out what license and price is the best fit for your organization.
Hosting and support
Organizations also have to take into account hosting platforms and availability of support and training, -- from the vendor or from partners -- and, above all, collaboration functionality. Most ALM tools offer an on-premises service and many now have a software as a service (SaaS) cloud-based offering as well.
Application support and training is usually available from the vendor; however, some of the market leaders' resellers also offer support contracts. Resellers usually respond more quickly and may be the better choice, especially for organizations that do not have an application support department.
Choosing the right ALM software suite isn't easy, and requires participation by all stakeholders, extensive research and negotiations. Although none of the ALM software products may be perfect, identifying the pain points, figuring out your demographics and then choosing a product or set of products that alleviates the pain points are the first steps in how a team, set of teams or even an entire business can streamline and manage its product lifecycle.
A closer look at the Atlassian suite of ALM software
Complete your enterprise software toolkit with the right MAM tool
ALM can help bring distributed teams together
Agile allows for failing … which is a good thing
How to manage the TeamForge ALM tool
Is Microsoft Visual Studio Online right for you?
Learn more about the HP application lifecycle management suite