How DevOps Drives the Agile ALM

[magazine]
Volume-Issue: 
Summary:

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 healthcare.gov 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

2 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
http://www.linkedin.com/in/BobAiello
bob.aiello@ieee.org

 

April 9, 2014 - 10:50am

About the author

Bob  Aiello's picture Bob Aiello

Technical Editor of CM Crossroads and author of Configuration Management Best Practices: Practical Methods that Work in the Real World, Bob Aiello is a consultant and software engineer specializing in software process improvement, including software configuration and release management. He has more than twenty-five years of experience as a technical manager at top New York City financial services firms, where he held company-wide responsibility for configuration management. He is vice chair of the IEEE 828 Standards Working Group on CM Planning and a member of the IEEE Software and Systems Engineering Standards Committee (S2ESC) Management Board. Contact Bob at Bob.Aiello@ieee.org, via Linkedin linkedin.com/in/BobAiello, or visit cmbestpractices.com.

About the author

Leslie  Sachs's picture Leslie Sachs

Leslie Sachs is a New York state certified school psychologist and the COO of Yellow Spider, Inc. (http://yellowspiderinc.com). Leslie is the coauthor of Configuration Management Best Practices: Practical Methods that Work in the Real World, Addison-Wesley Professional (http://cmbestpractices.com). Ms. Sachs has more than twenty years of experience in the psychology field and has worked in a variety of clinical and business settings where she has provided many effective interventions designed to improve the social and educational functioning of both individuals and groups. Ms. Sachs has an M.S. in School Psychology from Pace University and interned in Bellevue's Psychiatric Center in New York city. A firm believer in the uniqueness of every individual, she has recently done advanced training with Mel Levine's "All Kinds of Minds" Institute. She may be reached at LeslieASachs@gmail.com, or link with her http://www.linkedin.com/in/lesliesachs.

Upcoming Events

Apr 13
May 03
Jun 01
Jun 07