In this guest post, Agile test experts, Lisa Crispin and Janet Gregory, share their views on DevOps and Software Quality
Close to a decade ago, the DevOps movement grew out of agile development. It was defined as the intersection of “Dev”, “Ops”, and “QA”. (Source: Wikipedia)
Around this same time, the term “continuous delivery” (CD) was popularized by the seminal book by Jez Humble and David Farley. The principles of continuous delivery, as explained in their book, reflect agile principles and the ideas in our own book Agile Testing: A Practical Guide for Testers and the Whole Team, which is referenced in Continuous Delivery:
- Build quality in
- Work in small batches
- Computers perform repetitive tasks, people solve problems
- Relentlessly pursue continuous improvement
- Everyone is responsible
Whole Team Responsibility for Quality
DevOps is congruent with the whole team approach to agile testing that we teach in our books and courses. Operations staff, historically responsible for making sure the production site is functioning properly, may need to learn to code – because much of modern infrastructure is in the “cloud” and configuring it requires writing code.
Team members, that is to say, everyone involved in delivering software to customers, including testers, need to learn to manage operations – configuring continuous integration (CI) and delivery pipelines, as well as monitoring production use of the product. “Infrastructure as code”, like all production code, requires testing so that we can have confidence in it.
Testing begins as soon as we have feature ideas. These can come from the business or the delivery team. We testers start asking questions right away. “Why would we do this feature? How will we test it?” We help our team focus on value to the business and our customers.
Our CI and CD should include automated test suites. We ask ourselves – what should we learn from each test suite? What should happen when tests fail? What other testing activities need to be included in the pipeline, even if they might be asynchronous – exploratory testing, accessibility testing, security testing, performance testing, etc.
When we have answers to these questions, we communicate them to the business stakeholders. They’re responsible for deciding what should be delivered to customers. They need to be aware of all the risks.
Circles for Everyone
In the chapter on DevOps from our book, More Agile Testing: Learning Journeys for the Whole Team, we created our own Venn diagram that reflects our view of DevOps. It includes the business stakeholders because, without them, we don’t have a product to test.
In this context, “Dev” refers to programmers, the people who write production code. We think of everyone involved in delivering a software product, including testers, designers, operations people and more, as “developers”. However, since so many people equate “developer” to “programmer”, we called testers and testing out explicitly in our diagram. The intersection is of the entire software team, including the people who do testing, who write code, who configure infrastructure, and who make business decisions.
We also recognize that we may need UX designers, database experts or anyone else who can help us successfully deliver value to our customers in a timely manner. We could add more circles to our diagram!
Testing is the heart of DevOps. We hear terms today like “continuous testing” that reflect this. We also hear terms like “shift left” that go against the idea that software development is a continuous loop. We learn from asking questions, we learn from monitoring production use, and we deliver valuable features accordingly.
We like having the “Test” and “Biz” circles in our DevOps Venn diagram. Whichever visualization you prefer, as long as you’re always testing and always involving the business stakeholders, we approve.
About the Authors
Recommended for You
Testing as the Driver Towards a DevOps Culture
Can There Be Testers in Scrum?
Federico Toledo
Related Posts
The 3 Fast and the Furious Agile C’s
Breaking Down Agile and DevOps Practices: The “Continuouses” Software development is like NASCAR racing. Both require velocity, and in software development, it’s about developing, testing, and fixing issues at a speedy yet sustainable pace to avoid a crash and burn. And like driving a car,…
Uruguay, Latin America’s best hub for software development
This small South American country of 3.4 million people is a global leader in software exports. With more than 1000 active software development companies, progressive politics, and amazing opportunities, Uruguay has earned international recognition.
Leave a Reply Cancel reply
Search
Contents