Dev and Ops have to work in harmony to deliver on Agile projects efficiently.
Agile software development intrigued IT operations like nothing else in recent times. Agility adopted by engineering teams demanded swift response from Operations to the changing needs of business stakeholders, to create product differentiation by delivering new features to the market in short cycles continuously. This necessitated major changes in the way operations or Ops released new versions of software and also the way engineering delivered products for deployment.
Conventionally, large enterprises always had separate departments to develop new products, manage numerous applications and deploy part of the IT infrastructure and applications management. This grouping of people with similar skills was for better organization, utilization and management. It worked very well for traditional waterfall projects. But with the growing need for agility in business, it was essential to develop and deploy newer versions of software rapidly. It required teams that could work cohesively, shared same goals and would not be bound by their respective departments.
Development and operations are often perceived to be positioned on either sides of a wall. The Ops team is assumed to be rewarded for keeping the applications stable with an uptime of 99.99%, whereas the Development team is perceived to be responsible for building and delivering new features quickly and thus bringing more revenue to business. Ops teams, which already had a busy roster with demands like keeping the applications up always; upgrading, migrating; maintaining availability and stability of applications; monitoring performance and loads on the system to ensure that it does not crash and so on, now also have to fulfill demands of deploying releases every few weeks. On the other hand, the development team that was only focused on rapidly building software is now expected to also take care of concerns that may become roadblocks in deployment.
Contrasting goals and increased expectations from the teams can build the culture of resistance across these teams. Figure 1 illustrates the traditional setting.
Figure 1: The Current Perspective of Development and Operation Team
Source: Infosys Research
These functional silos and conflict in motivations of two prime constituents of the organization gave rise to the concept of DevOps, a practice that did not originate from the Agile stable. The prime purpose of DevOps is the convergence of development and operations to facilitate business to not only develop but also deliver new features frequently without disrupting existing features. Patrick Debois is credited with coining the term DevOps in 2009 . The concept of DevOps is discussed in detail in this paper. This paper also includes a case study that implemented DevOps and captures the ways adopted to address a critical situation for a client.