Adopting an Application Lifecycle Management (ALM) platform brings relief to software developers working on increasingly complex products still using single-point legacy solutions that weren't really designed for this purpose. Many companies and teams still rely on legacy tools to keep track of their development processes. This makes keeping up with the increasing pace and complexity of software development all the more challenging.
A growing number of companies realize that ALM solutions can yield a variety of benefits in terms of collaboration, traceability, time to market and software quality. However, there are several vendors offering a plethora of ALM tools, and the platform you select can greatly affect your software development processes (and thus, your company's success). Consequently, choosing the ALM tool that best supports, and helps streamline your current and future processes is crucial. This article aims to give you a hand in evaluating your options in order to help you make an informed decision when purchasing ALM software.
Introduction
Most readers of InfoQ know about, and a large portion may even struggle with, the increasing complexity of the software solutions that developers nowadays are working on in order to keep up with expanding market needs. The increasing shift to Agile practices from the traditional Waterfall model isn't news to most of you either.
More and more software development companies realize that relying on inadequate legacy tools and loads of manual work is no longer feasible. Solutions such as MS Office (Word, Excel), Bugzilla, Mantis, etc. are still widely used to manage manage requirements, issues, change requests, and the entire development process, despite their limited functionality and the fact that they necessitate immense manual effort to integrate, and to establish links between artifacts (source code, test cases, and so on) in order to show traceability.
In fact, low process clarity & inadequate process management, the lack (or limited nature) of collaboration, and burdensome manual processes to ensure traceability are among the most common issues faced by software developers. This is especially the case for teams working on software embedded in safety-critical devices such as those used in the automotive, medical or aerospace industries. Standards and regulations in these safety-critical markets require absolute transparency and gapless end-to-end traceability, rendering development practically impossible using "old-fashioned" single-point tools.
ALM to the rescue
Quite naturally, vendors of software development platforms recognized these needs early on, and have created solutions to address these challenges. Welcome to the world of Application Lifecycle Management. ALM tools offer a variety of capabilities to streamline the software development lifecycle, and bring clarity to these complex processes. It's no wonder that we're seeing the rising adoption of ALM software across industries, and this trend is likely to continue in coming years.
Application Lifecycle Management tools can help improve software quality, cut costs, shorten time to market, and enhance collaboration by clearly outlining workflows, and helping you stay on top of your artifacts and processes throughout the lifecycle. What's more, advanced integrated ALM solutions also offer simple ways to export reports, greatly facilitating compliance audits in the above-mentioned safety-critical industries.
Right, so there's a solution (or at least significant help) available for some of the most pressing difficulties you're facing. Should you just run to the store, grab an ALM platform off the shelf, and sit back to watch the extra money flowing in?
Well, here's the thing: Application Lifecycle Management software come in all shapes and sizes, and finding the one that perfectly suits your processes can be problematic. The ALM field is continuously developing to accommodate evolving market needs, and due to different answers given to the same questions, comparing ALM solutions is a difficult task.
If that wasn't enough, you will also need to consider the future: for instance, you may be relying on a Waterfall or V-model process today, but transitioning to Agile is or will be a reality for a growing portion of software development companies. Your ALM needs to be "future-proof", and should be able to support not only your current processes, but also all foreseeable changes in your development efforts in the future. So in addition, the perfect ALM platform should also be flexible enough to satisfy your changing needs, and to support your current processes rather than tell you how to work.
How does one choose the right ALM tool?
First and foremost: planning is key. You can save yourself a lot of trouble by thinking ahead, and identifying your priorities and requirements before you even start looking for a tool. Although this sounds simple, you may have to think out of the box. Take a step back, and look at your processes from an objective, outside point of view. The following checklist should help you to adequately prepare for the process.
Once you have your specific requirements laid out, it's a good idea to assemble a Request for Proposal (RFP) that will be your preliminary filter for ALM tools & vendors. Remember, you don't have to do all the work yourself: ALM vendor companies will be eager to sell their products to you, so there's no need to have your team scan the market and filter all available ALM platforms manually. Instead, feel free to take advantage of the fact that you're the one with the budget here, and let vendors do the work. That said, RFPs can be double-edged swords: vendors will want to shine light on the pros, and hide the cons of their products. Your RFP will have to be meticulously assembled in order to make sure all your requirements are thoroughly covered.
Strategic, Technical, and Business requirements
Generally, you'll need to consider three types of requirements – all three of which could, to varying extents, affect your decision. After prioritizing your specifications, it's a good idea to set up a simple scoring system to evaluate ALM solutions. Just give a value of 1-10 to each feature or function so that you can easily measure how different software platforms score.
Strategic priorities
Legacy processes
While good ALM solutions can help you optimize & streamline your processes, you may not want to revise them all at once. So the ideal platform can be flexibly configured to suit any internal processes that you're currently using and would rather keep, but also supports more advanced workflows that you'll be foreseeably creating in coming years.
Existing ecosystem, integrations
Similarly to legacy processes, the ALM platform should also be able to integrate the tools you're not trying to replace with the new solution. Keep in mind that you may have to communicate with other teams, departments or even outside partners, too, who may be using other, or even obsolete tools.
If they're still using MS Excel to manage requirements, your ALM tool will have to be able to handle .xls files, despite the fact that internally, you will benefit from using the advanced requirements management capabilities of your new ALM software. You will still want to exchange requirements with partners or contractors, so in this case, Excel support is a necessity.
Also consider whether your chosen solution offers out of the box integration with all the other tools you may be using, and if it offers API to enable you to create custom integrations.
Supported methodologies
As mentioned earlier, ALM isn't only for Agile processes, as many ALM products out there are also able to support Waterfall processes. As even highly regulated safety-critical industries are increasingly switching to Agile, you may want to consider replacing your legacy processes and methodology to reap the benefits of Agile at some point in the future. Some dev teams choose to take a Hybrid approach in the transition, blending Agile and Waterfall practices. So if you're not yet sure which way you'll be taking, it's a good idea to look for an ALM tool that allows you to do this by offering capabilities for both methodologies.
Industry-specific solutions, multi-lifecycle management
Take a while to carefully consider whether you'll need an industry-specific solution. For instance, developers working in highly regulated industries such as the medical and automotive fields benefit a great deal from preconfigured process templates, dashboards etc, which save them a lot of time during configuration & compliance audits. Vendors offering such solutions also tend to have considerable knowledge in these fields, so if this seems important to you, make sure your scoring system reflects this.
Risk management is another area of capabilities that is more important for those developing, for example, software embedded in medical devices, than it is for a company working on a yoga app. Different vendors offer different solutions to manage risks during development (and some choose to completely omit this from their ALM systems). FMEA, specific risk trackers, risk matrix visualization, and risk traceability are just a few keywords you'll need to look for.
Companies working on IoT-enabled products have to juggle hardware, software and service innovation & development all at the same time. Managing these intertwined lifecycles is not only difficult, it's also a relatively new area for ALM vendors. Therefore, not all solutions on the market are prepared to support parallel lifecycle management. Once again, if this is something that's relevant for your organization, make sure you investigate how your chosen solution could support parallel development streams.
Technical specifications
Integrated architecture
The whole point of using ALM is to be able to consolidate the management of the entire lifecycle under one platform. Therefore, you want to make sure that your chosen ALM solution supports all the processes of development. In addition to requirements management, software development and Testing (and Quality Assurance) functionality, which are a bare minimum, it's nice to have additional capabilities. For instance, some ALM tools offer Demand Management modules, can support Release Management, DevOps, and may offer a variety of other features.
It's important to note that these shouldn't just be individual modules glued together. Instead, you'll want to look for a truly integrated architecture which uses a single central repository to store the data from all these modules. This helps ensure data consistency throughout the lifecycle, providing a single source of truth for all teams and team members involved in the lifecycle.
Configurability, flexibly customizable artifacts & workflows
The ideal ALM solution offers different types of preconfigured work items, but also lets you customize your own artifacts. Thus, you'll be able to tailor your ALM to your needs, differentiate between data sources via different trackers, and store all relevant data in your work items.
The same applies for processes: while it's nice to have a built-in approval process for your requirements, for example, it's more likely that your actual processes don't match those that come out of the box with your ALM solution. Default options are nice to have, but it's essential that your chosen solution lets you configure your own workflows, and enables you to enforce those (via guards with conditional logic, e-signatures, etc.)
Traceability
As one of the most fundamental requirements for ALM software, providing traceability is vital regardless of what industry you're in. Being able to establish, record and browse links between all artifacts throughout the lifecycle (requirements, tasks, source code, test cases, releases, bugs, etc) ensures that:
- each requirement has been adequately addressed (corresponding features have been developed and thoroughly tested)
- each line of code in the released software can be traced back to a requirement, explaining its purpose.
Traceability is key to software quality, and it's especially important if you're working in safety-critical industries, where standards and regulations require companies to prove complete, end-to-end traceability. The integrated nature of advanced ALM solutions helps ensure gapless traceability along the lifecycle.
Requirements management
Long story short: adequate requirements management is fundamental to success. Therefore, it's generally a good idea to focus a significant section of your RFP on requirements-related capabilities.
It pays to shop around a bit to see what different vendors offer, as you may not even have realized yet that a specific feature (for instance, voting on requirements) could be useful to you. If your ALM solution is also able to display suspected links between requirements and other artifacts, all the better. Round-trip integration with widely used alternatives (MS Word and Excel) is also a useful feature to facilitate collaboration with suppliers, as is the ability to save and re-use requirements from a library (if you're looking to manage multiple similar products, for instance).
Software development
Generally, your ALM should offer source code management (version control with Git, Subversion, Mercurial, or whatever else you're using) capabilities, a feature to baseline all your work items, as well as change & repository management features. This is a topic where it's difficult to give general guidance, as a lot depends on your specific internal processes.
QA & Testing
Quality assurance is another important topic. Depending on your testing and QA processes, you may need automated testing, re-usable test cases, parameterized tests, test coverage analysis, and several other relevant features. Once again, make sure you analyze your internal processes, and include a thorough description of your requirements in the RFP.
Collaborative task, project, team management
Your ALM solution should be able to handle separate projects, include teams and members in each of these, and enable you to assign tasks to each team member. Tasks should also be attributable to releases, which would ideally give some sort of (visual) overview to all members of your team on how the project is progressing. A customizable Kanban board also comes in handy to facilitate task management.
Further collaborative features include comments, triggered notifications (either built-in, or via e-mail), voting & rating certain items, or live chat within the ALM. Some vendors also offer some kind of a service desk feature to help manage communication with your customers and to support issue management (customer-submitted bugs, change requests, etc).
Documentation & reporting
Everything during the process of development should be logged or documented, with documents being exportable in easy to use formats. This helps a great deal during audits, if your end product (and processes) are subject to industry regulations or standards that you'll need to prove compliance with.
Custom metrics and reports should be configurable, ideally on a user-friendly dashboard. This dashboard should help you oversee all development processes, as well as metrics and visualized data such as time estimated / time spent, a burndown chart, etc.
Business requirements
Hosting options
Vendors offer either on-premise or SaaS (cloud-hosted) versions of their solutions, and sometimes both options are available. Analyze your infrastructure & environment to identify which one would work out best for you. Also consider whether further infrastructure investments (for instance, a new server) would be needed, as necessary hardware upgrades could be a costly addition to the price of your ALM platform. Company security policies, firewalls, scalability requirements, and geographically dispersed teams (server response times) can all affect your decision, and should be considered before making a purchase.
Support, training & consulting
However lengthy and complicated the process may seem, buying an ALM solution is actually just the first step. You will need to first integrate the solution in your development environment, and configure all processes, workflows, etc before you can use it. Make sure your vendor provides rollout & consulting services (preferably on-site) to help streamline this process.
You will also need to train your team to help them realize value with your ALM, so introductory training should also be included in the final price you're paying for the platform. Also, your vendor should offer consulting options to help you make the most of further features appearing in new versions, and should address issues submitted by your team. It's great if they also offer regular webinars to help you fully take advantage of the ALM's features.
Total Cost of Ownership, available license plans
Finally, you'll need to keep in mind that it's all about increasing efficiency. The bottom line is that using an ALM tool should help you increase productivity, and should improve the overall profitability of the team/organization. It's not all about the cost: remember that choosing a suboptimal solution could cost you way more in the long run (via lost efficiency, wasted time and effort).
Also, consulting, training, support and other costs may come on top of the actual license price, so it's important that you calculate the Total Cost of Ownership (TCO). Basically, you'll be taking a 2-6 year time period, and summarizing all your foreseeable ALM-related expenses during that period. As an experienced salesperson said: "Never mind the price, take care of the cost".
ALM tools are offered in several license options. Some vendors offer named (for specific users only) and floating licenses, which can be used by several users, although only one at a time. Yet another option is to "rent" the solution (pay a yearly fee for the license, upgrades, support, etc) versus buying a perpetual license + support separately (in this case, you're basically buying the software for good, but will need to pay a yearly fee for all other services). In addition, various license types could also be available, for certain modules, features or permissions only. Ideally, your vendor will help you specify your needs, and will offer a competitive pricing on the optimal mix of license types you will need.
Implementing an ALM solution
Overall, it is safe to say that evaluating & purchasing an ALM solution is a great step forward, and shouldn't be taken lightly. You'll need to thoroughly consider all the above, as well as any additional requirements you may have, before even starting to look for a suitable Application Lifecycle Management Platform.
However, as the rising rate of ALM adoption shows, the benefits far outweigh the costs – provided you choose the right software solution. It pays to invest the time and effort in a meticulous screening process. Our last piece of advice: don't forget to bargain! All sorts of discounts may be available, but vendors obviously won't call your attention to these.
About the Author
Kristof Horvath is an Application Lifecycle Management Evangelist with Intland Software, developers of codeBeamer, a fully integrated, all in one, end-to-end holistic ALM solution. Kristof blogs regularly about topics related to lifecycle management, the Agile methodology, and IoT product development. Feel free to get in touch with him via e-mail.