DevOps can be summarized as Co-ordination wherein all the stakeholders of a software development team, viz Developer, Tester along with Operations collaborate and coordinate so as to give the best result. This will also require the team to keep on improving themselves by regular retrospectives and finally automation which is one of the necessity to practice DevOps.
Continuous Improvement in DevOps can be represented as below:
Various steps in the entire process are as below.
- Discover Bottleneck / Improvement Areas
- Fix the discovered bottlenecks
- Automate the fix
- Integrate the automated fix with the entire DevOps workflow
- Communicate with the team
Discover Bottleneck / Improvement Areas
Bottlenecks are the real reasons which causes hindrances for the team to achieve the desired results. Hence the first step is identify these bottlenecks or the areas which need improvement. The areas which needs to be worked upon to achieve DevOps Goals. Some example of bottlenecks which are faced by the teams are
- Inconsistencies in the environment setup
- Too much manual interventions
- Maturity of the team w.r.t to any of the areas which causes delays or which causes the flow to stop
- There could be other similar areas
The primary aim is thus to keep an eye and identify similar or new bottlenecks. Once we know what are the bottlenecks we can try fixing the same.
Fix the discovered bottlenecks
Once the bottlenecks have been identified, its time to fix and automate the things wherever necessary.
- “environment” can act as one of the bottleneck -> set the environment right before the project commences.
- Too much Manual intervention -> If there are process steps which are repeated in every cycle we need to find a way to automate the same
- Maturity of the team -> If a team has been practicing on waterfall model, it would be a difficult for them to step in the shoes of an DevOps project. Proper mentoring coaching / training will help the team increase their maturity levels
Automate the Fix
The next step in the Continuous Improvement cycle would be automation. The fix should be sustainable. If it is one time fix automation may not be necessary. If the fix is for a repeated task or a problem automation will help a lot. E.g. Testing. In case testing had become a bottleneck due to increased workload of regression. If testing is performed manually it would be impossible or it’s highly unlikely to implement continuous integration and continuous delivery. Test automation will be a big boost in this case.
Integrate the automated fix with the entire DevOps workflow
The steps mentioned in the continuous improvement model, viz, Discovering the bottlenecks, Fixing the discovered areas and automation needs to be integrated in the entire DevOps workflow so that we can achieve the best results. The DevOps life cycle is the source where the bottleneck was identified, we need to get the fix back in the cycle.
Communicate with the team
The last section in the continuous improvement model is communication and co ordination with the team, after all DevOps is just not able tools, it’s more about working in a collaborative way.
For experiencing the entire DevOps life cycle practically please enrol for CP-DOF program. It talks about feedback loops, continuous improvement and takes you through an end to end DevOps lifecycle practically.
Find out more about CP-DOF at: http://cpdof.devopsppalliance.org/
- Presentation by Ojasvi Jagtap at #doppa17 https://www.slideshare.net/ATASlides/devops-architecture-design
- DevOps Bottlenecks : https://www.forbes.com/sites/mikekavis/2014/12/18/11-common-devops-bottlenecks/#6f77dd727737
- Continuous Improvement and DevOps Lifecycle Image courtesy : http://devopsppalliance.org/