Recommendations for fostering DevOps culture

Applies to this Azure Well-Architected Framework Operational Excellence checklist recommendation:

OE:01 Determine workload team members' specializations, and integrate them into a robust set of practices to design, develop, deploy, and operate your workload to specification. Team members must have clarity in decision-making and responsibilities, value continuous improvement and optimization, and adopt a blameless culture that incorporates continuous learning.

This guide describes the recommendations for implementing DevOps principles and practices in your workload. Fostering DevOps culture can help build a foundation of shared ownership, mutual respect, and appreciation of high quality work in your workload team. Devops culture provides a template for high-performing teams to thrive in the system that they're in.

Key design strategies

A workload that operates according to the Well-Architected Framework recommended practices starts with the adoption of the DevOps culture of cohesiveness, responsibility, continuous learning, and improvement. Team members bring their own expertise and might focus on specific areas of workload operation. However, your team as a whole should be able to independently manage day-to-day, as-needed, and emergency tasks, with support from outside teams when necessary. Your team must work within the overall organizational requirements and collaborate with other teams by using a mindset that values shared knowledge.

The following recommendations can help you adopt and implement DevOps practices in your team to optimize the operation of your workload and add value to your organization.

Foster mutual respect

A team should operate by using a code of ethics based on mutual respect. Everyone on the team has expertise that brings value to the team. Recognizing individual ability as a core tenet of the team culture allows conversation to start from a safe place. Individuals should feel that they can offer honest opinions about workload operations and be treated respectfully.

Mutual respect fosters a blameless culture. When issues occur, the workload team should take collaborative ownership and find ways to improve instead of assigning blame and affecting the team's cohesiveness.

Team roles and responsibilities

Teams take ownership and responsibility for the workload when they value their work. The workload team ultimately has end-to-end responsibility for the operation of their workload. Although there might be outside services required for certain aspects of the workload operation, your team is responsible for collaborating with other teams and ensuring that all functions are successfully completed. Regardless of how involved they are in supporting services, workload team members must consider every function that supports the workload as their responsibility. This mindset helps reinforce a common sense of ownership.

Clearly define team roles and decision-making responsibilities. Team decision-making should be as democratic as possible, but structured so that decisions are made efficiently. When there are differing opinions about a situation, someone must be responsible for making the final decision based on the evidence that's presented. Team decisions can affect the entire workload, so it's important that individuals feel heard and valued throughout the decision-making process even if they don't agree with the final decision.

Continuous learning and improvement

Use enablement teams to the workload teams' advantage. Some organizations have enablement teams, such as platform teams, architecture review boards, or cloud centers of excellence. These teams provide standards that all workload teams must follow to ensure that there's consistency in design and process. Empower your workload team to have open lines of communication with enablement teams and to work collaboratively to improve processes and share knowledge. Support a mindset of continuous learning and improvement in your team via open communication.

Learn from each other to develop a cross-functional team. Establish a team structure in which everyone is a specialist in their function and a generalist in all other functions so that team members can support each other when needed. Cross-functionality helps team members to develop appreciation for each other's expertise and can help them understand the complexity of the entire workload.

Commitment to optimization

Understand business, regulatory and other requirements and integrate them into your practices. Workload teams don't operate in a vacuum. Your team is subject to requirements enforced by the business, industry, and geographic regions you operate in. Ensure that your workload team members understand the requirements that they must follow and the consequences of a failure to meet those requirements.

Proactively adapt your practices to ensure that you're compliant with requirements by integrating testing mechanisms that specifically target required functions. Your organization might impose some degree of governance over your workload. Use the requirements your business standardizes as guardrails to ensure that you're operating appropriately.

Regularly review your standard operating procedures with the team to foster discussions about areas of improvement. Avoid complacency and encourage innovative thinking by fostering a philosophy that all standard operating procedures should be continuously reviewed and improved throughout the workload lifecycle. Team members should feel empowered to offer opinions on improvements at any time. However, ensure that you dedicate time to review procedures together so that everyone has space to think about areas for improvement and conduct focused discussions about their ideas.

Embrace safe experimentation. Give team members access to sandbox environments and ensure that time is built into sprints to allow for experimentation. Document standards that define how new functionality is integrated into the workload when a team member discovers a function or component that would offer tangible benefits. Be careful to ensure that new functionality is aligned with your safe deployment practices.

Considerations

Strictly defined roles and responsibilities could result in a level of discomfort for some team members when they're performing functions outside their responsibility. Conduct open and honest discussions with the team about team structure, and be open to making adjustments when needed.

Azure facilitation

Microsoft publishes extensive documentation about DevOps culture in a dedicated DevOps resource center.

Operational Excellence checklist

Refer to the complete set of recommendations.