DevOps: Blah, Blah, Blah...
If you ask 10 people what is DevOps I am sure you get at least 10 different responses. Some would say it is culture change in the organization; some would say it is more collaboration and trust; some would say it is about process automation or automation in general; some would say it is about new tools; some say it is increased quality, speed and innovation. The list goes on.... If you are a senior manager in a organization and are given the task to start DevOps do you think all the above definitions provide justification to embark on that journey? Do you think he would get the funding for the initiative? what is he interested to sell this to his management? what can we quantify for him to justify?
Couple of things that would come to mind is: what kind of productivity gains can be achieved by DevOps or what costs can be reduced by DevOps or how revenues can be increased by DevOps? Let us talk in this blog productivity gains due to DevOps.
1. Automation: The core piece of the DevOps transformation is automation. You would agree without high automation the unicorns of DevOps would not be able to achieve those 100's or 1000's of releases in a day. The removal of manual tasks reduces risk, reduces rework and improves productivity. Testers do not need to waste cycles doing manual testing as all testing is automated. They save ton of execution times. The increased automation in build and release processes saves ton of developer time. On a average conservatively 10-15% of productivity gains can be achieved in QA and Dev cycles with DevOps.
2. Reduced wait time increases productivity: Developers and QA spend ton of time waiting for environments to be ready for them to test and validate their code. Environment provisioning is automated as part of DevOps transformation and that eliminates the wait times for the Dev and QA community and improves their productivity. The developers wastage saved is conservatively around 5-10% due to environment delays/issues.
3. Trust and culture change improves productivity: DevOps addresses the trust and culture issue as center piece of the organization change. With good collaboration and communication between the teams the certification process and approvals would become seamless and significantly improve productivity. It takes weeks and months for certification of a release and those cycles can be reduced or eliminated.
4. Environment standardization improves productivity: DevOps recommends the Dev, QA, Staging or Prod environments to be created identical. The standardization of environments lets the developers to develop their code once and deploy anywhere possible. The clean interfaces and separation of environment configurations from code are some of the issues addressed in DevOps maturity assessment. The developers do not need to waste cycles fixing issues per environment each time they try to release some code. This improves productivity around 5%.
5. Fail Fast, Fail Early. Shift Left improves productivity: DevOps preaches fail fast or fail early or move all testing to the left. This enables problems to be detected early and fixed early so less cycles are spend trying to debug and fix them later.
6. Proactive application performance monitoring: Monitoring the health of the applications and fixing them early improves productivity. The problem is found early and cycles for debugging, trouble shooting and log analysis would be saved. we are looking at saving ton of time in outages. Every major enterprise on the average has at least 1 or 2 major outages per year. The amount of time spent during the recovery and later on root cause analysis and fixes can be avoided.
Great points Venky regarding the productivity gains and things to consider when embarking on a DevOps journey. But reality is that no one can tell me there are 2 or more startups, companies or enterprise customers that are implementing DevOps in the exact same way. Because all these customers have different end goal results they want to obtain when implementing DevOps in their environments. When companies understand that the DevOps cultural movement is a journey of continuous improvement and they plateau reaching their end goal results sustainably, will the point they'll realize they've implemented DevOps successfully for their organization.