For developers and enterprise teams, application life-cycle management in today’s development climate is an exercise in organized chaos.
As movements such as agile, DevOps and Continuous Delivery have created more hybrid roles within a faster, more fluid application delivery cycle, there are new definitions of what each letter in the ALM acronym means. Applications have grown into complex entities with far more moving parts—from modular components to microservices—delivered to a wider range of platforms in a mobile and cloud-based world. The life cycle itself has grown more automated, demanding a higher degree of visibility and control in the tool suites used to manage it all.
Kurt Bittner, principal analyst at Forrester for application development and delivery, said the agile, DevOps and Continuous Delivery movements have morphed ALM into a way to manage a greatly accelerated delivery cycle.
“Most of the momentum we’ve seen in the industry has been around faster delivery cycles and less about application life-cycle management in the sense of managing traceability and requirements end-to-end,” said Bittner. “Those things are important and they haven’t gone away, but people want to do it really fast. When work was done manually, ALM ended up being the core of what everyone did. But as much of the work has become automated—builds, workflows, testing—ALM has become in essence a workflow-management tool. It’s this bookend concept that exists on the front end and then at the end of the delivery pipeline.”
Don McElwee, assistant vice president of professional services for Orasi Software, explained how the faster, more agile delivery process correlates directly to an organization’s bottom line.
“The application life cycle has become a more fluid, cost-effective process where time to market for enhancements and new products is decreased to meet market movements as well as customer expectations,” said McElwee. “It is a natural evolution of previous life cycles where the integration of development and quality assurance align to a common goal. By reducing the amount of functionality to be deployed to a production environment, testing and identifying issues earlier in the application life cycle, the overall cost of building and maintaining applications is decreased while increasing team unity and productivity.”
In addition to the business changes taking place in ALM, the advent of agile, DevOps and Continuous Delivery has also driven a cultural change, according to Kartik Raghavan, executive vice president of worldwide engineering at CollabNet. He said ALM is undergoing a fundamental enterprise shift from a life-cycle functionality focus toward a delivery process colored more by the consumer-focused value of an application.
“All these movements, whether it’s agile or DevOps or Continuous Delivery, try to take the focus away from the individual pieces of delivery to more of the ownership at an application level,” said Raghavan. “It’s pushing ALM toward more of a pragmatic value of the application as a whole. That is the big cultural change.”
ALM for a new slate of platforms
Bittner said ALM tooling has also segmented into different markets for different development platforms. He said development tool chains are different for everything from mobile and cloud to Web applications and embedded software, as developers deploy applications to everything from a mobile app store to a cloud platform such as Amazon’s AWS, Microsoft’s Azure or OpenStack.
“[Tool chains] often fragment along the technology platform lines,” said Bittner. “People developing for the cloud’s main goal is to get things to market quickly, so they tend to have a much more diverse ecosystem of tools, while mobile is so unique because the technology stack is changing all the time and evolving rapidly.”
Hadi Hariri, developer advocacy lead at JetBrains, said the growth of cloud-based applications and services in particular has shifted customer expectations when it comes to ALM.
“Before, having on-site ALM solutions was considered the de facto option,” he said. “Nowadays, more and more customers don’t want to have to deal with hosting, maintenance [or] upgrades of their tools. They want to focus on their own product and delegate these aspects to service and tool providers.”
CollabNet’s Raghavan said this shift toward a wider array of platforms has changed how developers and ALM tool providers think about software. On the surface, he said he sees cloud, mobile, Web and embedded as different channels for delivering applications.
He said there is more focus when developing and managing an application on changing the way a customer expects to consume an application.
“Each of these channels represents another flavor of how they enable customers to consume applications,” said Raghavan. “With the cloud, that means the ability to access the application anywhere. Customers expect to log into an application and quickly understand what it does. Mobile requires you to build an application that leverages the value of the device. You need an ALM suite that recognizes the different tools needed to deliver every application to the cloud, prepare that application for mobile consumption, and even gives you the freedom to think about putting the app on something like a Nest thermostat.”
What’s in an application?
Applications are becoming composites, according to Forrester’s Bittner, and he said ALM must evolve into a means of managing the delivery of these composite applications and the feedback coming from their modular parts integrated with the cloud.
“A mobile application is typically not standalone. It talks to services running in the cloud that talk to other services wrapping legacy systems to provide data,” he said. “So even a mobile application, which sounds like a relatively whole entity, is actually a network of things.”
Matt Brayley-Berger, worldwide product marketing manager of application life cycle and quality for HP, expanded on this concept of application modularity. With a composite application containing sometimes hundreds of interwoven components and services, he said the complexity of building releases has gone up dramatically.
“Organizations are making a positive tradeoff around risk,” he said. “Using all of these smaller pieces, the risk of a single aspect of functionality not working has gone down, but now you’re starting to bring in the risk of the entire system not working. In some ways it’s the ultimate SOA dream realized, but the other side means far more complexity to manage, which is where all these new ALM tools and technologies come in.”
Within that application complexity is also the rise of containers and microservices, which Bittner called the next big growth area in the software development life cycle. He said containers and microservices are turning applications from large pieces of software into a network of orchestrated services with far more moving parts to keep track of.
“Containers and microservices are really applicable to everything,” said Bittner. “They’ll lead to greater modularity for different parts of an application, to give organizations the ability to develop different parts of an application independently with the option to replace parts at runtime, or [to] evolve at different speeds. This creates a lot of flexibility around developing and deploying an application, which leads to the notion of an application itself changing.”
JetBrains’ Hariri said microservices are, at their core, just a new way to think about existing SOA architecture, combined with containers to create a new deployment model within applications.
“Microservices, while being sometimes touted as the new thing, are actually very similar, if not the same, as a long-time existing architecture: SOA, except nowadays it would be hard to put the SOA label on something and not be frowned upon,” he said.
“Microservices have probably contributed to making us aware that services should be small and autonomous, so in that sense, maybe the word has provided value. Combining them with containers, which contribute to an autonomous deployment model, it definitely does give rise to new potential scenarios that can provide value, as well as introduce new challenges to overcome in increasing the complexity of ALM if not managed appropriately.”
Within a more componentized application, Orasi’s McElwee said it’s even more critical for developers and testers throughout the ALM process to meticulously test each component.
“ALM must now be able to handle agile concepts, where smaller portions of development such as Web services change often and need to deployed rapidly to meet customer demand,” said McElwee. “These smaller application component changes must be validated quickly for both individual functional and larger system impacts. There must be an analysis to determine where failures are likely based on history so that higher-risk areas can be validated quickly. The ability to identify tests and associated data components are critical to the success of these smaller components.”
Managing the modern automated pipeline
For enterprise organizations and development teams to keep a handle on an accelerated delivery process with more complex applications to a wider range of platforms, Bittner believes ALM must provide visibility and control across the entire tool chain.
“There’s a tremendous need for a comprehensive delivery pipeline,” he said. “You have Continuous Integration tools handling a large part of the pipeline handing off to deployment automation tools, and once things get in production you have application analytics tools to gather data. The evolution of this ecosystem demands a single dashboard that lets you know where things are in the process, from the idea phase to the point where it’s in the customer’s hands.”
To achieve that visibility and end-to-end control, some ALM solution providers are relying on APIs. TechExcel’s director of product management Jason Hammon said that when it comes to third-party and open-source automation tools for tasks such as bug tracking, test automation or SCM, those services should be tied with APIs without losing sight of the core goals of ALM.
“At the end of the day, someone is still planning the requirements,” he said. “They’re not automating that process. Someone is still planning the testing and implementing the development. The core pieces of ALM are still there, but we need the ability to extend beyond those manual tasks and pull in automation in each stage.
“That’s the whole point of the APIs and integrations: Teams are using different tools. As the manager I can log in and see how many bugs have been found, even if one team is logging bugs in Bugzilla, another team is logging them in DevTrack, and another team is logging them in JIRA. We can’t say, ‘Here’s this monolithic solution and everyone should use just this.’ People don’t work that way anymore.”
Keeping track of all these automated processes and services running within a delivery pipeline requires constant information. Modern ALM suites are built on communication between teams and managers, as well as streams of real-time notifications through dashboards.
“Anywhere in the process where you have automation, metrics are critical,” said HP’s Brayley-Berger. “Being able to leverage metrics created through automation has become a valuable way to course-correct. We’re moving more toward an opportunity for organizations to use these pieces of data to predict future performance. It almost sounds like a time-travel analogy, but the only way for organizations to go even faster than they already are is to think ahead: What should teams automate? Where are the projects likely to face challenges?”
An end-to-end ALM solution plugged into all this data can also overwhelm teams working within it with excess information, said Paula Rome, senior product manager at Seapine Software.
“We want to make sure developers are getting exactly what they need for their day-to-day job,” said Rome. “Their data feed needs to be filled with notifications that are actually useful. The ALM tool should in no way be preventing them from going to a higher-level view, but we want to be wary of counterproductive interruptions.”
Where ALM goes from here
Rome said it was not so long ago that ALM’s biggest problem was that nobody knew of it. Now, in an environment where more and more applications exist purely in the cloud rather than in traditional on-premise servers, she said ALM provides a feeling of stability.
“Organizations are still storing data somewhere, there are still multiple components, multiple roles and team members that need to be up to date with information so you’re not losing the business vision,” said Rome. “But with DevOps and the pressure of Continuous Delivery, when the guy who wrote the code is the one fixing the bug in production, an ALM tool gives you a sort of DevOps safety net. You need information readily available to you. You can get a sense of the source code and you can start following this trail of clues to what’s going on to make that quick fix.”
As the concepts of what applications and life cycles are have changed, TechExcel’s Hammon said ALM is still about managing the same process.
“You still need to be able to see your project, see its progress and make sure there’s traceability from those requirements through the testing to make sure you’re on track, and that you’ve delivered both what you and the customer expected you to,” said Hammon. “Even if you’re continuously delivering, it’s a way to track what you need to do and what you’ve done. That never changes, and it may never change.”
What developers need in a tool suite for the modern application life cycle
“A successful tool is one that provides value by removing grunt work and errors via automation. Its job is to allow developers to focus on the important tasks, not fight the tool.”
“Developers should look for a suite of tools that can provide a holistic solution to maximize collaboration with different technologies and other teams such as Quality Assurance, Data Management and Operations. By integrating technologies that offer support to different departments, developers can maximize the talents of those individuals and prove that their code can work and be comfortable with potential real-world situations. No longer will they wonder how it will work, but can tell exactly what it does and why it will work.”
“The focus should really be traceability. You can manage requirements, implementation and testing, but developers need to look for something that’s flexible with an understanding that if they should want to change their process later, that they have flexibility to modify their process without being locked into one methodology. You also need flexibility in the tools themselves, and tools that can scale up with the customers and data you have. You need tools that will grow with you.”
“Developers should do a quick bullet list. What aren’t they happy about in their current process? What are they really trying to fix with this tool? Are things falling through the cracks? Are you having trouble getting the information you need to answer questions right now, not next week? Do you find yourself repeating manual processes over and over? Play product manager for a moment and ask yourself what those high-level goals are; what ALM problems you’re really trying to solve.”
“[Developers] need to differentiate practitioner tools that help you do a job at a granular level from the tools that give you a level of control, governance or visibility into an application. Especially for an enterprise, you have to first optimize tool delivery. Whatever gets you the best output of high-quality software quickly. There are rules and best practices behind that, though. How do you manage your core code? What model have you enabled for it? Do you want a centralized model or a distributed model, and when you roll those things out, you need to set controls. You need to get that right, but with the larger focus of getting rapid delivery automation in place for your Continuous Delivery life cycle.”
“Any tool set needs to be usable. That sounds simple, but oftentimes it’s frustrating when it’s so far from the current process. The tool itself may also have to annotate the existing processes rather than forcing change to connect that data. You need a tool that’s usable for the developer, but with the flexibility to connect to other disciplines and do some of the necessary tracking on the ground level that’s critical in organizations to report things back. Teams shouldn’t have to sacrifice reporting and compliance for something that’s usable.”
A guide to ALM tool suites
Atlassian: Teams use Atlassian tools to work and collaborate throughout the software development life cycle: JIRA for tracking issues and planning work; Confluence for collaborating on requirements; HipChat for chat; Bitbucket for collaborating on code; Stash for code collaboration and Git repository management; and Bamboo for continuous integration and delivery.
Borland, a Micro Focus company: Borland’s Caliber, StarTeam, AccuRev and Silk product offerings make up a comprehensive ALM suite that provides precision, control and validation across the software development life cycle. Borland’s products are unique in their ability to integrate with each other—and with existing third-party tools—at an asset level.
CollabNet: CollabNet TeamForge ALM is an open ALM platform that helps automate and manage the enterprise application life cycle in a governed, secure and efficient fashion. Leading global enterprises and government agencies rely on TeamForge to extract strategic and financial value from accelerated application development, delivery and DevOps.
HP: HP ALM is an open integration hub for ALM that encompasses requirements, test and development management. With HP ALM, users can leverage existing investments; share and reuse requirements and asset libraries across multiple projects; see the big picture with cross-project reporting and preconfigured business views; gain actionable insights into who is working on what, when, where and why; and define, manage and track requirements through every step of the life cycle.
IBM: IBM’s Rational solution for Collaborative Lifecycle Management is designed to deliver effective ALM to agile, hybrid and traditional teams. It brings together change and configuration management, quality management, requirements management, tracking, and project planning in a common unified platform.
Inflectra: SpiraTeam is an integrated ALM suite that provides everything you need to manage your software projects from inception to release and beyond. With more than 5,000 customers in 100 different countries using SpiraTeam, it’s the most powerful yet easy-to-use tool on the market. It includes features for managing your requirements, testing and development activities all hosted either in our secure cloud environment or available for customers to install on-premise.
JetBrains: JetBrains offers tools for both individual developers as well as teams. TeamCity provides Continuous Integration and Deployment, while YouTrack provides agile project and bug management, which has recently been extended with Upsource, a code review and repository-browsing tool. Alongside its individual developer offerings, which consist of its IDEs for the most popular languages on the market as well as .NET tools, JetBrains covers most of the needs of software development houses, moving toward a fully integrated solution.
Kovair: Kovair provides a complete integrated ALM solution on top of a Web-based central repository. The configurability of Kovair ALM allows users to collaborate with the level of functionality and information they need, using features like a task-based automated workflow engine with visual designer, dashboards, analytics, end-to-end traceability, easy collaboration between all stakeholders, and support for both agile and waterfall methodologies.
Microsoft: Visual Studio Online (VSO), Microsoft’s cloud-hosted ALM service, offers Git repositories; agile planning; build automation for Windows, Linux and Mac; cloud load testing; DevOps features like Continuous Deployment to Windows, Linux and Microsoft Azure; application analytics; and integration with third-party ALM tools. VSO is based on Team Foundation Server, and it integrates with Visual Studio and other popular code editors. VSO is free to the first five users on a team or with MSDN.
Orasi: Orasi is a leading provider of software, support, training, and consulting services using market-leading test-management, test automation, performance intelligence, test data-management and coverage, Continuous Delivery/Integration, and mobile testing technologies. Orasi helps customers reduce the cost and risk of software failures by focusing on a complete software quality life cycle.
Polarion: Polarion ALM is a unifying collaboration and management platform for software and multi-system development projects. Providing end-to-end traceability and transparency from requirements to design to production, Polarion’s flexible architecture and licensing model enables companies to deploy just what they need, where they need it, on-premise or in the cloud.
Rommana: Rommana ALM is a fully integrated set of tools and methodologies that provides full traceability among requirements, scenarios, test cases, issue reports, use cases, timelines, change requests, estimates and resources; one common repository for all project artifacts and documentation; full collaboration between all team members around the globe 24×7; and extensive reporting capabilities.
Seapine: Seapine Software’s integrated ALM suite enables product development and IT organizations to ensure the consistent release of high-quality products, while providing traceability, reporting and compliance. Featuring TestTrack for requirements, issue, and test management; Surround SCM for configuration management; and QA Wizard Pro for automated functional testing and load testing, Seapine’s tools provide a single source of truth for project development artifacts, statuses and quality to reduce risks inherent in complex product development.
Serena Software: Serena provides secure, collaborative and process-based ALM solutions. Dimensions RM improves the definition, management and reuse of requirements, increasing visibility and collaboration across stakeholders; Dimensions CM simplifies collaborative parallel development, improving team velocity and assuring release readiness; and Deployment Automation enables deployment pipeline automation, reducing cycle time and supporting rapid delivery.
Sparx Systems: Sparx Systems’ flagship product, Enterprise Architect provides full life-cycle modeling for real-time and embedded development, software and systems engineering, and business and IT systems. Based on UML and related specifications, Enterprise Architect is a comprehensive team-based modeling environment that helps organizations analyze, design and construct reliable, well-understood systems.
TechExcel: TechExcel DevSuite is specifically designed to manage both agile and traditional projects, as well as streamline requirements, development and QA processes. The fully definable user interface allows complete workflow and UI customization based on project complexity and the needs of cross-functional teams. DevSuite also features built-in multi-site support for distributed teams, two-way integration with MS Word, and third-party integrations using RESTful APIs. DevSuite’s dynamic, real-time reporting and analytics also enable faster issue detection and resolution.