DevOps..a quick 1,2,3 to ride it
I understand that in order to achieve agility and operational efficiency is fundamental to implement a DevOps discipline and shift it to a continuous improvement culture. DevOps does not apply for development new functionalities or project, also applies to sustain legacy system and shrink ATTR, improving customer satisfaction.
We believe that DevOps should be implemented in three waves:
1. Left to Right - Move Development to Production: By implementing automations that eliminates hands-off along software cycle from source code commit, passing trough branch merge, deploy generation, deployment, test and promotion to QA and finally production. The result of this wave is to get instant feedback from tests back to developers
2. Right to Left - Move Production to Development: development finds bottlenecks in environment provisioning, where manually tasks such as virtual machine preparations, web servers and applications are commonly executed in a pseudo-automatic fashion (shell scripts). Disruption and real efficiency are achieved where the following tasks are accomplished:
a. Environment provisioning is delegated to developer team trough self-service environment marketplace. Operations teams are shifted to a more design and controller role, and not loner confined to execution.
b. Environments also are provisioned triggered by source code commit. QA environments sole objective is to ensure new releases work properly. Those QA environments are not meant to exist for ever, they must die right after a deploy is tested, however…
3. Two Ways - Implement continuous feedback looping the first two waves. This wave should produce as a result improvements and automation implementation aiming to hand-off zero.
In order to start this journey is fundamental that to address the following topics:
- Identify your value stream along software development cycle in order to measure current efficiency;
- Assemble a dedicated and autonomous team. This team should have a generalist technical profile. They are not meant to do heavy code, but to go deep on automation
- Stablish metrics in order to measure automation improvements
Every time we do something manually, we are losing an opportunity to eliminate bottlenecks