The many benefits of Agile methodology in DevOps framework
DevOps is more than just automating the deployment pipeline. In the words of John Allspaw, DevOps is about “Ops who think like developers. Developers who think like ops.”
DevOps is a term used to refer to a set of practices that emphasize collaboration and communication between the Development and IT Operations teams (i.e., the infrastructure teams) while automating software delivery and infrastructure changes. DevOps aims at establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably. In the DevOps community, those with Agile experience acknowledge that scrum is a useful framework for tracking planned work. After all, much work in operations can be planned: releasing a big system change, moving between data centers, or performing system upgrades. But much of the work of operations is unplanned: performance spikes, system outages, and compromised security. These events demand an immediate response. There’s no time to wait for the items to be prioritized in a backlog or for the next sprint planning session, and that’s where Agile and DevOps can help.
Agile and DevOps together help organizations change the way applications are delivered by adopting a continuous delivery model, which brings increased customer satisfaction. Agile focuses on the development process and related improvements and DevOps complements infrastructure automation. The different emphases are summarized in two acronyms: INVEST and CALMS. Agile stresses Independent, Negotiable, Valuable, Estimable, Small, Testable characteristics—INVEST—while DevOps stresses broader aspects: Culture, Automation, Lean, Measurement, Sharing (CALMS). Agile Sprints, when combined with DevOps principles and tasks, enable seamless delivery of working software to the Ops team.
To reap the benefits of Agile, the Ops team must be continuously engaged with the development team throughout the solution development life cycle. Ops should participate right from the visioning stage to understand the business vision, the epics, and the release timelines.
- Ensure product owners are aware of the end solution deployment environment and platforms and any constraints or restrictions. Consider non-functional requirements (NFRs) as part of the product development cycle.
- Include key performance requirements, tech stories, roll forward and roll back processes, and specific configuration aspects in product backlog.
- Have a representative from Ops or someone who could eventually become part of the Ops team on the scrum team. This way, the teams are better equipped to understand the product and enable seamless support when the product or release is ready for rollout.
- For long-running projects following Agile, encourage job rotation, enabling Ops members to be part of the Scrum teams to gain knowledge about the product and transfer the knowledge to the larger Ops team.
- Mark non-functional requirements (NFRs) to be considered during Sprint planning (key features) and any specific tasks related to environment Configuration / Deployment for Ops documentation.
- Define Done to include aspects related to testing in production-like environments so that the test data used during development aligns with the live scenarios.
- While developing a product for highly distributed and heterogeneous application architectures, carefully consider both the history and capacity of on-premises systems and the capabilities of partner services.
- Have an Ops representative at Scrum Planning and Stand-up meetings to share inputs on applicable Ops aspects for the Stories taken for the Sprint.
- Use the Sprint review to assist and coordinate between team members and ensure that any impediments are discussed and resolved so the team can sustain velocity.
- Adhere to DevOps lifecycle through Infrastructure Automation, Configuration Management, Deployment Automation, Infrastructure Monitoring, Log Management, Application, and Performance Management.
- Focus on the “One Team” principle and secure support from senior management, which is vital to creating a “One Team” culture and to enable continuous delivery.
- Don’t ignore Security, Audit, and Compliance, or regulatory requirements while adopting Agile DevOps.
- Don’t delay deploying good collaboration tools. These are a must for the success of Agile DevOps.
- Expect immediate change. Agile DevOps needs mind shift to adopt a new way of working which could take little more time to stabilize.
- Don’t get hung up on following one particular path to Agile in DevOps – there’s just what works for your organization. Very successful Agile DevOps initiatives have been originated from development teams and from ops teams, top down and bottom up.