Monday, January 28, 2013

Can DevOps culture flourish under out sourcing?


DevOps is the culture in which the development teams partner with the operations/IT for the purpose of seamless integration of development cycle through to the implementation and continued operations. Though tools and processes (For example, agile processes show your 'DevOps' intentions) help DevOps, it's the cultural aspect of DevOps that is considered most important than those tools and processes. That cultural aspect makes it difficult and a dampener in many organizations for better adoption of DevOps.

In the ideal world, developers support the IT guys by making provisions for diagnostics, performance, load testing etc. early in the development cycle itself. Operations people support developers by giving quality feedback about users, their behaviours  features the users like most, exceptions etc. in a timely manner. Some automation is a real possibility in this area, but still if the organization hasn't caught up with the DevOps culture, returns from these automations and tools cannot be large.

Some of the DevOps Dampeners

  • Silos within the organization spoiling effective integration between the development and operations
  • Lack of product ownership (to some extent lack of agility)
  • Politics, blame game etc. (Dev throwing it to QA and QA throwing it to Operations and Operations finding nowhere to go)
  • Out sourcing development under Fixed Price contracts

First 3 points are obvious and a systematic overhauling of the organizational culture can only address those issues gradually (there cannot be quick fixes for cultural issues though). But the fourth one is a business decision and it's very difficult to stop because of the cost arbitrage regimes that we are operating.

Out sourcing the development work to an external group, that too under a fixed price contract would be a big setback for the DevOps culture. In a fixed price service environment  the service provider earns their margins by efficiently utilizing the resources and giving the bear minimum as defined by the statement of work (SOW). Under these conditions, it's very difficult to expect the DevOps culture to flourish. Support to the operations team is governed by the warranty clauses and subsequent AMCs (Annual Maintenance Contracts) and not by team spirit and ownership

It's very difficult to encourage the DevOps culture under the contractual culture; that's why the agile proponents preferred customer collaboration over signed contracts. So the question is if it's mandatory for the DevOps to die under the out sourcing contractual environments?

I am a born optimist and I still have some hopes.

  • Customers will have to evaluate the service provider and establish trust with them through initial pilots.
  • Once that trust is established, they need to treat the out sourced development team as their 'own virtual' team.
  • Since the trust is established, the customer should focus on collaboration over the signed FP contracts.
  • Constant traveling of Dev team members to customer premises and customer operations staff to the development houses as CBMs
  • Processes and tools must be used to bring about the trust
  • There has to be a separate SLAs between Dev and Ops but not in the form of signed contracts but mainly as team norms