With increasing pressure from business to deliver more applications faster, many companies are now recognizing that operations is a bottleneck. "What's the point of agile development if the output of an iteration makes it only as far as a 'test' or 'staging' environment," said a manager we spoke with. DevOps is the extension of Agile principles to the entire delivery pipeline. While you might think that integrating dev and ops would be straightforward, in reality implementing DevOps involves spanning different silos, culture, philosophies, mindsets, and tool sets. But if you can overcome these natural barriers, the rewards are great.
There is no common set of practices, descriptions, or shared meaning about DevOps. We define it as:
A set of practices, tools, and policies based on Agile principles which brings infrastructure setup and awareness earlier into the development cycle and establishes consistent, reliable, and repeatable automated deployments.
Developers and operations specialists work together to specify configuration standards in the development environment and these continue to be used in the production environment, thereby removing a significant source of error and eliminating considerable elapsed time. Similarly, developers and operations staff work with common tool sets and language to achieve common metrics, preventing miscommunication, and creating a culture of collaboration and cooperation. The result is a wide range of benefits such as, higher quality software delivered faster and with better compliance, rapid resolution of problems, reduced risk because each release contains fewer changes, and improved efficiency through automating repeatable tasks. In turn these lead to more resilient systems and operations and improved customer experience and satisfaction.
There is general recognition among IT leaders that DevOps is the right way to improve IT delivery and resiliency, but it also has significant implications for the people, processes, and tools involved. Challenges include:
Organizational structures. DevOps requires cross-functional teams with a "full stack" understanding of code, systems administration, and infrastructure that are not the norm today. Siloed organization structures with walls between the development and operations groups can inhibit collaboration.
Lack of management support. "To make DevOps work we need management to support this with vision, clear expectations, proper tools and software, integration with existing processes and the legacy environment, mindset changes, and general awareness and communication of what is involved," said a manager.
Organizational constraints. Architecture, compliance, security, quality assurance and current legacy environments can each inhibit what can be done using DevOps. For example, security can be concerned about production code that is in constant change. In operations, ITIL and change management practices can be in direct contradiction with DevOps principles.
Lack of budgets. Tight budgets and lack of time for training can leave people lacking skills or even understanding of the goals of DevOps. Pressures to keep staff lean are particularly strong in Operations and mean that it is difficult to get staff from this group to participate in DevOps projects.
Tools. Automating configuration and the transitions involved in moving from development to testing to production environments is a completely new way of working – for both development teams and operations specialists – and involves several sets of new tools for teams to utilize outputs from one as inputs into others in a pipeline fashion.
Collaboration difficulties. Operations and development have different mindsets, speak in different languages, and use different tools and metrics, leading to misunderstanding, errors, and competing agendas.
The need to integrate service providers. Where service providers deliver some parts of IT functionality organizations must verify they are able to implement DevOps tools and concepts.
Lack of skills. Operations professionals must learn to use a wide variety of new tools, code-like languages, processes, project methods, and operational practices. IT leaders must also develop new skills to overlay the right amount of governance and decision-making on DevOps teams.
Inadequate fundamentals. Several sets of standards must be put in place, including configuration, data, and integration standards. Complexity in each of these areas works against what can be done with DevOps and inhibits the pace of automation.
DevOps is a huge transformative challenge for IT organizations. Although it complements Agile development and the value proposition is compelling, implementing it successfully is complex. We recommend beginning with the following steps:
Communicate and consult. Define what DevOps means for your organization and then communicate the vision, goals, and plan to every area of IT from the top down. "Everyone needs to understand the benefit and why processes and structures need to change," said a manager. Then, involve both Dev and Ops staffs in designing any changes. This can also identify existing obstacles or constraints that need to be removed.
Take incremental steps. Full DevOps implementation may take some time, but organizations should "move the ball forward" towards it with pilot projects and involving operations more in development.
Develop cross-functional teams. Eliminate operations "towers" and centralize them to promote more cohesion within operations and enable an operations specialist to represent the operations function on a development team.
Establish foundational elements. Choose tools and standards that work well together. The full toolchain doesn't need to be implemented at once. Focus on using automation to fill gaps and address pain points that constrain delivery. Align Dev and Ops staff for delivery by measuring them in the same way and adapting current metrics to assess joint success in achieving business enablement, improving agility, and correcting problems.
Allocate Time and Money. If necessary, hire experienced staff or bring in consultants to lead the first few projects and transfer their knowledge to others.
DevOps will take hold at varied rates. Expect to see different levels of maturity as these concepts are introduced. A successful implementation involves tackling some fundamental assumptions and breaking down the structural, procedural, and cultural walls that have traditionally divided development and operations.
Although it is tempting to wait until DevOps is better defined, the risk of doing nothing is high. With IT functionality and services changing at an exponential rate, managers must balance the challenges of change with the risk of getting blindsided and disintermediated by new cloud-based service providers that can deliver faster, better, and cheaper, than IT functions can do with their traditional methods.
Heather Smith and James McKeen are the authors of the new book Driving IT Innovation.
Smith has been named the most-published researcher on IT management issues in two studies (2006, 2009). A senior research associate with Smith School of Business at Queen’s University in Kingston, Ontario, she is the author of eight books, the most recent being IT Strategy and Innovation. She is also a senior research associate with the American Society for Information Management’s Advanced Practices Council. A former senior IT manager, she is co-director of the IT Management Forum and the CIO Brief, which facilitate interorganizational learning among senior IT executives. She consults and collaborates with organizations worldwide.
McKeen is Professor Emeritus at the Smith School of Business at Queen’s University and Senior Vice President and Chief Technology Officer at Empire Life Insurance in Kingston, Ontario. He has worked in the IT field for many years as a practitioner, researcher, and consultant. In 2011, he was named the “IT Educator of the Year” by ComputerWorld Canada. He has taught at universities in Canada, New Zealand, United Kingdom, France, Germany, Ukraine, and the United States. His research is widely published in a number of leading journals, and he is the coauthor (with Heather Smith) of eight books on IT strategy and management. Their 2015 book IT Strategy: Issues and Practices was the best-selling IT Strategy textbook in the US.