ltstudiooo - Fotolia
At its heart, DevOps is a change in culture. It is the result of new and different ways of working that change how devs, ops and others communicate, collaborate and integrate to deliver better software, faster.
DevOps can start with practitioners improving their own work. This bottoms-up approach has shown strong results, and without practitioner buy-in DevOps cannot succeed. However, staff-led, grassroots movements ultimately hit an impasse. An individual contributor or even a team lead simply does not have the sphere of influence to foster change across other teams and departments.
For wide, long-lasting impact, DevOps needs not only ground support from individual contributors, but also top-down ownership from DevOps IT leaders -- up to and including executive level. For example, they'll need to:
Implement new org structures. Traditional org charts do not facilitate DevOps-style teaming. DevOps leaders must implement new, and sometimes radically different, staffing models to drive this new method of collaboration and empower staff. These include Spotify's guild approach to facilitate rapid throughput, and the bossless approach from Valve. Traditional businesses need to consider moving from project teams to product teams, establishing a federated service team, or creating a center of excellence model. There are many models to choose from, but DevOps leaders must be the drivers behind the change for how staffs work together in a DevOps culture.
Change the physical layout. Team interaction and cohesion is fundamentally shaped by the physical work environment. A successful DevOps transformation will require different spaces that bring team members together. Dev and ops teams should ideally be co-located, with a variety of workspaces and floor plans that facilitate agile teaming, paired programming, stand-up meetings, code reviews and casual gatherings. These physical changes will go a long way toward fostering a culture of collaboration.
Provide additional budget. Both empirical research and multiple case studies have shown that DevOps reduces costs and improves revenue. However, DevOps is not free. For example, leaders need to provide budget for teambuilding events to bring your people together, for new tools that support collaborative work, for process training and skills transfer sessions, and maybe even to hire new staff. DevOps leaders must also be prepared to defend this budget too -- the cost benefit of DevOps can be significant, but is not guaranteed and can take multiple iterations to achieve.
Support new processes. With DevOps, the way you deliver applications fundamentally changes. New processes that drive this change include Agile development techniques: NoEstimates and/or release train approaches for resourcing and release planning; automated continuous integration (CI) and continuous delivery (CD) cycles; new ChatOps approaches to collaborate on triage, troubleshooting and remediation; and new 'blameless' approaches to postmortems to find out what went wrong. As an IT leader, you will need to support some or all of these new approaches to application delivery.
Support new tooling. DevOps is primarily about people, but prescriptive approaches like CAMS describe the change not only in terms of culture but also automation, measurement and sharing. Automation will require new tools for configuration management, provisioning, and application release. Measurement means new tools for application insight, real-time analytics, and system monitoring. Sharing includes not just collaboration tools like chat clients and planning systems but also shared services like cloud computing. Of course, you do not need new technology to "do DevOps," but your old technology will almost certainly slow you down.
Manage teams and progress. With a culture of empowerment and prescriptions like "systems thinking," DevOps requires leadership with a "trust but verify" approach. As such, you will need objective and immediate visibility into team dynamics, process flow, feature delivery, backlog management, integration success, build analytics, code compliance, quality assurance, resource availability, feature costing, business priorities, and more. This broad view allows leaders to take accountability despite being more hands-off. It also reflects the "systems thinking" approach of DevOps, which applies as much to leaders as to practitioners.
Use data-driven oversight. IT leaders in DevOps shops still need insight into system metrics, aka speeds and feeds (availability, response, throughput, memory, storage, SLAs, MTTR, etc.). However, DevOps leaders must also manage with other metrics that matter, including cultural metrics like retention, callout volumes, employee satisfaction and absenteeism; process metrics like cycle time, recovery time and delivery speed; quality metrics like QA coverage, tests passed/failed and best/worst code; activity metrics like commit counts, build rates or new releases. Some of the most impactful are business metrics -- like revenue by application (or feature), time-to-market, customer signups, cart fulfillment and even shareholder value.
Provide essential governance. In a new world of empowered developers and bossless teams, practitioners can easily overlook critical security, governance and compliance values. This means IT leaders must pay particular attention to these areas and promote what some call DevSecOps. For example, they must bring in security professionals to actively participate in code reviews; mandate security and compliance testing to ensure code quality; ensure security requirements are prioritized in the backlog; audit and enforcing separation of duties; and track code ownership and access.
DevOps is complex, the list of known good practices is extensive, but every journey is unique. This list is just a starting point. Hopefully, it has provided some positive examples of what and how an IT leader must do to support and enable a successful DevOps transformation.
Learn more about the industry's most popular DevOps tools
If you want to become a DevOps engineer, you'll need to master a variety of DevOps tools. Here are some popular tutorials to get you closer to achieving DevOps mastery:
- A step-by-step Jenkins CI tutorial with examples
- Learn how to install and configure JFrog Artifactory and integrate Artifactory with Jenkins
- Learn how to use the SonarQube Maven plugin to inspect for code quality
- Test your job readiness with these Jenkins and DevOps interview questions
- Some tough, sample GitHub and Git interview questions
- Learn the benefits of continuous integration by working with these popular CI/CD tools