How ALM Tools Help Throughout The Process

by Adam M. Sandman on

Key Components of Application Lifecycle Management

We’ve discussed the importance of ALM and its basic steps previously, but there is much more discuss when it comes to each of those components. Not only about the components and steps, but how an effective ALM tool can streamline and enhance them for you. Keep reading to learn more.

Requirements Management

ALM tools should have functionality that helps you make sense of your requirements and ideally the tools should be adaptable to your methodology and processes rather than the other way around.

Some ALM tools support the capture and management of system use cases as part of the requirements definition process. Use cases can be stored in the system along with their associated scenarios and links to the other requirements that the use case defines. Depending on your needs (do you have complicated multi-step processes or simple CRUD data entry needs) this may be an important feature.

Some ALM tools let you define and manage workflows that help orchestrate your processes:

If you are working in regulated or process-driven industries this may be a critical feature, if you are working in a startup business that does not need heavy process management features then it will not be as important.

Estimation and Planning

ALM Tools typically provide the functionality to help you estimate and plan your projects. Some tools are designed to manage traditional waterfall projects, some are designed for only agile development projects and some can handle both:

Depending on the level of planning you need, you may need an ALM tool that lets you estimate individual technical tasks that are then aggregated back against the original requirements that were specified:

If you have more complex review and oversight requirements, you may need to have workflow functionality that ensures all of the assigned tasks follow a specific set of steps with reviews and quality gates:

Software Development

Although normally the actual act of developing and writing the code is not considered to be part of ALM itself, you usually need to have source code management functionality integrated closely within the ALM suite and most ALM tools will offer integrated source code management functionality:

Some ALM tools will provide proprietary source code management solutions, others will use industry-standard tools such as Git or Subversion. Ideally, the ALM tool should provide flexibility to support different branching and merging models:

Even though the code writing is not strictly part of the ALM suite itself, the best ALM tools on the market provide integration with the tools used by developers to actually write the code. For example, the Microsoft Visual Studio IDE has a plug-in architecture that lets ALM vendors provide plugins to manage work items:

The popular open-source Eclipse IDE has gone one step further with its Mylyn task-based interface that lets developers connect to their ALM tool of choice and use the same user interface for all the different supported tools:

Testing and Quality Assurance

One of the key attributes that distinguishes ALM suites from mere project management tools or issue tracking systems is that they include the QA part of the software development process. At the very least they should offer basic test case management:

The ALM tool should let you create and manage your test cases in folders, with sorting and filtering capabilities. It should enable users to display different columns in their own customized view, and allow the manager to define custom properties and lists that can be used in the project.

Some ALM tools provide the ability to define specific test steps and parameters for the test cases, others may only offer a simple test case artifact.

If you need the ability to manage a larger QA team and/or have testers working in different geographies and timezones then you will also want the ALM tool to provide some kind of test suite or test set concept that lets you group test cases for assignment and tracking:

One area that some ALM suites will offer is support for automated testing. As applications become increasingly complex with user interfaces and published APIs to test, with the testing needs covering a wide variety of platforms and technologies (mobile, web, desktop) it is not feasible to manually test everything each time you release a new version or update.

So, understanding your testing needs and what the ALM tool provides is critically important. Some tools provide the ability to connect to different testing tools to manage your automated testing:

Other ALM suites even include native test automation capabilities as either part of the core system or a fully-integrated add-on:

In either case, it is important to understand which types of application you need to test and make sure the ALM tool you choose either can handle that testing for you or at least integrates with tools that can.

Deployment and DevOps

Although the compilation and packaging of the software being developed is often outside of the scope of ALM tools themselves, most ALM tools will at the very least let you integrate with continuous integration (aka CI) servers such as Jenkins, GitLab, CircleCI or GitHub:

Depending on your needs, you should make sure that the ALM tool you choose can integrate with the different CI servers that your development teams and using and that the reporting within the ALM tool can fuse the information from other sources with the build information. That way you can see all of the changes in each build, which features have been added and which issues have been resolved.

Related to deployment is the concept of DevOps. DevOps is the blending of tasks performed by a company's application development and systems operations teams into a coherent whole. Previously your developers would need help from the IT group to provision different environments (development, test, staging, etc.) and test the application in stages in each environment.

Now with more applications being cloud-hosted and release cycles measured in days not months you cannot develop and test in isolation. You will need to test new updates with real data in production-ready environments, DevOps is the key to making this a reality.

Making sure that you can see which code changes have made it into production and being able to tie customer issues with specific builds becomes increasingly important, so make sure the ALM tool you choose has the ability to perform this level of analysis and traceability.

Support and Maintenance

Sadly, the most overlooked part of the software lifecycle is the support and maintenance of the product after it has been released. Traditionally this was done right at the end when the development team delivered the finished product to the support team and then washed their hands of the system until the next version was developed.

With the move to agile development, continuous delivery and DevOps, support is now an integral part of the process. Customer support is the feedback mechanism that guides the new user stories in the next sprint. So don’t forget to ensure that the ALM suite either has a customer support capability, or at the very least can integrate with other help desk or customer support tools.

Project and Portfolio Management

Since ALM tools provide such rich and powerful functionality, it is important to make sure that they also provide good tools and features for consuming the information and being able to report across the entire system with information summarized and fused together to allow decision-making.

A common feature in many good ALM tools is the ability to display dashboards or commonly accessed graphs and charts that cover the key project metrics:

In addition, if you need to manage larger programs composed of several different projects, each with their own requirements, features and milestones then you will need to make sure the ALM tool has Project Portfolio Management (PPM) functionality:

Traditionally, PPM tools were a separate category, but increasingly ALM vendors are including PPM features in their core offerings. They can let you visualize the current status of your projects and in some of the more powerful examples, manage the dependencies and tasks across the different projects.

Collaboration and Communication

It is highly inefficient to rely on email, text messages or even worse, group meetings, to facilitate the communication of team members in real time. Information may be out of context and afterward, no reliable record of the interchange exists, leaving other team members in a vacuum with no good way to discover what is going on.

ALM tools should include an integrated instant-messenger that lets users collaborate and communicate in real-time regardless of geographic location, plus other asynchronous methods such as RSS feeds and email notifications.

Upgrade Your ALM Today

All of these factors are why application lifecycle management has exploded in popularity and importance across the software industries. But if not planned for properly, some of the hurdles in tracking, organization, and more that we’ve discussed can result in nightmare projects that don’t experience the benefits of ALM.

This is where SpiraTeam comes in. Providing a suite of features that cover ALM and far beyond, it’s the most comprehensive and effective software development system available — and is still easy to use from just a web browser. If you’re ready to improve your ALM and other software development processes, try a free 30-day trial today!

Spira Helps You Deliver Quality Software, Faster and with Lower Risk.

Get Started with Spira for Free

And if you have any questions, please email or call us at +1 (202) 558-6885

Free Trial