Before we begin, let’s define ALM. Application Lifecycle Management (ALM) is a suite of integrated tools designed to help agile teams manage the entire mobile app development lifecycle, from idea all the way through support. In some cases, all the necessary tools can be supplied by the same vendor. The big advantage of a single-vendor ALM over a collage of API integrations is the synchronization of data through every step of the production process. With seamlessly synchronized data, teams are able to collaborate and communicate with optimal efficiency and accuracy. Nothing needs to be re-typed, reconciled, or copy-pasted. Procedures prone to error and latency may be eliminated. With a well-designed ALM, all information is accurately delivered in real-time—all the time—for everybody.
Now that we understand what ALM is and how it can benefit your mobile development team, let’s discuss how to go about choosing the right ALM. Many ALM options are available to agile development teams—one reason it’s becoming so popular. How to decide between all the options? The best place to start is with the production process.
First, define your production line. App development is not a one-and-done mindset. It’s not a project plan. Instead, think of app development as a process; something repeated over and over again. Rarely do teams publish just one version of a mobile app. Rather, mobile applications are continually revised and improved. Therefore, mobile app development should be designed to be a repeatable process. More like a factory with a production line.
This production line should mimic all the steps necessary to take an idea completely through to support. At each step, an individual team member advances the mobile app forward from concept to publication. Map out each step and design the entire process. The resulting design represents your production line. With a production line defined, you can now select the most appropriate tool for each step in the process. An ALM suite is a good place to look.
Every ALM should share some basic features. Since we are talking about a repeatable process, you need a tool to help you visualize and track that process. Specifically, a workflow engine. A workflow engine will help implement a process design and then execute the process over and over again.
The next basic ALM feature should be Search, or accessibility to information. Since one of the biggest ALM benefits is the synchronization of data between tools, ready-access to that information should be a top priority. A full index and search capability is the quickest, most direct means of accessing information. Filters and queries are the next best alternative, but they are not as intuitive and will require training to use them. At the very least, avoid the tedium of logging into several tools to cross-reference disparate records in order to piece together a complete picture of where the work stands in the production line.
Another basic ALM capability is automation—generally offered in the form of scripts. Scripts can be written to automatically run a pre-defined routine, such as generating builds or running tests. Automation is the best way to perform repetitive tasks quickly and consistently. The most common agile application of automation is Continuous Integration. But automation should not stop there. Any task performed more than once can be automated. Look for automation opportunities in your production line and you will realize immediate improvements in productivity and quality.
Overall, these basic ALM features can help agile mobile development teams hone their production processes and improve quality while becoming more efficient. Before selecting an ALM, be sure to first define your initial production process in order to identify the right tools for each production step. Look for ALM solutions that offer a basic set of commonly-used, high-impact features, such as a workflow engine, a robust search, and a solid automation framework.