DevOps Implementation: Embrace Collaboration

DevOps Implementation is an Ongoing and Never Ending Process

Since a major goal of DevOps is to create an environment of continuous improvement through continuous development, a DevOps implementation must be seen as an ongoing, never-ending process that impacts far more than just any one given project. It becomes a unifying way in which the various departments within a company learn to collaborate more effectively.

The greatest challenge for those approaching the implementation of DevOps in their organization will be the need for patience. The concept of constant iterative change is not readily or easily embraced. It involves constant evaluation, which can be anathema to many members of the team. Actions are viewed and taken with far greater granularity. The initiative must start small and prove itself, then be distributed organically with full buy-in from each department that becomes involved. Then there’s the other challenge:

DevOps is still in the process of being defined, and everyone has their own interpretation. While many “best practices” can be suggested, it is up to each reader to determine what is “best” in their particular environment. As such, the following are suggestions for your consideration.

“DevOps is not a goal, but a never-ending process of continual improvement”

– Jez Humble, one of the progenitors of DevOps

Remember that Culture Change is Hard

For your DevOps implementation to be successful, it must create significant change in your company’s culture. This is no simple task. Culture is not conveyed in rules, regulations, processes or procedures. You cannot document culture. Culture instead pervades an organization from its leadership on out. This means that your DevOps initiative must begin with full buy-in from the top. Change to the culture is significant, organic, gradual change.

Most people resist change, especially when it comes to the culture they are accustomed to living in. While implementing DevOps involves humanistic change for the better, it’s still change. Always remain sensitive to the natural resistance you will encounter and find ways to overcome it gently, gradually, and productively. While you’re at it, work at removing any “blame game” tendencies in your existing culture as you make your changes.

You may find it valuable to create a core DevOps team with identified ambassadors or champions in each department involved.

Focus on People and Their Needs

DevOps functions in the context of your company and its business. Many companies adopting DevOps do so because they need to bring products to market more quickly. They are willing to embrace the constant iterative nature of DevOps processes to get to market faster, but that is not the only need involved.

Every step along your roadmap must be justified by what your business needs, and you must obtain agreement by the stakeholders that they agree with the needs you’ve identified, and that they’re prepared to adopt a new culture and adapt to the changes it brings. Again, this usually proves to be far more difficult than anticipated.

You’re not implementing DevOps because its “fashionable” so remember to define business needs in the context of your customer. High customer satisfaction always remains a key goal of any process and DevOps is no exception. Without customers, it hardly matters what you do or don’t do.

Remember that your own people are being asked to significantly change the way they do what they do, which may have remained the same for a long time. DevOps implementation is not forced upon people, or the optimum velocity of iterative improvements may never be achieved. Team satisfaction is at least as important as customer satisfaction in successfully integrating DevOps into your environment.

Remove All Barriers

Kishore Jalleda, Sr. Director of Production Engineering at Yahoo says “DevOps is really about eliminating (most) Technical, Process, and Cultural barriers between Idea and Execution — using Software!”

To create and maintain the most fertile environment for cooperation, great emphasis should be placed on removing as many barriers between people as possible, whether they be physical, emotional, moral, ethical, interpersonal, or anything else that impedes collaboration and cooperation.

Even training and orientation should include people from other disciplines to promote better understanding and appreciation of each other’s realities. Have operators attend development training and developers learn more about operations. This can only promote greater consanguinity.

Tools and Automation

The easiest way to make things, especially repetitive things, happen faster is to automate them and tools to help you do so abound. Automate everything that you find can be automated and allow people to focus on more important issues. This will accelerate everything. Encourage everyone to share the tools they’ve found with the DevOps team for possible deployment.

This last point cannot be overstated. The goal is not to first identify all the tools and automation opportunities. The goal is to institute process change focused on increasing customer and business value. The process of seeking and identifying tools will be greatly enhanced when the people involved are already living with DevOps principles.

Metrics

The legendary management guru Peter Drucker advises us that, “You cannot manage what you don’t measure.”

When crafting your metrics and your key performance indicators (KPI) remember the ultimate goal of delivering better software experiences faster. That’s the only place you’ll find truly indicative metrics, at the point of results. Cycles per time period and other improvements are merely indicators. Measure your success by the results you deliver.

Enjoyed This Article? Check Out Our Other DevOps Content