Microservices are a hot topic in IT circles these days. The idea of a modular approach to system building – where you have numerous, smaller software services that talk to each other instead of monolithic components – has many benefits ...
Culture is an organization's pattern of response to the problems and opportunities it encounters. One of the main principles of DevOps is the creation of a generative, high-trust culture that supports continuous improvement. Without it, you will not move forward and improve as an organization.
Changing to a DevOps culture can be extremely challenging, often leading to disappointment. This is largely because organizational silos between Dev and Ops can be hard to penetrate. The key is to avoid making sweeping changes as successful cultural change happens in the course of the incremental pursuit to this high-trust generative culture.
There is no "right" culture for DevOps, but characteristics such as open communication, high cooperation, collaboration, respect, and trust are essential. These characteristics create a generative environment in which continuous improvement leads to ever-higher levels of throughput and stability. Product teams form and work together through the delivery process, collaborating on ways to reduce the cost and risk of making changes. Risks and goals are shared, bridging is encouraged, and failure is treated as a learning opportunity.
If your organization does not have these characteristics, they must be developed. Culture is learned, not inherited. It must be genuinely nurtured by everyone from executive management on down the line. Here are some hacks to help develop a positive DevOps culture.
Leadership Sets the Tone
Culture needs to be treated like any other business initiative. Someone needs to own it and leadership must be on board. The DevOps transformation will need people, budget, and time. People may need to be moved and workloads may change. The goals and objectives need leadership buy in to ensure everyone is on the same page. Executives should realize that significant change is necessary since current delivery processes are failing to meet the needs of the business. If management is not on board, it's a warning sign that your company may be heading into obsolescence.
Pick the Right Team and Start Small
If DevOps is new to you, it's important to start out small. DevOps culture might not feel natural at first, so you need a place to practice. Start with a single product team and fully commit, so you can flush out any issues early on. Starting small is less expensive, is not seen as a threat, and can initially be classified as an experiment. Pick a team that is open to experimentation and change. While teams working with modern platforms seem to be the logical first choice, quite often teams working on legacy apps would jump at the chance.
Develop Respect and Trust
Developing respect and trust within the team is critical. Respect begins with common courtesy, but extends beyond simply being polite to a culture where people are truly valued for their individual worth. Respect people's time during work and more importantly during off hours. Keep meetings to an absolute minimum or eliminate them altogether. Email or messages outside work hours are taboo unless you have a good reason.
Build trust with open, transparent, bi-directional communication. Treat feedback as a gift and make sure it's addressed. Ensure the team has access to all the necessary information and empower them to make decisions. Create a safe environment for the team to experiment and learn. Failure leads to inquiry. These hacks breed trust, save time, and accelerate decision-making.
Get Everyone on the Same Page
Have a clear set of goals and measurable outcomes. Make sure everyone on the team has the same priorities. Remove the conflicting incentives between Dev and Ops so that everyone is pushing in the same direction. Developers should be on call to support deployments. Operations should be in sprint reviews and retrospectives. Everyone is responsible for reducing cycle times as well as improving quality. Everyone should be focusing on delivering customer value faster with less risk.
Automate, Automate, Automate
Tools and processes influence culture. Provide self-service provisioning and automate deployments. Make delivering software a non-event and watch innovation soar and a generative culture grow.
Spreading DevOps Culture
There are several options for spreading the culture: split and seed a new team, grow the existing team and then split it into new teams, or use internal coaching to transform other teams to a DevOps culture. Make sure to communicate successes and whenever possible, tell the story with data. Make the DevOps culture visible to the world.
Even in the best environments, shaping culture to a specific set of attributes can be hard. Cultures are mutable and shift in response to external and internal changes. Find the hacks that mean the most to the organization and be consistent. Work them into the organizational DNA and be patient. Changing people's behaviors and attitudes is harder than changing code but the results will transform IT to a high-performance organization that will meet the demands of the business.