Shift Left and Put Quality First
When we made the switch to agile, it was based on the notion that we would be able to deliver products to the market faster and more efficiently. After a year and a half, we still required an integration and hardening phase to get code into production. It didn’t feel very different from waterfall. Why couldn’t we realize the promised benefits when we made the switch to agile?
It was because we didn’t focus on the technical enablers that are needed. Adopting agile is just one part of the equation. We found three other core factors:
DevOps: In order to deliver working code every sprint, we needed to be able to have integrated code early and often. We also needed to have enough environments to run our automated tests. We created a team, dedicated to supporting the feature teams, whose responsibilities included version control, continuous integration and continuous delivery tools, automation framework, and environment management. By having these capabilities, it ensured that we have regular automated builds and deployments that run our unit and acceptance tests throughout the sprint.
Service virtualization: With complex enterprise platforms, we were dependent on other teams building APIs. In order for our feature teams to be able to ensure that their code is working, we needed to have virtualized services that mimic the true services. This allowed us to test without the services and, once available, switch to the real ones and get immediate results.
Acceptance test-driven development: With continuous integration, continuous delivery, virtualized services, and enough nonproduction environments, we still required a prolonged hardening phase. By implementing acceptance test-driven development, we streamlined our scenarios by writing our acceptance tests in Gherkin. We also automated prior to development and developed just to make the tests pass. Those tests became part of the build pipeline, and validation occurred every day.
By having these capabilities in place, we have shifted left and put quality first. We could finally deliver early and often with high quality.
Adam Auerbach is presenting the session Putting Quality in the Driver’s Seat with DevOps and ATDD at Agile Development Conference East in Orlando, FL, November 9–14, 2014.