When it comes to DevOps, a lot has been said about the importance of people and culture and how people must employ a DevOps mindset to achieve success with their efforts and initiatives. I did a quick search on the Internet on DevOps culture, and there were a ton of facets that came up: collaboration, shared responsibility, transparency, and more.
However, I am of the firm opinion that these aspects can be successful only when there are robust processes and tools to support them.
Do I see some raised eyebrows here? Let me explain.
DevOps is a cultural change that disrupts the norm, compelling people to move beyond their comfort zone into areas that are not just unpredictable, but also uncertain.
What exactly is DevOps culture, you might ask! According to Atlassian, “DevOps culture is about shared responsibility; a shift towards transparency, communication, and collaboration across development, IT/Ops and the business.”
DevOps process, on the other hand, allows teams to move the application from development to production with the right automation, development, and testing environments. For DevOps to truly succeed, processes (software engineering practices) need to be iterated quickly, so the deployment of software can be continuous – on schedule, and according to customer expectations. This also has to be done with the right amount of discipline, so processes can blend agile delivery with risk management and governance to drive delivery assurance.
Here are some of the main principles of a DevOps culture – based on what I read in most of the articles. Let’s look at each in detail, and also see how the right processes (and technology) act as enablers to deliver results:
- Increased Collaboration: The primary principle of DevOps is the integration of Dev and Ops teams to increase collaboration between them. How does one increase collaboration? By using the right processes and tools, of course! It is through these tools and processes that teams can communicate effectively and frequently, share work, keep pace with schedules, and also track the progress of the project. Confluence and Jira are two such tools that connect people and ideas, so everyone can work better together and keep tasks organized.
- No Silos: As compared to traditional software development methodologies where teams worked in silos, through cross-team collaboration, DevOps eliminates these silos and reduces repetitive work. A constant feedback process creates an environment where the building and testing of software coincide – with a shared vision, goals, and responsibilities. Through regular meetings (part of a process), and shared metrics (measured through tools and dashboards), teams work together as one unit to assess workloads and assign tasks accordingly.
- Shared Responsibility: Another critical aspect of DevOps culture is an attitude of shared responsibility. Teams that work on a project share the responsibility of looking after the system throughout its lifetime. Therefore they are in a better position to understand the operational needs of the system and identify ways to simplify development and deployment. Asana, for example, enables teams to work together on common goals, facilitating communication while helping these teams achieve the visibility they need across projects while quickly meeting shared objectives.
- Customer-Centricity: Although DevOps offers a way for organizations to improve application development efficiency by bringing teams together, it does so to improve the end-user experience. For DevOps to truly be successful, teams need to build a culture of customer-centricity. This is done by getting regular feedback from customers and using their suggestions and advice as inputs to improve software quality. The cycle of feedback prioritizes the customer experience at every stage of the application delivery pipeline and is the only way to ensure teams continuously contribute to the creation of business value.
- Continuous Improvement: DevOps focuses on continuous improvement. Because teams work in close collaboration with one another, they drive efforts towards improving the quality of the product – continuously – so customer needs are met with precision. For example, tools like JIRA Software (Kanban) allow teams to retrospect their contributions. They can visualize workflows within their projects, prioritize tasks, identify roadblocks, learn from their mistakes, use their learnings to limit or eliminate non-value driving tasks, and continuously improve workflows for better outcomes.
- Learning Environment: Because DevOps aims to deliver innovation while cutting costs, and improving product quality, teams need to drive agility. This is achieved by developing a learning environment so teams can maximize the speed of delivery of their software both internally and externally. Also, by establishing a connected and straightforward process of keeping track of the right quality metrics, DevOps helps teams can drive continuous monitoring and validation of operational quality.
- Focus on Automation: DevOps culture also requires laying down a foundation for automation. Mundane, error-prone everyday tasks can be automated, and delivery goals can be reached faster and more efficiently. Jenkins is one of the most popular DevOps automation tools that allow teams to automate the different stages of your delivery pipeline. With a vast plugin ecosystem of over 1000 plugins, it integrates with almost all other DevOps tools, while allowing you to set up and customize your CI/CD pipeline.
- Transparency: DevOps-focused organizations build reliable services faster only through collaborative team relationships and more transparent workflows. These workflows provide teams the required visibility into projects, allowing them to prioritize efforts, work better together, and focus on driving value faster. Teams get greater exposure across planning, staging, and testing environments, and such transparency leads to innovation and productivity. Technologies and processes help in providing this visibility across all the stakeholders in the organization.
- Eliminate Waste: In any application development process, many activities utilize resources but do not add any value to the end product. Waste management is an integral aspect of DevOps culture, and it is through the right processes that teams can effectively eliminate wastes. These processes include the use of lean practices to shorten feedback cycles, building enterprise agility to respond to changing business needs, and enabling integrated ALM to drive operational delivery excellence.
The notion that DevOps encompasses culture, philosophy, and the right mindset is known to all. However, just having the right culture is not enough. Culture comprises several facets, including collaboration, shared responsibility, customer centricity, continuous improvement, automation, transparency, and waste elimination. Each aspect of culture first needs to be implemented through well-defined and rigorous processes and the right tools. For this, organizations, based on the size of their operations, need to instill discipline and define appropriate methods that can enable agility with efficiency and effectiveness.