How to Balance Speed and Quality in Agile Development
A primer on how to take advantage of the speed of agile development without sacrificing quality of the finished product.
Join the DZone community and get the full member experience.Join For Free
Agile development methods have come a long way in a short time. In the 2011 State of Agile Report, VersionOne and Analysis Net Research found that 80 percent of participants – all of whom were involved with software development to some degree – said their organizations were practicing agile development. In the 2016 version of this study, 95 percent were practicing agile.
Obviously, just about every decision-maker in this field has been fully convinced that agile development is the way to go. There are a lot of benefits inherent to agile. Arguably the biggest advantage? Speed. Compared to waterfall, agile enables firms to develop and release software far more quickly and efficiently. However, there’s an issue here: In many cases, businesses tend to emphasize speed so much that they end up overlooking and undervaluing quality. That’s a serious problem. As this infographic and blog make clear, there are major costs associated with poor software quality. It doesn’t have to be this way, though. With the right approach and the right agile testing tools, companies can take full advantage of agile’s speed without sacrificing quality. It’s all about striking the right balance.
To understand why so many businesses run into quality problems when leveraging agile, you first need to consider software development priorities.
Speed isn’t necessarily the single biggest factor driving companies to move from waterfall to agile, but it undoubtedly plays a significant role. Agile’s inherent flexibility and simultaneity allow projects to move from stage to stage in a far more efficient manner than waterfall’s rigidity and linear approach.
Speed has become increasingly important for software development efforts in recent years. Gartner noted that “CIOs are under pressure to support fast-evolving digital business scenarios but are finding traditional project and development methods unsuitable.” Agile development methodologies allow companies to respond to changing business conditions and take advantage of opportunities more quickly and effectively.
With that being the case, the unfortunate reality is that speed sometimes becomes too much of a priority – companies emphasize speed to the point that they make quality less of a concern. This doesn’t mean they don’t care about quality – just that it is not put on a par with speed. As a result, quality assurance is not seen so much as an invaluable aspect of the agile development process, but rather as a bottleneck that can lead to delays. Naturally, that dynamic can cause project leaders to push their teams to deliver as quickly as possible, and to spend less time testing or even push testing to the next release.
The end result? Software is delivered by the deadline, but the quality’s not where it should be. And when companies release buggy, poor-performing software, they can end up paying a very high price. Deadlines are not as important as quality.
Threading the Needle
So does that mean that when it comes to agile, companies need to either choose speed or quality?
Not at all. In the simplest terms, there are two key steps that companies need to follow to strike the right balance here.
First, quality must be prioritized alongside speed. When you consider the costs of bugs, glitches and crashes, this is not a difficult argument to make. The benefits of a high-speed approach will be quickly negated by a low-quality software release. Second, organizations need to invest in effective, easy-to-use agile testing tools and test case management solutions. When these resources are in place, testing becomes less time-consuming and less of a burden, while simultaneously ensuring that any bugs are caught and handled early. That actually speeds up the development process as a whole. That may seem like a simple remedy – and, really, it is. The biggest challenge is recognizing that speed is important to agile success, but it’s not the be-all, end-all. Ultimately, quality is going to have a big impact on the bottom line.
Published at DZone with permission of Kyle McMeekin. See the original article here.
Opinions expressed by DZone contributors are their own.