DevOps and Agile complement one another to deploy working functionality into production quicker. This article focuses on a subset of DevOps philosophy in the context of Agile development and highlights the key concerns for DevOps and Agile to be for accelerated delivery.
In an IT organization, the operations team (Ops) provides the direct interface between IT and the business/end user. Often, ops is that the first purpose of contact for the end-user community. An Ops organization would typically include the group that takes over the finished “deployables” from the development (Dev) team and puts them into production, similarlybecause the team that gives “Level-1” support to the business.
The Ops team has got to be efficient and knowledgeable so that they will give quality service to the business — efficient from the standpoint of releasing the finished executables to production quickly, and knowledgeable in terms of being able to know user queries and supply the right response.
The requirement for DevOps
Usually, when the Dev team creates the answer, the functional needs are given full attention however deploying and support needs aren’t comprehensive. This results in surprises throughout application deploying, production support, and disaster recovery. If such instances repeat, business perceives IT as less responsive and unpredictable.
In an Agile scenario, the development team produces working functionality at the end of each sprint. However, the finished functionality would have to wait till the release date arrives. Even on the release date, if the ops team isn’t prepared for integration and deployment or business isn’t able to go endure the new functionality, there’ll be release delays. Shorter time to market — a key advantage of Agile — isn’t totally realized.
This scenario is illustrated below;DevOps may be a model that’s being adopted by several IT organizations to handle the situations described on top of.
DevOps: A perspective
DevOps may be a philosophy under that the business teams, development teams, and the operations organization collaborate on a continuous basis to create sure that IT solutions are available to business on time which they run without disruption. It calls for automation, collaboration, cultural change, and an organizational structure that’s less complex and is easy to navigate. It addresses the individuals, process, and tools, similarly as the technology dimensions required to secure this collaboration and sync up the different stakeholders to move functionality to production quicker.
Agile and DevOps
DevOps allows realization of the advantages of quicker delivery of practicality achieved through Agile. The subsequent sections describe the key concerns for this enablement:
Continuous involvement of the Ops team: A basic demand of DevOps is that the Ops team is continuously engaged with the event team throughout the life cycle of answer development. Ops should participate right from the visioning stage to know the business vision, the epics, and therefore the release time lines. they must also contribute to determining the solution’s technical and schedule feasibility.
From the visioning stage through the development stage, the Ops team ought to give the necessary inputs to the development team so as for them to build and validate the Ops-related needs. An illustrative model of involvement and a few examples of the Ops inputs are shown below.
Product owner: The product owner (PO) is that the face of the business for the event team. The PO has a vision for the product and encompasses a complete insight into the functional needs that must be met. However, if the non-functional requirements (NFRs) aren’t well understood and articulated by the PO, the event team won’t be able to take them into consideration while creating the architecture and building the final solution.
The IT team and business leadership ought to equip the PO with the basic appreciation of NFRs, together with related to technical aspects such as the following:
- Deployment and support platforms
- Their availability and limitations
- Dependency on marketer stakeholders on infrastructure maintenance
- Third-party interfaces/applications required for the ultimate solutions
The PO isn’t expected to be an skilled in these areas however ought to be able to foresee such requirements and communicate these to the suitable stakeholders in IT and therefore the business.
Typically a product backlog focuses on epics and stories concerning the practical needs. The PO and therefore the Dev team are well trained to brainstorm, break down epics, and document the functional requirements. However, usually the NFRs aren’t well specified in the backlog. Additionally to the functional needs, the backlog should describe things such as the following:
- Performance requirements
- Tech requirements regarding deploying and support
- Requirements to develop the guidelines for rapid rollback and roll forward
- Security/firewall requirements
Ops representation in the team
The Agile development team is cross-functional and self-organizing. should this team then include an Ops person too? perhaps — this relies on however cross-skilled the team members are. Generally in a very start-up IT organization, a number of the developers or testers would even be chargeable for deploying and Level-3 (bug fixing) support. In such cases the necessities related to deployment and support would be discussed in planning and review meetings.
However, in large organizations, operations would want an over-sized team dedicated to require over completed code from multiple Dev teams and deploy them. In such cases, job rotation may be a helpful proposition. That is, a number of the developers may play the Ops role sure enough amount of your time, and a few of the Ops team members with the correct aptitude could be created part of the Dev team for a certain period of your time. This manner the Ops aspect would be represented during the development cycle.
Definition of Done
Another key lever to involve Ops within the development cycle is to weave in Ops-related aspects within the Definition of Done. together with the standard coding, testing, and documentation elements, validation of the code within the deployment platform (e.g., a mock production box), specific support instructions as a part of the documentation, and a dry run of those instructions should even be included within the Definition of Done. Here again the inputs from the Ops team are crucial.
Sprint planning and daily stand-up
Sprint backlog planning and daily stand-ups should pay attention to the Ops needs whereas prioritizing backlog things and discussing progress. The sprint backlog should include specific line things related to securing the necessary tech platforms for mock deployment and alternative such coordination activities. it’s a good plan to include the Ops team throughout sprint planning and in selected daily stand-ups wherever the team would discuss Ops aspects. Any dependency on infrastructure providers and system integrators should be considered at this stage using inputs from the Ops team.
When the Ops team is continuously involved within the development cycle,it goes without saying that they must be a part of the sprint review similarly. The Dev team ought to demonstrate the Ops-related options of the solution. Clearly, all sprint reviews might not include Ops-related features. However, if the Ops team is part of the demos, they have a chance to see what’s coming up and provide inputs for the next sprints to improve the product and include Ops needs similarly. Here again, if one or a lot of of the Dev team members represent Ops, it’s easy to get this alignment. If Ops may be a separate team, the Dev team has to make sure to urge the Ops team for product demos.
Scrum of scrums
When multiple scrum teams work on a solution, the integration of the output of every team has got to be carefully planned and dead. Every scrum team ought to take into consideration the Ops needs and build features in alignment with the necessities. The product owners should have a read of the ultimate product, however it’ll be developed through multiple scrum teams, and wherever and the way it’ll be deployed. They must involve the ops teams to produce specific inputs for every scrum team. At scrum of scrum events, the POs should move and validate that the scrum teams after all include these in their plans and demos.
DevOps and Agile complement one another well and help the business and release teams arrange the annual release calendar. With continuous engagement and collaboration with the event team, the Ops team gets to understand that functionality are going to be coming out when. There upon insight, and using the sprint completion pattern,the Dev and Ops teams should be able to predict with reasonable accuracy the potential release dates. Eventually they must attempt to align the discharge schedule with the sprint plans. And once this alignment happens, the support team would be able to move completed functionality to production quicker and at shorter intervals — and a key benefit of Agile is realized!
To measure how DevOps would facilitate faster releases, many leading and lagging indicators such as the following may be used. Industry statistics demonstrate that organizations using DevOps and Agile are able to make multiple releases to production in a very single day.
- Release date adherence percentage
- Percentage increase within the number of releases
- Time taken for release to production
- Defects due to platform/support requirements
- Percentage of NFRs met
When Agile and DevOps come together, the IT organization will see tangible outcomes. This article has focused on a very specific Agile sprint view to implement DevOps. However, DevOps is way larger and involves multiple dimensions including business, IT, and vendor stakeholders.