In series of posts at Agile Gnostic, I explained about the four facets to agility. These four facets of Agile are…
What I observed is that all these four facets are applicable to DevOps as well. This post introspects these facets from DevOps angle.
But before we move to that, we understand that still there are a lot of ambiguities, confusion around DevOps. It’s meaning and interpretation changes among different people and organizations in the software industry. Even though there are different views and perspectives to DevOps, I am sure all of us will agree to the following common concepts…
Let’s have some common understanding on DevOps…
DevOps bridges the gaps between Development, Testing and Operations support. With DevOps we are increasing the ability to Systems Administration, Operational Supports through Lean Agile approach.
DevOps brings and needs cultural and mindsets changes in organizations from Senior Executives to Operations Staffs. Dev and Ops team should collaborate throughout the software development life-cycle, in order to create business values with common goals which are aligned with organization’s strategies.
The core focus of DevOps is the speed and quality of delivering software products and features to market. Which give organizations opportunities to gain competitive advantages through early moves in order to satisfy end-users need.
Marrying Agile and DevOps streamline and optimize the entire software delivery pipeline. Though many will argue Agile does most of the intended optimization, but DevOps helps in optimizing the pre-production and post-production scenario; thereby completing the entire value delivery chain.
It’s essential for any organization to establish their meaning and applicability of DevOps in their business scenario and build consensus among their employees to have common understanding and meaning.
So, how four facets are applicable to DevOps?
Organization’s DevOps platform and capability broadly depend on the people, processes and technologies involved. So whatever we discussed as core components to agility are applicable to DevOps without any changes.
Values and Principles – As described in Agile Manifesto; Values and Principles are the core aspects to any Agile methods and practices; these are equally applicable to DevOps. It extends these values and principles from development to encompass systems and operations as well. That is why DevOps can be thought of the extension to Lean and Agile (rather should be considered as next generation to Agile), which fills the gap that couldn’t be addressed by any Agile methods or frameworks.
Culture and Mindset – The way Agile need organizations cultural and mindset changes, DevOps also need to expand the cultural and mindset change among the systems and operations team. DevOps cultural movement is rooted to people. Organizations can not effectively utilize even the most efficient processes and tools without people collaboration and support. The operations team need to become part of the development team from the beginning of the project and similarly, developers & testers also need to collaborate to production deployment and support. Teams operational silos and management barriers across the departments and functions need to be broken. For the successful adoption and transition to DevOps, organization need to create a favorable culture in order to change people’s thinking, allow them to move out of their comfort zones, so as to accept the changes.
Methods & Practices – Agile methods and practices help to achieve the agility with a disciplined collaborative approach. DevOps need continuation and expansion of Agile methods and practices being followed to the systems and operations teams in order to achieve infrastructure provisioning and automation, continuous monitoring and support applications in production environment. DevOps extends the organization’s entire release chain through continuous delivery, with collaboration and communication among Dev, QA, and Ops for continuous development, continuous integration, continuous testing, continuous release, and continuous deployment. Even the continuous monitoring helps to determine service or application availability, failure causes in order to proactively anticipate and apply learning through continuous improvement.
Tools & Technologies – Agile practices can be performed with effective use of tools and technologies for Continuous Integration & Build, Continuous Release & Deployment, Continuous Testing through effective automation. DevOps also need effective application and investment in tools and technologies for Automated Environment Provisioning, Continuous Monitoring, Fault Remediation etc. Organizations can easily build and support multiple business critical applications maintaining quality and scaling up-time and abilities with the effective use of technologies without dependencies to people originally involved. Tools and Technologies enable people to focus on high-value creative work while delegating routine, repeatable and predictable tasks to automation.
The Agile and DevOps marry well and together it’s the combination to the organization’s success. Many successful organizations have already implemented Agile DevOps giving equal attention to all these four facets and have realized the business benefits through agility across the software delivery pipeline, speed of application delivery, increased application usability, infrastructure stability, and end-users satisfaction. Near future will witness Agile DevOps movement expanding to large no. of organizations, without which there would be the struggle to survive the dynamic market competition.