As the agile revolution continues to sweep South Africa, it's clear that many companies are finding that quality issues are creeping into their development environment. Some even start to question whether agile has some inherent incompatibility with quality.
Nothing could be further from the truth, says Jaco Viljoen, agile specialist at IndigoCube. "The underlying reason for the problem is that too many companies seem to believe that Scrum and agile are one and the same thing, whereas in fact Scrum is merely part of agile," he says. "Scrum remains an excellent starting point in the agile journey, but it's by no means the end point."
Viljoen says this misconception is widespread globally. He estimates that around 75 percent of agile projects globally effectively consist of Scrum on its own, or Scrum plus something else. He believes the proportion is even higher in South Africa.
He explains that Scrum is essentially management practices, and as such incorporates no quality assurance practices. If one takes the typical Scrum sprint (or iteration) to be 10 working days, then Scrum mandates what should occur on the first and last days, and the brief daily stand-up. It has close to nothing to say about what occurs in the remaining time, just under eight days.
"Testing is a very important component of quality, and the truth is that most companies simply try to use traditional, waterfall-style testing which occurs at the end of the project—and which Scrum's short time frames cannot accommodate," Viljoen continues. "The two approaches are incompatible, and that's the reason quality problems manifest themselves."
The answer, clearly, is to implement established agile practices (underpinned by the agile mindset) to how the team works. The agile community has developed and proved several practices to help teams infuse the agile mindset into what they do during the eight days of the sprint—the period in which the actual development work takes place. It's worth emphasising that the agile approach is characterised by a tendency to break down the activity/ responsibility silos that characterise the waterfall approach, creating an integrated and nimble process.
Acceptance test-driven development is one of these practices that relates specifically to quality. It also demonstrates well agile's holistic approach. Specifically, it requires teams to build quality assurance into the way they work, and not leave it until the end. Instead of the duplication and time involved in separate testing exercises by the development team, the dedicated testing team and then the business users, all three groups collaborate during the process to produce quality. There are established guidelines on how to do this.
In other words, quality assurance is built into the sprint, and does not take place in isolation at the end of the process. Within the agile community, acceptance test-driven development is said to harness the "power of three".
There are many advantages to this approach, not the least of which is that it's much cheaper (by a factor of 100) to fix issues at the early stages of a project than at the end. But most important of all, it marries agility with quality assurance—something that is lost if teams try to combine the agile working methodology, or Scrum, with non-agile processes.
"As I have already noted, while Scrum is a great place to start with agile, it's only a part of the whole," Viljoen concludes. "And when it comes to quality, agile is all about moving away from testing for defects at the end to preventing them from occurring in the first place. That means that testing, or quality assurance, is built into the development process, making quality an integral part of how everything works."