Michael Giacometti - 19 November 2019
DevOps code is a cultural and collaborative phenomenon. It is not about using tools to get code from point A to point B. It is not about making sure you are using the latest and greatest cloud-based, on-prem, mobile solutions, so code keeps moving through a release pipeline, and stakeholders keep getting notifications to the same effect. It is not about fancy dashboards, either.
I was at a gathering of CIOs recently and came away with one singular message: The technology is impressive, but that's not enough. They want to implement DevOps but do not see it as a technological answer. No one is talking about the human side of DevOps. CIOs are having trouble applying cultural change to use DevOps. Talk about how your technology is going to change the world, and they shut down. Talk about how your technology can help foster the cultural change needed to implement DevOps fully, and you have a captive audience.
Technology is getting so good, and tools supercharge worker productivity to such a degree that it is now a lack of communication and culture, the hallmarks of DevOps, that cause DevOps efforts to fail. Technology implemented without robust processes, efficient teamwork, and clear communication will expose cultural and organizational problems much faster. Technology alone cannot solve these problems.
We can bridge this divide by having conversations about Quality Assurance (QA).
Quality Assurance is the key to transparent processes, excellent communication, and is capable of adapting any tool to support DevOps. QA has been distilled down to shift-right and shift-left, but that is concentrating on the test execution/tactical parts of it. QA is really about ensuring quality across the entire Software Development Life Cycle. Quality Gates clearly defines the go/no-go criteria needed to have code promote from one release stage to the next. Defect triage, determine when and where issues and enhancements go on the backlog, encourage collaboration between teams.
QA is not just about assuring correct and error-free code. It is wrapping your DevOps effort in a cocoon that promotes collaboration, process adherence, and making sure everyone gets a voice in the software release process.
Technology is important but let's not forget to focus on culture.