How DevOps Drives the Agile ALM


One of the most effective approaches to DevOps involves moving the automation of the application build, package, and deployment upstream to the beginning stages of the software development lifecycle—an industry best practice long before DevOps became as popular as it is today.

DevOps is getting a lot of attention these days as the benefits of improving communication and collaboration between development and operations is becoming readily apparent. The need for DevOps is especially  obvious in the wake of software and systems glitches that have impacted major financial services, including large banks, trading firms, and the trading exchanges themselves. The website is the latest high-profile software system that failed to meet its goals, due in part to problems related to software and systems reliability. These problems lead us to wonder if the technology industry is really capable of creating reliable enterprise software. Software developers, by and large, are very smart and highly skilled technology professionals. Equally skilled are the operations experts who establish the IT controls necessary to ensure that large-scale systems are available continuously, scaling them to meet the capacity demands required during peak usage. Both development and operations teams bring much expertise to the table, but they have fundamentally different perspectives. Developers are expected to write code that implements new features, while operations is charged with seeing that systems maintain a high degree of reliability even under heavy  system load. In addition, there are actually many other key stakeholders, without whom we could never create robust enterprise-wide software systems.

Technology organizations consist of a wide array of professionals, from business analysts to QA and testing professionals, each of whom is essential to the successful development of complex software systems. Coordinating their work is no easy task, and most organizations employ a  number of full-time project managers who track and report on the work being accomplished by each member of the team. But managing the development of large-scale software systems involves a lot more than just  creating Gantt charts and resource reports.

Developing large-scale software systems requires the coordination of hundreds (or even thousands) of tasks, each with its own set of dependencies that are rarely completely understood up front. Helping the entire team  understand what needs to be done is what application lifecycle management (ALM) is all about. With many organizations embracing the enhanced productivity and quality that comes from employing agile principles, the  agile ALM is becoming an essential software methodology. It turns out that agile ALM benefits greatly from the very same principles behind the DevOps revolution.

Enhancing collaboration between development and  operations works because each group brings a set of complementary skills to the table that, when integrated, enhances both productivity and quality. Developers know the technology they have been creating better than anyone else. They should; most developers have months to get up to speed and focus on changing technologies and software development frameworks. Developers often get to choose which technologies to use in  creating systems and then focus on building their expertise on a daily basis. Operations professionals need this information in order to be successful. The operations team understands what happens when a critical system is unavailable for any period time. One of the most effective approaches to DevOps involves moving the automation of the application build, package, and deployment upstream to the beginning stages of the  software development lifecycle—an industry best practice long before DevOps became as popular as it is today. [1]

User Comments

Mukesh Sharma's picture

Thanks for the good read, Bob and Leslie. As you rightly put it, although it is termed "DevOps" several other stakeholders/entities have an important role to make this process work seamlessly, and I think the tester community is one such major group in this mix. Whether it is giving a set of automated tests to the developer team or the operations team for sanity runs before the build is turned in to them or sitting with them to review the "development pipeline" the tester community has a visible and important role to play in this move to a "DevOps" culture.

April 9, 2014 - 6:43am
Bob Aiello's picture

Hi Mukesh,

I agree with you and would like to dig a littler deeper into why testing is such an important part of ALM and DevOps. We often find that developers write unit test cases - which is good - although often limited in scope. We also sometimes see automated functional testing which is also good but limited to what can be reached from the user interface. I see an emerging best practice of focusing on service virtualization testing which is at a deep enough level that collaboration between professional testers and the developers who wrote the code is essential. This is "deep in the weeds" - often "middleware focused" - testing and highly effective. Done well service virtualization testing can have a much wider focus. This is a perfect example of where communication and collaboration between development and testing is essential and a perfect example of the synergies enjoyed by DevOps best practices!!

feel free to drop me a line and share your best practices!!
Bob Aiello, Technical Editor CM Crossroads
[email protected]


April 9, 2014 - 10:50am

About the author

About the author

Upcoming Events

Nov 05
Nov 14
Dec 05
Jun 03