Even with the increasing availability of highly effective integrated ALM solutions, lots of companies are still using a fragmented software ecosystem they have adopted over the years. This article explores the benefits of and the costs associated with migrating to an integrated system in order to maximize efficiency.
Application lifecycle management (ALM) tools cover the whole history of a software application, from its inception as an idea all the way to its retirement, and are used to manage all product-related processes in between. The complexity of software applications' lifecycles has increased greatly in the few decades since the first version control tools were created. Fortunately, these version-control systems paved the way for more sophisticated tools that help address the increasing complexity of software product lifecycles today.
The development of these tools resulted in an abundance of software serving various purposes within the application lifecycle, and later, some integrated ALM suites that included modules encompassing the whole lifecycle. More recently, fully integrated holistic ALM tools also have emerged, offering all-around integration in terms of layers, database, and GUI. Rather than interconnected but inherently separate modules, these latest ALM solutions are all-in-one tools offering complete integration across all layers.
Due to the fact that software solutions were updated and developed gradually to follow the expansion and increasing complexity of application lifecycles, a lot of companies kept upgrading their array of development tools piece by piece (or module by module) over time, always evaluating and choosing the piece of software that best fit their purposes and their existing software ecosystem. As a consequence, the various roles, areas, disciplines, or stages of software development all started using their own tools, sometimes even more than one, establishing functional silos. The result was that teams who are supposed to be collaborating are using disparate tools for their purposes, limiting their ability to cooperate and leverage their full potential.
Managing increasing software complexity and coordinating the work of various disciplines and development activities calls for the integration of these tools. Point-to-point integration of separate modules wasn't effective enough in breaking down functional silos, resulting in the emergence of integrated and monolithic (or holistic) ALM tools encompassing the entire lifecycle. Let's not rush ahead, though. First, let's find out what exactly the problem is with functional silos and using several distinct tools for various purposes.
Pitfalls of Software Inconsistency
For the sake of simplicity, let's just focus on one part of the application lifecycle: software development. Let's also assume there's only one developer, Jim, working on our example project. Now, if Jim is using one tool to manage requirements, another for writing code, and a third one for testing, he already has to juggle three distinct tools with three different repositories, three GUIs, and inconsistent processes breaking up his workflow.
Trying to connect these tools via APIs, Jim will find that data exchange is never flawless—some data will be lost in translation. He's also going to struggle when trying to ensure traceability along the software development lifecycle, and he'll realize that all-around baselining is practically impossible. Jim will probably be using tools designed for a single process, but during development, he'll find that he needs some level of cross-functionality with his tools. It will be difficult for Jim to get an overview of the extent he's covered the initial requirements to create reports for management—in other words, to stay in control of his project. Because Jim is a forward-thinking developer, he's updating his software continuously, but once he's updated software a, he finds it's no longer compatible with software b.
Even after sacrificing a lot of time and effort trying to ensure traceability, data integrity, and baselining, inconsistent software will still cause Jim a headache. The bad news is that in real life, Jim is never alone, and the application lifecycle doesn't only consist of software development. In a real environment, remote teams of various disciplines are collaborating in interrelated processes to plan, develop, and maintain complex pieces of software, to manage other processes of the lifecycle, and to incorporate continuous change requests—all this under heavy market pressure. In such a complicated environment, inconsistent software can cause overhead, redundancies, administrative difficulties, quality problems, and a variety of other issues, from both the technical and the business viewpoints.
So, why are some companies still using several distinct tools instead of integrated solutions?
As mentioned previously, the reasons are in part historical. Before the emergence of integrated solutions, it was standard procedure to just upgrade software piece by piece when the need arose. It was also the norm to somehow partly integrate these solutions and make them work (more or less) for the company's processes. Because immense effort and costs may have been invested in the extension, integration, and configuration of their current solutions, some companies find it difficult to face the fact that what they have sacrificed so much for isn't an optimal solution.
Others don't have the time or resources to evaluate new solutions, or their preferred vendor doesn't even offer an integrated ALM tool. In some cases, the problems are obvious but fail to get the attention of upper management due to more severe and urgent problems in the organization that need to be solved. Concerns may also arise that implementing a new tool will require adaptation of corporate processes, or that it would necessitate changes in other parts of their application lifecycle and IT landscape. The perceived high costs of switching, insufficient corporate innovation, or the lack of agility in a cumbersome decision process may also be thwarting the switch to a more efficient, integrated, homogenous solution that would offer various advantages over these companies’ current tools.
The Benefits of Holistic ALM Solutions
Single repository, single business layer and single GUI-based yet open solutions deliver maximum integration, resulting in widespread benefits in terms of technical homogeneity, project management, and business value.
Highly integrated software removes data and work redundancies, simplifies project management, allows for easy baselining and version control, and facilitates reporting by ensuring traceability and transparency. Basically, it helps project managers and team members stay in total control of their processes by providing an overview of the lifecycle.
Better quality requirements, code, test cases, deployment, and bug management are some of the many main benefits, as these could directly affect business value. Integrated ALM solutions also facilitate project management and collaboration, helping team members keep focus, avoid deviations from the plan, and driving success by facilitating the direct achievement of project goals. They help keep processes on track even with requirements, business goals, or the environment (or all of the above) changing.
However simple this sounds, it's actually one of the most complex issues, and it can only be achieved with the highest level of integration. Basically, users of integrated solutions find everything they need within the same tool: workflows, documentation, task management, planning, analysis, and reporting are all funneled in one ALM solution and all contribute to drive business value.
The benefits are numerous and convincing, but is implementing an integrated tool really as painful as it's perceived by some companies?
This is where it gets tricky—it's really difficult to tell. Naturally, the cost of licensing the ALM tool itself is one of the basic financial factors, along with the cost of support. Migration costs can be reduced as advanced integrated ALM solutions by various vendors come with many options for customization and import/export functions. The perfect ALM tool is comprehensive yet lightweight, allows for easy and fast rollout, and reduces rather than adds complexity. Flexible tools may mean you won't have to redesign your processes, but you will have to spend more time and effort on tool configuration. If you already have a mature process, the tool should adjust to the process, not vice versa. Rolling out the solution and training your team members mean further costs, and so does process re-engineering, if needed.
With a virtually unlimited number of configurations, several vendors and tools, and an array of issues and solutions available, it's difficult to estimate costs in advance. The advantages, however, should outweigh reasonable costs, so most companies could benefit from lower priced but flexible solutions. With the increasing need for integrated ALM tools, vendors are turning to smaller companies with integrated, comprehensive, and innovative ALM solutions, targeting them with competitive pricing and packages. One factor to consider is that the later you decide to switch to a more efficient and convenient solution, the higher the cost will be.
Integration: The Future of ALM
Overall, it's safe to say that switching to an integrated or even holistic ALM solution is inevitable for most companies. Sooner or later, they will realize they can't live without the benefits the tool offers (or with the disadvantages of their current toolset). Evaluating solutions, estimating the costs of migration, and implementing a new solution is a resource-intensive process, but due to the increasing complexity of products, it's more and more likely that the pros will outweigh the cons. Companies that select integrated, holistic, robust application lifecycle management solutions should enjoy increased quality, higher productivity, and thrilled customers.
Note: The book Beginning Application Lifecycle Management by Joachim Rossberg was of tremendous help in writing this article.