DevOps- the chances are you might have heard this term numerous times. Even market trend watchers consistently post this as the biggest trendsetter that will alter software development methodologies and will have an overall disruptive impact on enterprise IT. DevOps is clearly a disruption that will get entrenched in 2017 as IT services companies and software developers increasingly use this as the key differentiator to be relevant to business demands and to add value to client side IT organizations. DevOps is all about agility and continues delivery that gives a high degree of modularity to software development.
SETTING THE CONTEXT
Let’s try and understand why DevOps is critical to IT- both to the supply and demand side. Probably a good starting point would be to ponder about a key question: What ails current software development practices and why DevOps is being touted as the panacea? We posed this question to industry experts; this is what they have to say. Pradeep Shilige, Executive Vice President, Digital Systems and Technology, Cognizant says, “DevOps may not be the panacea for all problems and it is certainly an important capability in addressing them effectively. By driving automation across the software delivery lifecycle, DevOps alleviates hand-offs and delivers the ability to quickly respond to feedback on demand. Further, by fostering a collaborative culture and necessitating skills enhancement across IT and operations staff, DevOps also helps build a more robust organization.” Experts also say that the software development world is rapidly moving towards development of next-generation products and services that are mass-personalized and deployed at massive scale. These systems are also typically always on, continuously adapted to changes and connect the physical and digital worlds. At the same time, these systems need to be delivered with shorter development cycles and higher programmer productivity while maintaining the quality of the offering.
In the wake of these new rapidly evolving set of requirements, the question is whether current software development practices can meet the core objectives of delivering experience-driven software with shorter time to market, greater productivity and robust quality. Unfortunately, the answer to the question is ‘NO’.
Reflecting on this thought Abhay Pendse, Associate Vice President, Corporate CTO Leadership Team at Persistent Systems says, “Current strategies (ways, techniques, and methods) in isolation will not work and will not be effective to deliver the next generation of software. Appropriate component strategies across all phases of the Software Development Life Cycle (SDLC) need to be combined in a principled, data-driven, and intelligent manner to form the holistic framework needed to drive next-generation software development.” Agreeing to it, Prashant Vasant Burse- AVP – Senior Delivery Manager, Infosys affirms, “Digital consumers are driving growth across all business segments. These smart customers have high expectations and will switch loyalties if their interactions with digital media do not meet these expectations. The best way to address the increasing velocity, variety and volume of such customer needs is through DevOps. Since, DevOps focuses on faster deployment to production. It helps with increased automation using open source or license tools at every stage of the delivery lifecycle, which includes development,QA, on-demand environment provisioning, production deployment, and gathering newer requirements to make applications more customer-centric. DevOps brings together all these organizations, thereby making the process of software deployment very lean.”
BRIDGING THE DEV & OPS DIVIDE
Traditionally, ‘Dev and Ops’ have never met eye to eye. Give that, the question to be asked here is that if we take a ground zero perspective how difficult is it to bring together people, process, and technologies under one umbrella? Experts agree it’s a challenge that can be combated with a judicious blend of strategy and collaboration across teams. Putting this thought in perspective, Prashant Burse says, “Certainly, Dev and Ops are part of different hierarchal structures within an organization. They both have different visions, missions, and SLA metrics, making it quite difficult to bring together people, processes, and technologies but they have the same goals. Here, standardized processes and the right mindset can drive collaboration between these teams.”
Clearly, the chasm between ‘Dev and Ops’ is a mindset problem that can be bridged by a combination of best practices and until unless both these teams collaborate, DevOps can never succeed. Manoj Karanth, GM, Digital Business, Mindtree quips, “This difficulty arises from determining involved roles and responsibilities. These change as per the project type and customer expectations. But more fundamentally, it is a question of skill. Most of the traditional ‘Ops’ teams do not have an appreciation of programming. Hence, infrastructure automation and release management becomes a challenge at their end.” “On the other hand, most programmers though do not have an understanding of how the code they developed works and scales in the real world. Hence they are unable to appreciate the design required for scalability, redundancy, firewalls, backup etc. Hence, getting the right mix where both these perspectives come together is the challenge. So, we have a situation where the required skill is programming, but with a domain understanding of infrastructure. Cloud computing makes this a little more manageable,” adds Karanth.
Meanwhile, Madhavan Krishnan, Vice President Cloud Solutions, VirtusaPolaris Corporation says, “One of the reasons why it is difficult to bring the ‘Dev and Ops’ teams to work together in order to meet the business objective is because of the way teams were goaled and structured in a form that was good for the past but is not relevant anymore. The development cycles of yesteryears were long and companies had independent ‘Dev and Ops’ teams working in silos because the life cycles of both teams had minimum overlap, if any. And typically in a period of transition, during a hand-over between ‘Dev and Ops’, teams would overlap briefly and there was ample time for knowledge transfer during the transition process, which is typically not the case anymore because the product and development life cycles are shrinking very swiftly.”
AGILE & CONTINUOUS DELIVERY
Experts say that DevOps is about enabling rapid delivery of capabilities to the end consumers, which requires collaboration across the software delivery value stream that includes teams spanning across business, development, QA, and infra and ops. This entails embracing a set of capabilities that deliver speed (faster development and frequent releases), quality (stability & resilience in production) and value. Software tools are an essential part of DevOps and the key to orchestrating these capabilities seamlessly across this software delivery value stream. DevOps adoption entails building a set of capabilities across various functions in the organization in terms of people, processes, and tools. Here, Agile and Continuous Delivery (CD) are two critical components.
Observes Prashant “Agility is a business imperative and is required to respond to ever-changing customer requirements. Organizations that adopt DevOps can benefit from faster responsiveness to changing market conditions, customer sentiment and the demand for high-quality and low-cost solutions. While CD extends continuous integration and promotes consistent, reliable and automated deployments with frequent iterations and fast feedback loops. CD tools provide visibility to operational environments, streamline their workflows and automate a number of builds, release and deployment steps.” Abhilash Purushothaman, Country Director, Solution Sales, India & SAARC Region, CA Technologies says, “DevOps is nothing new, it has in some parts existed always, but not necessarily called DevOps in the past. But with the advent of ‘application economy’, continues delivery and agility has become the key components and that is the crux of DevOps. To achieve DevOps, we need to seamlessly bring people, process, and technologies in a collaborative framework. In the whole DevOps transformation three elements play critical roles – continues development, continues testing and continue release. In sum, all three make up for agile IT delivery.”
While 100% error free code is still a utopia, DevOps can change the scheme of things here in terms of QA, SW integrity, cutting down on lead times from development to test, Beta to production or implementation. To achieve this DevOps allows continuous software delivery and stable operating environments cutting down on the time spent on fixing problems. Enterprises can deploy features every day in a secure environment using DevOps. Reflecting on this K Nageswara Rao, Vice President, India Technology Center, Unisys says, “DevOps is an extension of the Agile movement to include Ops. Agile brings in incremental and faster cycle times in product development and insists on a working product at the end of every cycle. The challenge that remains is matching the delivery frequency with deployment readiness. The Operations (IT) teams are concerned about the stability of their live environments and do not want to compromise for faster but potentially unstable releases. It also requires planning often and more cycle time from operations to deploy. Continuous Integration (CI) and Continuous Delivery (CD), which are part of DevOps, address this challenge.
DEVOPS & THE IT ORGANIZATION
Let’s look at DevOps from and its impact on IT organization. Says Abhay Pendse, “Enterprises are moving to a virtual/ cloud infrastructure (both hybrid and public) and therefore have the ability to incorporate an on-demand and costeffective DevOps solution. DevOps is especially relevant to the digital transformation journeys for large enterprises, which tend to have rigid ‘Dev and Ops’ separations and are accustomed to longer release cycles. Cloud-source your infrastructure; crowd-source your development is a mantra for success in today’s software-driven world for born-in-the-cloud companies and large enterprises alike.” IT organizations have the mandate to align IT with business for tangible profitability and outcomes. So if a business side of the enterprise requires solutions to start a project, IT, unlike in the past cannot go back to the businesses with a long drawn out schedule to deliver the project.
Putting this thought in the backdrop Madhavan Krishnan says, “IT organizations need a quick way of responding to these business needs. As, with the tooling and its ability the advancement of technology (such as cloud), IT organizations are positioned well to make a big contribution towards the growth side of the business for an enterprise.” “The role of a CIO gets amplified here because of the capabilities that the IT organization brings to business by way of learning, standardizing and institutionalizing best practices and managing the technology sprawl within the organization. The enterprise IT is in a very interesting phase, where they can be strategic for a business if they are able to bring in new innovations but if they are slow to respond they face the risk of becoming non-relevant. The need to lead the change on behalf of their organizations,” adds Krishnan. Pradeep Shilige agrees, “IT is one among the many departments in an enterprise such as human resources, finance, marketing, business, security and risk. With DevOps coming into play in IT, all other departments will be affected to varying degrees. In light of automation, HR will have to look at revising the roles and responsibilities of the IT staff. Instead of treating IT as a shared service, business will be more involved with IT by way of quicker feedback. Finance will have to look at funding the integrated collaborative DevOps teams instead of the earlier functional, shared services-based models. With frequent releases, security and risk will have to collaborate even more closely with IT in order to make security and risk into the continuous delivery cycle.”
As Nageswara Rao sums it up, “Adoption of DevOps is definitely on the rise and will continue to rise further in 2017. However, one-size-fits-all approach cannot work, as enterprises become increasingly discerning and the industry matures in use of models like DevOps, Agilebased and non-linear service delivery. While we have already seen the emergence of tools that support CI/CD, the future trend will be a comprehensive CI/CD tool beds evolving as a single stack. There will be increased focus in shifting the culture towards DevOps in large enterprises.”