In his Behaviorally Speaking series, Bob Aiello discusses hands-on software configuration management best practices within the context of organizational and group behavior.
Agile software development practices are undeniably effective because they place the essential focus on working software along with individuals and interactions. However, even the most successful companies can face challenges when trying to scale agile practices on an enterprise level. DevOps is going through many of the same growing pains.
Many small teams are successful at implementing DevOps, but they may find implementing DevOps best practices on an enterprise level to be very challenging. This article will help you understand how to be successful implementing DevOps in the enterprise.
Shared Principles and Practices
Agile development and DevOps focuses on a number of important principles: individuals and interactions over processes and tools, working software over volumes of documentation, and customer collaboration over just contract negotiation, and responding to change over following a plan. These are all values that are familiar to anyone who adheres to the Agile Manifesto.
DevOps and agile development share a lot more in common than just a set of principles. Agile development usually requires rapid iterative development generally using fixed timebox sprints. Agile development highlights the value of rapid and effective application development practices that are fully automated, repeatable, and traceable. It is no surprise that DevOps has been especially popular in agile environments because it adapts to iterative development.
DevOps focuses on improved communication between development and operations with an equally essential focus on other stakeholders, such as QA. DevOps at scale may require that you consider organizational structure and communicate effectively with many levels of management. You can expect that each organizational unit will want to understand how DevOps will impact them. You may have to navigate some barriers and even organizational and political challenges. There are other key requirements that often come when we consider scaling best practices.
The first consideration is that larger organizations often want to establish a centralized support function, which may be established at the divisional level or could be a centralized corporate wide entity. This may mean that you have to establish a corporate budget and align within the corporate structure and obviously the culture too. You may be required to create corporate policies, mission statement, and also project plans consistent with other efforts, including business and strategic planning.
Even just purchasing tools that are essential for effectively implementing DevOps may require that you adhere to corporate requirements for evaluating and selecting tools. I have seen some of my colleagues become frustrated with these efforts as they felt that they already knew which tools should be implemented while their organization leaders wanted to see a structured tools evaluation with transparency and participation by all stakeholders.
These efforts, including a proof of concept (POC), can be used to spread the word and help overcome resistance to change that often can be seen in larger efforts to implement any best practice, including DevOps.