Abstract
Can a business run at the speed of opportunity? They key is to bridge the gap between development and operations—Dev and Ops, and foster a culture where the two coexist in a state of fluidity—DevOps. But it is easier said than done. Achieving more value from DevOps requires new ideas–and it all starts with looking at the three Cs that define DevOps with a fresh perspective–character, communication, and continuous delivery.
The Rise of a Single Delivery Chain
Organizations believe that quickly responding to market opportunities and user feedback will give them a competitive edge. The presence of game-changers like SMAC (social, mobile, analytics and cloud) is altering the pace of the business. The inflection point enabled by SMAC and engagement models is driving the need to balance the rigidity of traditional systems. This has led to the consolidation and reorientation of both development and operations as a single delivery chain. While each of these is undergoing its own ‘lightening up,’ as seen in CMMI for Agile and ITIL-Lite, the current barrier between development and operations will eventually disappear by the establishment of common processes or a clear handshake, and consistent definition of service tasks.
However, while implementing this handshake for traditional systems, organizations face huge challenges that the business must address. In this paper, we outline the challenges in adopting the DevOps approach and how they can be resolved to achieve continuous delivery and frequent releases.
Adopting DevOps? Don’t Forget the 3 Cs
DevOps is an approach that enables communication, integration, and collaboration between development and operations teams. According to research, DevOps delivers 18% faster time-to-market, 15% more deployments and 19% better application quality and performance. This approach uses both Lean and Agile methodologies to regularly release solutions to end-users based on their feedback.
As a potent catalyst, DevOps expunges the barrier between development and operations through a cultural and professional movement in juxtaposition with the 3 Cs–Character, Communication, and Continuous Delivery.
Disruption is Inevitable, it is Time to Embrace Change
The traditional friction between “development” and “operations” boils down to a few key attributes of character viz. skills, roles, and responsibilities–the so called new-age disruption forces within an organization. Creating a DevOps environment under these circumstances is a huge challenge. It requires assessment and realignment of how people think about their teams, the business, and the customers. Usually, the stigma attached to DevOps comes from the two important elements—Dev and Ops. The two respective teams are either not clear about their new roles and responsibilities or they think that their current role is paramount.
DevOps is all about change. Change requires adaptation, and underlines the need for learning new skills. Whether it is a system admin learning to build new tools, or developers using a model other than the Waterfall model, DevOps firmly places your organization in the “growth zone.” DevOps has shown that finding success and capitalizing on value hinges on making broad cultural changes across the IT department, and creates a situation in which a holistic change is often necessary. Integration becomes the new value network for DevOps disruption.
From Terminology to Tools, Make Sure Everyone is on Board
Fostering open communication channels lays the foundation for a successful DevOps culture. Dev and Ops generate the same outcomes but their approaches are different. These divergent views have led to subtle but important differences in terminology—such as the definition of a “full stack.” The best way out is to thrash out these differences and establish a standard lexicon for IT by opening up the way you communicate via tools and processes. To put this into practice, we need a three-pronged strategy—identify the management (people, money, and resource base), understand the action and the ecosystem processes, and identify the tools that will help in streamlining them. The bottom line is—if you want to succeed, you need to empower the team with the right tools, processes, and technology. Organizations need to automate, perform self-service, standardize development environments, monitor and provide feedback, scale up and scale down and provide security and reliability. When all the areas are covered, we need to ensure that the configuration items across Dev and Ops teams are viewed consistently from a program/project perspective.
Think Small, Think Fast: The Release Approach
Focusing on lead times will help you measure the advantages of continuous delivery. Continuous delivery can be achieved with faster and smaller releases. To achieve minimal lead times, organizations must concentrate on release frequency (embrace smaller releases). Instead of a few big releases, organizations must release features as soon as they are ready. It is necessary to continuously integrate and make sure that the automated tests are not broken by the introduction of new and latest features. Release automation is necessary to push the latest features to the test or the production environments.
When it is Mission Agility, Collaboration is Mission-Critical
DevOps encourages extensive automation and workflow redesign. Organizations can gain a competitive advantage by releasing code and bug fixes quickly (in a more or less continuous delivery cycle) without disrupting the operational environment. Bigger code releases are much more susceptible to risk than smaller releases. Incremental builds where each feature is thoroughly tested during the release helps in risk mitigation.
Regularly releasing changes to end-users helps in gathering user feedback on quality, performance and acceptance early in the process. Critical feedback received early improves the quality of the end product. Each iteration focuses on eliminating problems identified during the software evolution. The time involved in taking a new idea to market is of utmost importance in today’s competitive environment. This agile methodology enables organizations to reduce cycle time and respond quickly in an unpredictable, competitive market with constantly changing consumer preferences. This is made possible as continuous integrations are automated across build, test, release, deployment, and production environment.
Catch 22: The Fine Balance Between Change and Stability
The key to minimizing conflict is recognizing the cultural challenges between the business, Dev, and Ops. DevOps is a response to the disconnect between development activity and operations activity. This disconnects often manifests itself as conflict, friction, and inefficiency. Development tends to be driven by how many new functionalities can be churned out in a given time; therefore change is its incentive.
Cultural challenges between the business, Dev, and Ops. DevOps is a response to the disconnect between development activity and operations activity. This disconnects often manifests itself as conflict, friction, and inefficiency. Development tends to be driven by how many new functionalities can be churned out in a given time; therefore change is its incentive. Operations on the other hand tend to be driven by stability of the status quo; its incentive, therefore, is resisting change. So, to achieve continuous delivery it is important to develop a close, collaborative working relationship between everyone involved in the delivery process.
The Way Forward is Agility at the Heart of the Lifecycle
Businesses embrace DevOps to bolster collaboration and improve customer experience. In a real-time scenario, the development team should focus on build and test, but the operations team should solely focus on achieving Application Release Automation (ARA), Application Performance Monitoring (APM), and Customer Experience Management (CEM). Our focus, however, cuts across both development and operations. In short, we focus on the entire application lifecycle.
DevOps creates continuous flow of work from development to operations by eliminating large batch releases and inefficient activities. It can help uncover previously masked people and process communication issues. Leaving these issues unaddressed can cause frustration and disappointment within the teams—leading to further delays. Organizations need to promptly address end-user feedback to ensure a positive customer experience.
Maintaining a positive and receptive customer experience not only helps in delivering high quality solutions, but also ensures that the customer concerns and feedback are addressed and necessary fixes and updates are provided in a timely manner. DevOps is a way to twine together all the features and deliver a high quality application. Operations makes sure that the services are responsive and satisfy customer needs and Development ensures that new features developed integrate well with the application to generate a positive customer experience.