High-performance Teams in DevOps
The secret to DevOps maturity isn’t technology or process, but people. It takes engaged leadership and all-for-one cooperation to achieve the kind of results that lead companies to superior IT performance.
High-performing DevOps teams can recover 168 times faster from failures and have 60 times fewer failures due to changes, according to the 2015 State of DevOps report by Puppet Labs. High-performing teams also release code at significantly increasing velocity as their teams grow in size, approaching three deploys per day per developer, for teams of around 1000 developers. The report concluded that high-performance outcomes depend upon a goal oriented culture, a modular architecture, continuous delivery and effective leadership.
First, let’s define the key traits of a high-performing DevOps team:
- Business Responsiveness: taking a business idea and moving it to implementation within weeks or less.
- Reliability: speed means nothing if it results in a broken or underperforming product. DevOps pros are always seeking out the latest tools and processes to integrate quality at every step of development and production.
- Cross-functional prowess: developers, testers and operations managers should be able to perform some of the tasks of their counterparts and understand how all the roles and processes overlap. Developers should consider security when they write code, while operations people should take into account user needs when deploying the code.
How to grow high-performance capabilities
Engaging leadership on the technology and business side is becoming table stakes for DevOps. Without senior level buy-in and support, which may include creating new incentives and investing in training and tools, DevOps is merely an experiment not a wholesale transformation. Leaders can help by developing a culture which allows for experimentation, autonomy, self-organization and the adoption of Agile methods such as Scrum and Kanban. Hiring a DevOps specialist in either a consulting or full-time role can be invaluable to jumpstart the process and provide an objective lens on change. Consider these additional steps as you move along the DevOps maturity curve:
Find the champions: Conduct an assessment of people within the IT or product engineering organization to identify team members who are curious, open to change, adaptable and excited about helping lead others in best practices. Some companies use personality assessments to assign roles and pinpoint developing leaders.
Create a collaboration strategy: High-performance teams collaborate frequently and effectively. But adopting collaborative workflows takes time, especially in more traditional IT shops. Begin by introducing change that is productive while breaking down silos. Examples include paired programming and paired developer-tester teams where employees work together or in a leader/observer model. This can enable higher levels of productivity, learning and also model the interactive processes required for continuous delivery.
Allow for self-organizing teams: There are many opinions on how to self- organize, but generally, this entails organizing work and selecting strategies with some level of freedom. Teams can manage day-to-day decisions and workflow as a group, but must communicate frequently and take on ownership and commitment to goals and outcomes. Take note, this doesn’t mean teams have no managers or guidance, but simply that they can be self-directed in the pursuit of objectives. Such freedom has been deemed valuable for innovation and performance, by DevOps experts.
Invest in training: It’s fine to have a DIY approach when you’re first getting started on DevOps, but once your company has committed to the philosophy, you’ll need to invest in education. That encompasses tactical skills for continuous delivery, continuous integration, Agile development and testing, collaborative workflows and cloud orchestration and security, to start. Soft skills training around entrepreneurialism, teamwork and organizational development may also be helpful. Gather input as to where individuals would like to grow, instead of having a top-down approach to training.
Create the technology infrastructure for speed and flexibility: Open the door to new automation, change management and monitoring tools, yet provide frameworks to avoid tool sprawl and silos of data. Wherever and whenever possible, move workloads to the public cloud, where the on-demand, dynamic infrastructure is a perfect fit for enabling DevOps processes and goals.
Give more focus to QA: Given the faster pace of DevOps, testing in software development is more important than ever. Adopt test-driven development practices to accelerate quality and speed with a “test as you go” mentality. Automate your test harnesses and test plans and build as much automated test coverage as you can into the process to ensure fast iterations.
Finally, keep it simple. Pilot the creation of a minimally viable product where team members can safely experiment with continuous development and other concepts, beginning a process of continual improvement. Measuring outcomes requires looking beyond standard measures such as critical defects and cycle times to incorporate business friendly KPIs including customer satisfaction and usability.
There is no single path toward developing high-performance teams. Just remember, the heart of DevOps success is people. Learning how to best attract, retain, and motivate top performers is more important than achieving any specific DevOps metric and will serve your company for the long term.
Kris Bliesner is the CTO and co-founder of 2nd Watch.