Leveraging DevOPS

With the growing digital adoption across industries, consumers today seek faster and reliable services.

With ever growing consumer demands, the product releases must be of good quality and must be quite frequent as well. So, businesses need to ensure “stable and on-time” releases. This requirement of frequent stable releases poses a great challenge and need an environment of continuous accelerated development and testing.

Keys to DevOps Success

It is only possible when an enterprise adopts ‘DevOps’.

Gartner defines DevOps as “a change in tech culture, focusing on rapid software service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. It emphasizes people and culture and seeks to improve collaboration between operations and development teams.”

While different people may have a different understanding of DevOps, everyone agrees that DevOps is crucial to the success of modern development teams. Let us look at the benefits that DevOps may bring.

1. Increased Collaboration

DevOps ensures everyone from development to operations is on the same page right from the inception of a new idea. This eliminates any blame game scenario allowing employees to share ideas freely and frequently.

2. Continuous feedback and innovation

DevOps offers a continuous approach from the initial incubation to continuous deployment, testing, and monitoring. With early feedback, teams can push projects at a faster pace. By failing fast and failing often, teams quickly rule out various approaches that are unlikely to deliver results. This failing fast approach encourage teams to try out new things and promotes an innovative approach in enterprise.

3. Reduced development costs

A significant aspect of DevOps is its cost effectiveness. Businesses can save both time and money. With additional savings, enterprises may make use of their funds towards other strategic research and development projects.

It sounds like solution to many problems and may seem simple to be implemented by increasing the collaboration between IT development and operations, but please be warned that getting the desired results from DevOps is not easy especially if not done correctly.

While DevOps utilizes modern technology like automation and advanced tools to accelerate the development process and quicken release cycles.  Many enterprises ignore the fact that it is a cultural change and straight away jump into DevOps with the assumption that it involves primarily tool implementations.

While there are many tool / technologies available in market that may help in DevOps adoption. However, let me reiterate and emphasize again that DevOps is much more than tools and automation. It also requires organisational changes across multiple dimensions, of which tools usage is just one part. Ignoring other aspects of DevOps can be disastrous for the success of DevOps. Based on our learnings, following are some of the recommendations to make it a success.

i). Define Objectives for DevOps

Many organizations start adopting DevOps, by simply identifying the areas where automation is lacking e.g., automated infrastructure provisioning, automated tests, automated deployments etc. Most of them start implementing the tools which address these automation gaps, however, these gaps may or may not be aligned to immediate business goals.

In our opinion, business goals shall explicitly be defined, and DevOps objectives must be aligned to these. Always remember that the outcomes / objective shall be always measurable. Some examples of such objectives as per our experience are as follows:

  • Being able to add a supplier within 7 days
  • Reduce the total cost of ownership of infrastructure by 20%
  • Keep the application responsive and maintain performance even if the load increases
  • Improve the availability of service to 99.999%.

Once the objectives are defined, it needs to be socialized across enterprise and different teams (including cross functional) shall be informed about its importance. This creates a synergy across various teams and lays the foundations of a DevOps success story.

ii). Align Objectives across levels

Defined business objectives for DevOps shall be further broken into key objectives (SLO) to drive the changes in the architecture, process, or people.

Let us understand this by taking an example of business objective “Being Able to add a new supplier within 3 days” and see how it may be broken down to different key objectives across key functions of organisation:

  • Architecture: It shall be able support plug-n-play integrations with suppliers so that development teams can add or remove suppliers without impacting other integrations. This change will have an impact on the current architecture, technology, and infrastructure on which it is deployed and subsequently observed.
  • Process: Being able to release / test / develop the new integration independent of other. This may require change in their existing processes i.e., configuration management, testing or QA functions.
  • People: Engineering teams shall be able to develop the new plug-in in an independent fashion without taking the whole code of other integrations. They may be required to learn new techniques like pair programming, test driven development etc.

iii). Define and create DevOps roadmap

A DevOps success always needs change across different dimensions of Process, People, Infrastructure and Architecture. The changes required across these dimensions shall be determined by the end objectives of DevOps. For example, changes required to enable a release cycle of 3 days is very different from a release cycle of 4 hours.

Organizations should identify gaps across these dimensions and prioritize them based on the business needs and investment requirement. During the journey, the roadmap shall be tracked for what is working and what isn’t and must be adjusted accordingly.

iv). Look out for following Anti-patterns

  • Ignoring the architecture of the application(s) in scope. If the architecture is monolithic, then tools, process and automation will only get you so far.
  • Considering DevOps as being limited to leveraging of tools used for automation.
  • Starting on DevOps journey without business linked objectives.
  • Ignoring the people aspects in terms of skills and aspirations. You might have to acquire certain skills as an organisation.
  • Overlooking the security: Using the DevOps, it becomes possible release software updates more often, but due to the speed of the rollouts, application’s security can sometimes be overlooked. It is critical to have a separate team that ensures security measures are taken care of for each release.
  • Attempting a big bang approach. DevOps is a journey and not a project