In his Behaviorally Speaking series, Bob Aiello discusses hands-on software configuration management best practices within the context of organizational and group behavior.
DevOps is helping development and operations teams work more effectively together. There are also other essential stakeholders who can benefit from improved communication and collaboration, including information security, QA, and testing teams. As every stakeholder needs to understand his role and assigned tasks, application lifecycle management (ALM) provides the essential best practice that ensures that every team member knows what he needs to accomplish and how to communicate effectively with the other members. This article explains how ALM can be best used to drive DevOps.
DevOps is helping development and operations teams work together more effectively by fostering better communication and collaboration. Moving application build, package, and deployment upstream allows operations to automate the entire deployment pipeline earlier in the lifecycle and also gain the requisite knowledge required to understand how to support the application. DevOps clearly works and both development and operations benefits from these industry best practices.
But, there are other essential stakeholders who can also benefit from improved communication and collaboration, including information security, QA, and testing. The fact is that every stakeholder, from the business analyst to the DBA, needs to understand their particular role and assigned tasks as well as the work being accomplished by other members of the team. Application Lifecycle Management (ALM) provides the structure and framework that ensures that every member of the team knows what they need to accomplish and how to communicate effectively with the other members of the team. This article explains how the ALM can be best used to drive DevOps!
DevOps is a set of principles and practices that are helping development and operations to collaborate more effectively. Developers are typically focused on creating software with new features and responding to customer requests as quickly as possible. Operations has a very different focus and is primarily concerned with maintaining a stable service environment. Much has been written about the natural conflict that exists between development and operations. But the truth is that many other groups also have a focus that often fails to really consider the requirements of the other stakeholders. Organizational silos can have a detrimental impact upon any development effort and DevOps provides us with the key practices necessary to foster effective communications and collaboration. The ideal scenario is to develop teams that are cross-functional and self-organizing and provides a lesson as to exactly why DevOps is effective.
High-performance teams are typically self-organizing and often cross-functional [1]. While having a team of technology experts who can perform any role is ideal, it is often not very practical. You can still realize the benefits of DevOps by embracing application lifecycle management, which helps by defining the workflow for the entire software and systems lifecycle. ALM has its roots in the software development lifecycle (SDLC), with typically defined stages including requirements, design, development, and testing. The ALM actually takes a much wider view than these roots, however.
The ALM defines the tasks, roles and responsibilities that are required to support the entire software and systems lifecycle. This does include defining requirements, design, development, testing, but also other related functions including ongoing systems support functions such as the service desk. Application Lifecycle Management takes an integrated and comprehensive approach and relies upon a robust workflow automation tool for its organization and success. The ALM provides transparency, traceability, and, most importantly, knowledge management and communication which is the key lesson that we learn from effective DevOps. While cross-functional teams are often ideal and very effective, sometimes organizations must maintain a separation of controls.
In highly regulated industries such as banking and finance, federal regulatory requirements exist for a separation of roles. For example, the technology professionals who write the code are not permitted to be the same resource who build, package, and deploy the code. These restrictions, known as IT controls do not prevent organizations from embracing DevOps principles and practices. Whether you are agile or have reason to use a waterfall methodology, the core lesson from DevOps is really about communication and collaboration. Developers have specialized knowledge that must be shared with the operations team in order to successfully maintain and support the runtime systems. The fact is that each team has specialized knowledge that can benefit each of the other stakeholders.
DevOps includes information security (InfoSec), QA, and testing as key stakeholders. InfoSec can learn a great deal from developers and both development and information security can learn from the QA and testing professionals. The ALM helps to define what each stakeholder brings to the table and facilitates sharing knowledge and information that is essential for success. These practices improve productivity and quality. It is my own experience that the most effective way to embrace DevOps with the wider ALM perspective is in small steps. Continuous process improvement (CSI) is one of the effective methodologies that can help you to start at the beginning and work your way through embracing each of the roles in the ALM. DevOps focuses on effective communication, collaboration and knowledge sharing. Using ALM, you can understand all of the different roles and tasks required in the software and systems lifecycle. Using the ALM to drive your DevOps efforts can help your team embrace DevOps principles and practices for success!
[1] Mankin, Don, Cohen, Susan G., Bikson, Tora K., Teams and Technology : Fullfilling the Promise of the New Organization, Harvard Business School Press, 1996
[2] Harvey Robbins and Michael Finley, Why Teams Don’t Work – What Went Wrong and How to Make it Right, Peterson’s Pacesetter Books, 1995
[3] Aiello, Bob and Leslie Sachs. 2010. Configuration Management Best Practices: Practical Methods that Work in the Real World. Addison-Wesley Professional.
[4] Deming, W. Edwards (1986). Out of the Crisis. MIT Press