This article is part of an Essential Guide, our editor-selected collection of our best articles, videos and other content on this topic. Explore more in this guide:
1. - Cloud ALM: Tools and techniques: Read more in this section
Explore other sections in this guide:
Application lifecycle management (ALM) tools create a management layer over software development that help track what project is coming up, what is being worked on and what just went into production. ALM tools are themselves software, which means they need installation on a server, periodic upgrades and, often, budget. But traditional ALM software might not fit your company's culture or process.
Web-based ALM tools can help alleviate some of the difficulties in adopting these helpful tools. A company does not have to install and manage software on its own and can pay-as-it-goes after a free trial. ALM tools as a service seems like a match made in heaven depending on exactly what you want to get out of your tool set.
Implementing ALM with cloud tools is not without its challenges, however, but you can work around some of the limitations and overcome the challenges by determining what you need and growing your ALM usage organically to get the most out of the tools.
What do ALM tools do?
ALM tools, at the very least, offer high-level project management support. You can list ideas about requirements for the near future and then, from that list, show the work in progress. Over time, you can continue to report on work as you continue toward project completion. By assigning relative sizes to each story, you can use the data to predict future performance. If all you want is the project management piece, you can find a dozen or more different tools on the Web right now for free or with a 30-day free trial. These ALM tools are cloud-based because the data is stored in the cloud and accessed by a Web browser.
Several other things, like integration with version control, can help to know exactly what code tracks to each piece of work. You might want release notes to track back to all the stories involved in a release. You might expect your ALM to include or to refer to support tickets, such as capturing what pieces of software are installed on particular servers or to include a support ticket in the work in progress and, ideally, impact future projections.
Once you've shipped the product, you might also want a historical view of what you built, and you can extract information from the tool on a feature-by-feature basis. Many companies either abandon the idea of a functional spec, capture it when the code is deployed or hire a technical writer to create product documentation. You could consider creating the documentation a technical task and track it like any other feature.
ALM can ensure that your company doesn't lose track of small details, and you can define exactly what details your tool will track. When the ALM tools reside in the cloud, you can access them across locations easily through a Web browser.
Brian Harry, a technical fellow at Microsoft who performed release management for the Visual Studio team when it had over two thousand people, and who has been working on moving Team Foundation Server to the cloud, offers his insights on cloud tools based ALM.
Harry says that one of the big problems in any large organization is the sheer number of handoffs it takes to get anything done, from requirements gathering to development to testing, deployment and support. Although ALM tools offer project planning, he sees the most opportunity in a full-stack that formally ties an individual feature to version control and test artifacts, portfolio management, general collaboration and even production monitoring. Getting those in the cloud means either stitching together multiple systems or, more likely, using a vendor that ties all the pieces into a single "stack."
Choices to make when selecting ALM tools
When choosing or deploying ALM with cloud tools, you will choose between single-stack solutions and hybrid solutions you tailor to your own needs. Most cloud-based ALM tools do not, by default, hook into a version control system or a test automation system. You can work around this limitation by including links to automated checks or lists of commits in the "story" or work item. Or you can create a wiki that describes all the components of a system and not to consider the story "done" until the testers have updated the wiki (a task typically for the testers, but others could do it).
As you bring your ALM solution into your team, you'll have to choose how to best support your team's workflow. A single ALM tool might force your team to accommodate its methods. It might insist, for example, that technical staff estimate work in hours and adjust to match the estimates instead of tracking features by relative size. A highly customizable and configurable solution might require a significant time investment in configuration. Single-stack tools, however, provide easier training and education across teams and smoother handoffs.
The availability and ubiquity of cloud-based ALM tools allows you to build your usage of them organically. You can invest small amounts of budget and time in tools. You can let each team manage its own work and then create an abstraction layer between teams to help with coordination. Over time, your team or teams might develop some standards and choose the same product or products, but you can decide based on experience and practice, not top-down enforcement. The team will own the ALM process instead of becoming its victim.
In addition to the benefits of ALM tools -- better insight, better task tracking and more information for better predictions of future projects -- cloud-based ALM tools offer more choices in how to roll out ALM tools. You can choose single-stack, all-in-one solutions or you can mix and match as you discover your needs or as your needs change. Best of all, because they're Web-based and often offered as Software as a Service, you can explore and implement them without significant investment in hardware or management and avoid vendor lock-in.