Digital Transformation and Role of DevOps
Julie O’Brien, SVP of Corporate Marketing
Sachin Chheda, Senior Director of Global Accounts and Industry Marketing
Digital transformation (DX) has triggered a major overhaul in the way organizations think about tried-and-true business models and operationalize day-to-day processes. Yesterday’s products are being replaced with new information- and service-driven offerings, particularly in markets saddled with a high degree of commoditization. In the retail industry, for example, companies are embracing ways to repackage products, innovate in purchasing practices, and add intelligence to buyer recommendations. Thanks to technology such as advanced analytics, machine learning, IoT/advanced sensors and universal connectivity, retailers are now able to target consumers beyond store fronts and even automate ordering based on stock levels and consumer behavior.
With the rise of DX and supporting technologies like IoT, data processing, and visualization, the role of software development has become increasingly important. To quickly deliver new applications and services, IT teams are transitioning to DevOps models that close the gap between development and operations.
What exactly is DevOps? According to Wikipedia, DevOps is a clipped compound of “software development” and “information technology operations.” This combination of changes to IT culture and technology is designed to remove friction between development and operations teams to accelerate the delivery of new capabilities and services. Done correctly, it removes the strict division of responsibility and enables collaboration and automation.
The potential benefits are substantial:
- Democratized access and self-service. Development and test environments can be created ad hoc by developers, testers, and operations, supporting an agile development methodology.
- Rapid iterations and release. Automated testing and release of product span all the way from source code check-in to customer release and use.
- Deploy and fail/fix fast. Automated deployment (and revert) strategies reduce risk while increasing tempo.
- Closed-loop design and testing. Every change is an opportunity to learn and experiment, every gap or mistake is an opportunity to improve testing, instrumentation, and automation. Automated operations allow monitoring systems to trigger healing.
The common ingredients to successfully transitioning to a DevOps model are exec sponsorship, an agile framework and the right tools and infrastructure. Let’s explore each of these briefly, beginning with exec sponsorship.
As with any complex project involving disparate groups with different goals, it is important to garner the support of the appropriate executives and decision makers and communicate a clear vision of the desired end state to the entire team. DevOps is a cultural shift and requires close collaboration across business units, software developers, QA, and IT operations teams. National Medal of Technology and Innovation Laureate W. Edward Demings’ research found that the ‘climate of organization influences an individual’s contribution far more than the individual [themselves]’. This is not easy to change as beliefs and culture are sticky, but maintaining consistency from sponsors to lower levels of the organization, along with clearly and regularly communicating the vision, the need and the reality of change, and the safety in embracing it, will go a long way in helping prepare the organization for DevOps.
At the heart of a successful DevOps model is the Agile software development methodology, which consists of a set of principles that drive evolving product and solutions through collaboration across diverse teams. While there are several variations of the methodology, the values can be summarized as follows:
- Motivated teams that self-organize, communicate, and collaborate
- Close collaboration with customers (e.g., a feedback loop for features and quality)
- Fast responses to changing needs (e.g., ongoing innovation)
- Frequent software delivery (e.g., continuous integration continuous delivery)
- “Working” software as the true measure of success
- Documentation of the development that is ongoing, lightweight, yet effective
DevOps principles are operationalized via an Agile software development framework. Agile Scrum, is the process for a product owner to partner closely with the broader team to identify a payload or backlog of new features, bug fixes, or other requirements for a ‘sprint’ in order to successfully deliver working software. Cross-functional teams ‒ including software developers, IT operations, and others ‒ execute against this backlog in a short sprint (which is typically no more than 30 days). The process is repeated over and over with the product owner re-prioritizing the backlog based on the team and customer needs.
A sprint is comprised of continuous development and integration, continuous testing, continuous delivery, continuous deployment and operations. There is also a continuous feedback loop throughout the lifecycle, across development, testing, staging, and production. New software that is created from these sprints might be deployed to a smaller ‘canary’ set before rolled out to a larger audience, in order to vet out features and performance. Similarly, teams might run a lightweight canary test to quickly vet the processes and code before running more detailed tests.
The Scrum framework also calls for the role of a Scrum Master, who is a team facilitator/enabler. The facilitator might or might not be the same role as a product owner. Clear and frequent communication between team members is essential given the fast-paced nature of development/releases cycles. This is often marked by quick stand-up meetings to connect on daily progress and goals, facilitated by the Scrum Master. This type of interfacing has evolved from a wide range of sources, including manufacturing (automotive), research groups (NASA, US Department of Energy), and more. Other players in the DevOps model include software developers, IT operations teams, and product owners. Their close collaboration is facilitated by the culture and processes discussed earlier.
The final and equally important factors for an organization to successfully deploy DevOps are the tools and infrastructure. In the next part of this two-part blog series, we will explore the tools and infrastructure aiding the shift to a DevOps model.
© 2018 Nutanix, Inc. All rights reserved. Nutanix and the Nutanix logo are registered trademarks or trademarks of Nutanix, Inc. in the United States and other countries. All other brand names mentioned herein are for identification purposes only and may be the trademarks of their respective holder(s).