Application lifecycle management (ALM) is the process through which applications are managed during their lifecycle. Today, ALM usually helps software engineers create a process where there is none, by using tools that have the ability to maintain an integrated process for the consumer.
ALM may be adopted in one of three ways:
1. A product or solution provides the complete ALM process.
2. The client creates the ALM process and customizes the product to fit their needs.
3. A combination of numbers one and two – a hybrid, where clients using out-of-the-box ALM functionality can use bits and pieces of their own process along with the vendor's product.
Some ALM vendors sell their product based on the false notion that the tool will help a company achieve its goals, by automatically providing efficiency, documentation and speed-to-market. It doesn't hurt that they have it all neatly packaged in a cute little bundle of software. The truth is no perfect ALM solution exists – at least not that I've seen – and now there are many companies that cannot "think for themselves," thereby becoming dependent on how the vendor provides the ALM solution. Planning, preparation, training, implementation and governance are all keys to an ALM's success. However, simply purchasing and installing an ALM tool will not enhance productivity; it may even end up hindering its progress.
I suggest finding an ALM implementation specialist who will help you put together the right strategy for ALM adoption in your specific situation. This will aide user-acceptance and make the most of the tool for your company's productivity. I suggest that your corporation's ALM implementation process be consistently reviewed by two different, but equally important entities. First, by Quality Management; a holistic view that encompasses the entire process from start to finish, including all individuals and departments that play any role in the creation of goods and services.
Management must oversee the implementation of ALM from the very beginning, since an incorrect implementation may interfere with or decrease the quality and performance of the ALM tool. If quality lacks at any point in the design or analysis of the process, such as in the gathering of requirements for the production and/or deployment of goods and services, the QA Manager should be knowledgeable enough to recommend changes and work to correct the problem.
A second review should be conducted by the quality assurance manager and team. Take a specific look at the QA department: how it works with the customer, and the way in which it currently finds defects in a product. Of course, QA analysts should also recommend improvements and work on changes if an issue occurs during software quality assurance testing. QA must be present in all areas of the business, but especially in the QA department for obvious reasons. It is likely that using both of these perspectives during an organizational review will positively impact how tightly quality is woven throughout ALM's implementation.
Traditional and enhanced ALM processes
Let's compare and contrast the traditional ALM process to my view of what an enhanced ALM process should be, including quality assurance and other support factors needed to fully implement ALM.
The traditional ALM process tends to involve project management, requirements gathering, analysis, design / architecture, development, test, configure and change management. These steps make up the basic ALM software development lifecycle, from the gathering of requirements to the development of an end product, service or solution. Each phases intertwines with the next, making the whole process very easy to trace.
Although the traditional ALM process provides a solid base for ALM implementation, additional criteria must to be interjected in order for the ALM process to become successful: senior management, process, governance, infrastructure, helpdesk, sales, and QA.
Senior Management is at the top of the priority list because it is with them that any and all communication about the ALM tool begins, and they are also the enforcer of correct ALM implementation procedure. Senior Management should communicate any changes in the process to their direct reports, and make it clear that it is expected that the direct reports to do the same with their employees. For these reasons, Senior Management must be fully committed to the ALM process and tools.
The Process Department ensures that proper planning meets the needs of Senior Management, other employees and the company at large. Developing an implementation strategy that fits the needs of each department is an imperative goal of the process department, since it can make or break the efficiency of the ALM implementation.
Governance ensures that the strategy of the process department is on-track and the expectations of Senior Management are met by all departments. The Governance team should conduct regular audits and then communicate the results and provide metrics to senior management and the process Department. And, although it is in the best interest of the Process Department to make sure that all procedures are correctly followed, is important that the Process and Governance groups remain separate entities with separate roles. The role of the Process is to create the roll-out strategy – not enforce it. If the Process team were to do both, it would be too easy for someone to make changes to the procedure and then audit the implementation's progress at the same time. To limit the risk of biased information and skewed data during an audit, it is best to have Governance deal specifically with process-enforcement.
After the standard Software Development Lifecycle (SDLC) is complete, the Infrastructure team should be aware of what changes need to be made and where they should occur. The Hardware and Network teams are also involved during this step of the process so they can make suggestions for change based on the influx of issues they saw during the SDLC.
The Help Desk is required to be informed of all changes so they can support and fix any issue that occurs during production. Its involvement with the ALM process and the Help Desk's communication to the other levels is imperative for all who need to know if the project was a success after deployment. The key here is to document all status reports and tie them together with the traditional ALM process for SDLC.
The Sales department often gathers information on the needs of the (potential) client. Documenting and tracking this information, and communicating it back up the ALM process chain to departments that have the authority to make changes, may help increase the potential of finding new source revenue.
Quality Assurance and Quality Control are important contributing factors to increased revenue and ALM success that are often, and unfortunately, overlooked. The Quality Assurance department ensures that the ALM process and procedures are adequately conducted, while the Quality Control department measures and quantifies the results. Consistent reviews of each department will not only inform Senior Management of the ALM's progress, but will also assist the departments with improving where, when and how they use the ALM tool. If all corporate departments enter in the ALM process with the same goal in mind, moving as one with the same process and strategy, success will be easier to achieve.
About the author: John Scarpino is director of quality assurance and a university instructor in Pittsburgh. You may contact him at Scarpino@RMU.edu.
This was first published in July 2009