Organizations today are completely clued in to the benefits that implementing DevOps can bring—from keeping up with the rapid pace of business, to adapting to fast-changing requirements and ensuring faster product deployment cycles. Therefore, many of them are eager to embrace DevOps.
First, why DevOps?
So that two factions that were traditionally separate and worked to different objectives can now align their goals and streamline their ways of working, thus enhancing the efficiency of the IT organization. Before DevOps, software product development teams and the IT operations team worked independent of one another, the goal of the former being to deliver new features quickly and that of the latter being to ensure the stability and security of the IT system and operations. DevOps seeks to break down these siloes and marry these two objectives together—to align all teams and encourage them to collaborate towards a common goal—delivering applications in an efficient and speedy manner without destabilizing the system.
However, easier said than done, for implementing DevOps calls for organizational transformation – a mindset shift in not just technology and processes, but also the culture of the organization. And this is where the crux of the matter lies—that DevOps is not just about investing in the right tools and software, but about the culture that permeates the organization. This all-pervasive culture, combined with tools that enable rapid development, can lead to the success of a collaborative DevOps environment.
What are the elements of a DevOps culture and how can the organization be encouraged to adopt it?
DevOps calls for an open professional culture that values the following:
Respect:
All team members striving to get the product out there, regardless of which function they belong to, should develop a healthy sense of respect for one another, and an acknowledgment of one another’s the contribution.
Trust:
Without trust, DevOps is doomed to failure. Operations must trust Product Development, and vice versa, both united in the belief that only the product and end-user is important, not what they individually do.
Open Communication:
The ideal DevOps culture is one that is born of discussion, debate, interaction, and an interchange of ideas. It demands that all team members be on the same page, as regards the organizational objectives, and the product itself—requirements, features, resources needed, timelines, etc. The focus is not on who will do what, but on the product and what needs to be done to get it out on time with minimum iterations.
Information sharing:
Information—production and build metrics, infrastructure details and documentation—must flow freely between teams and be visible to anyone who needs to view it.
Holistic thinking: Encourage teams to have a holistic, end-to-end view of the system; from the business concept to technological implementation to how the product actually works—this will break down silos and allow teams to appreciate one another’s involvement and challenges.
Problem-solving approach:
It is imperative to have a problem-solving approach as part of an effective DevOps culture, rather than a finger-pointing one. So instead of asking “who is responsible for this bug?,” people will ask, “What can we do to fix it quickly?”
The right incentives:
The right incentives can go a long way in fostering a vibrant DevOps culture. If all teams and functions are incentivized on metrics such as customer problems, security, availability, functionality, etc., then they will strive to work together to achieve excellence, without resorting to setting up artificial silos and limits.
The involvement of users: Ensure that you involve the users of the product as much as possible to close the feedback loop. User feedback will not only help identify issues but also help set priorities and align goals.
Hiring the right people:
Whomever you hire, whatever their function, ensure that they fit in with the organizational DevOps vision.
Encouraging a DevOps culture within your organization, getting people to embrace it whole-heartedly and building in the right processes at the right time are no easy tasks. But you knew that—this was always going to be a difficult transformation. So, approach a DevOps transformation as you would any other cultural or organizational change—with sensitivity, but clear goals; with encouragement, but a commitment to making it work; taking a methodical, step-by-step approach, and targeting participation and complete buy-in.