What’s been the impact of Agile and DevOps on software testing requirements and practices?
SRH: Automated testing is the glue where all this rapid delivery of value can exist. Automation of testing becomes a critical and a major component of being able to deliver rapid value and to react to changes. Therefore, everything changes for traditional testing. The tester’s skill-set changes, methods change, the way we test, what we test, when we test and the way we plan and execute–it all changes completely.
This shift began once customers began refusing to wait, once quality was something customers refused to miss and once the entire environment started to demand results faster. This in turn required that changes needed to be integrated into software faster than the organization could normally react while maintaining high quality and addressing rapid customer demands. But we were too slow, too late to respond, too expensive and less effective than desirable.
If we were to move fast and produce small chunks of working software, we had to shorten the cycles and integrate the testers using the Scrum team methodology. It was not easy for anyone. The mindset needed to change as well as the practices. For example, Agile automated testing introduced a completely opposite approach to testing compared to the traditional one. It means one must start testing from the first line of code and work your way up in the testing pyramid while continuously integrating, delivering and deploying working software, constantly dealing with defects, getting early feedback and keeping quality high at all times. The same thing happened with test planning, which now should take place throughout the development life cycle, everywhere, all the time and by everyone, instead of being performed and controlled at the end by testers. This changes the entire way we organize ourselves as a testing organization.
QASymphony: How does an organization know that it’s done enough testing?
SRH: As the topic of “Just Enough Testing” is very broad, I would like to focus and elaborate on one element only: the decision making process. A typical example is that in a “traditional” (not DevOps) software development life cycle, there are ongoing conflicts between the developers and the testing team. The testing team typically wants a larger scale of testing, whereas the development team prefers a smaller scale of testing. The development team would rather advance to writing code and to the next development phase faster. As a consequence, components in the testing plan are often being overlooked and are not being tested extensively enough. Sound familiar?
A fundamental element in DevOps is the shared responsibility for attaining the highest quality. Quality control is executed throughout every phase of the production process and all teams are completely involved at all times. Testing and quality is not something located at the end of process controlled by a separate “quality masters” group. Conversely, quality is everyone’s concern and people make the decision about the amount and extent of testing activities throughout the entire development process.
QASymphony: Describe your work as an Agile Coach.
SRH: Usually, organizations contact my partner Tommy Quitt and I when they struggle to find their path in this complex area and feel there’s much more to do in order to produce better and faster results while maintaining the highest of quality, or even when they feel that the processes and relationships between the different units in the organization are not aligned.
The Agile method has been proven to inspire creativity, and increase productivity and motivation. We also concentrate on finding the right solution for the organization. The work is a partnership with all levels of the organization – not only management but the employee in the field. In particular, as an Agile Coach, I pay attention to the mindset and the organizational culture. The ability of an organization to be productive and efficient, respond quickly in a changing environment and still produce high quality results depends on its people, its culture and the message it gives to its employees. That’s the reason we put a lot of effort and pay close attention to ensure the right people are assigned to the right tasks. I strongly believe that DevOps is first and foremost a culture.
Shirly Ronen-Harel is a coach and consultant in Agile/Lean methods. She is also author of ‘The coaching Booster Book , and the ‘Agile Kids’ books and currently writing her new book. Read her blog AgiloPedia and follow her on Twitter: @shirlyronenrl.