DevOps: What Capabilities Do You Need to Succeed?
Traditionally, software development cycles last several months. Businesses define a list of requirements, developers spend some time building a new piece of software, and an operations team roll out the new software.
In a world where business needs to respond to real-time user data, this is simply too slow. The alternative? DevOps – a unified development and operations team. Using Agile principles and sophisticated automation tools, DevOps can create and implement in a much shorter cycle, often producing several new builds each day.
It’s a whole new paradigm for creating and maintaining digital solutions. So what competencies are required to be successful in the DevOps approach?
DevOps is primarily a culture change. If it’s done well, the company will break down silos between various teams; if it’s done badly, DevOps ends up becoming yet another silo.
This transition needs to be managed from the top by people with a background in project management and change management. Their role is to ensure clear, effective communication between all parties and to ensure that everyone is aligned to the new DevOps goals. DevOps leaders also need to be the bridge with non-technical departments such as marketing and product development.
Many DevOps tasks are automated, which makes it possible to build, release and refine in a much shorter space of time. These automation tools are the core infrastructure of the DevOps team, and that infrastructure needs to be managed by people who understand it.
This demand is creating brand new roles such as integration specialists and automation architects. The key skills are an understanding of automation tools, knowledge of cloud-based systems, and a strong understanding of Agile and Lean principles.
In DevOps, the Agile principle of Continuous Integration is pushed to a new level. Developers are no longer working alone on a piece of code for weeks and submitting it when it’s ready. Instead, DevOps will be making changes almost in real-time and responding to operations data as soon as it arrives.
Teamwork and communication are critical for this approach and new collaboration tools may be required. For example, some DevOps teams use tools like ChatOps, where they can discuss next steps in a recorded group chat and then call chat bots to make the required changes.
DevOps is sometimes referred to as DevTestOps, as a reminder of the importance of testing. In the past, this may have been done as a separate step in the release process by a standalone QA team but the pace of DevOps means this is no longer an option.
A DevOps team must have the skills to run automated tests, analyze the results and resolve any issues. They are also responsible for other elements of quality assurance, such as measuring user experience.
5. Continuous improvement
The breakneck speed of DevOps doesn’t imply recklessness towards security or quality. An effective DevOps team is set up to anticipate failures, identify them quickly and resolve before there is any disruption to the user.
The Agile principle of continual improvement means having open and honest conversations among the team about what has gone wrong and working together to ensure that it doesn’t happen again. The team needs the right tools to identify errors – plus a culture of trust and respect to support the struggle for continual improvement.
In part 2 of this series: How to Find the Right People For Your DevOps Team