In his Behaviorally Speaking series, Bob Aiello discusses hands-on software configuration management best practices within the context of organizational and group behavior.
My suggested approach is to initially pick a pilot project that has high visibility within the organization, such as a trading system, and is one I can handle the right way. In practice, I have often had to juggle day-to-day duties supporting source code management or automated application build, package, and deployment. With a challenging “day-job,” it can be difficult to also have a “star” project to show the value of doing things right from the beginning, but this is exactly how to get started so you can demonstrate the success that the organization can enjoy by adopting DevOps.
Once the pilot project has been shown to be successful, it is time for you to consider rolling out DevOps throughout the enterprise. For DevOps practices to be effective in the enterprise, they must be repeatable, scalable, and fully traceable.
You need to consider establishing a support function to help each of the teams with training (including tools) and ongoing support. The implementation of these practices must adhere to all of the corporate policies and align with the organizational structure and culture. DevOps also must address the requirements of the organization's technology platform. In practical terms, this usually brings me right into the cloud because the resource requirements will likely change and organizations must be able to scale and meet the technology infrastructure demands.
Into the Cloud
Every large organization that I know of has been embracing cloud-based technology and cloud-based development. Implementing DevOps must also include the ability to support the cloud in several important ways. For instance, provisioning servers in the cloud is a very important task that allows DevOps to truly show its value by enabling the rapid setup and implementation of infrastructure as needed. In fact, managing cloud-based development is much more difficult without the improved communication and deployment automation that has become synonomous with DevOps.
DevOps in the enterprise requires some specific organizational skills, including scripting, application development, and systems administration. You need to understand the organizational and structural requirements that are essential in implementing DevOps in the enterprise.
One of the considerations that must be considered is the ability to support business continuity. Events, such as hurricane Sandy that hit the northeastern US coast with unexpected fury, highlight the importance of being able to quickly provision and deploy servers that support a scalable and flexible infrastructure. DevOps is the glue that we need to manage the enterprise infrastructure and support the business goals.