Rapidly delivering innovative software has grown from a technical challenge into a business imperative. Today’s businesses recognize that they can no longer gain or retain a competitive edge unless they consistently deliver market-leading software innovations faster than their competitors. This is the force that has escalated development movements such as agile and devops into digital transformation initiatives on the boardroom agenda.
By now, most organizations have already witnessed how agile can impact development and are already in the process of scaling their initial agile successes enterprise wide. But what then? Business demands for more software faster aren’t going to let up. What else can you do to take your velocity to the next level as expectations continue to rise?
Reinventing testing is an untapped opportunity to break through agile velocity plateaus. In the rush to “become agile,” organizations typically invest considerable time and resources in reinventing the development process and software delivery process. But what about testing? It’s commonly overlooked in the agile transformation. The number and length of testing cycles may change, but the testing process itself remains fundamentally the same. Yes, this is a problem—but it’s also an opportunity. Even if you’ve already done all the conventional things to accelerate your development process and you thought you reached a plateau, you can still increase velocity by shifting your attention to testing.
It’s like you’re trying to lose weight and you start off by optimizing your diet. You will shed some weight as you transition into your new “healthier eating” lifestyle, then the results will likely level out as you’ve settled into a new routine. But now consider what happens if you add exercise to the mix. You’ll break through that initial plateau.
Not convinced? Consider the following three ways that reinventing testing can help you accelerate software delivery.
1. Streamline the biggest software delivery process constraint
Testing is—by far—the biggest holdup in the software delivery process. In a recent study, 63 percent of respondents cited “Testing/QA” as the primary constraint in their process. This is more than twice the number of respondents blaming planning, which came in as the second-highest constraint.
Why is testing such a bottleneck? That’s a topic worthy of a book, but here’s a quick summary.
- Manual testing. At least 80 percent of testing is still performed manually—even more at the enterprise level. As a result, it takes days or weeks to run the planned regression test suites. Week-long regression tests obviously aren’t a great fit for two-week (or shorter) development iterations.
- High-maintenance test automation. The pockets of automation that do exist typically require extensive maintenance to address false positives as well as keep the test suite in sync with the evolving application. Test maintenance typically consumes hours per day for teams running any substantial amount of scripted test automation.
- Test environment access. It takes 3.5 days and 3.8 people, on average, to fulfill a request for a new test environment. At one of every five organizations, it takes more than a week.
- Test data access. Nearly 55 percent of testers spend between five and 15 hours per week dealing with test data needs and issues.
By transforming testing to a true continuous testing process, you can diminish the threat and impact of these bottlenecks. I’ll be talking more about how to do this in subsequent columns.
2. Fail faster
Failing fast—obtaining immediate feedback on code modifications then rapidly responding/adapting—is key to agile delivery speed. If you’re veering off course, you want to know as soon as possible so that you don’t waste time moving in the wrong direction. This applies not only to what you’re building, but also to how you’re building it.
For instance, if your modification introduces defects and you have an automated regression test suite that alerts you right away (when it’s still top of mind), you can debug and remediate the defect as rapidly as possible. If not, you risk building more code upon the buggy code—which significantly complicates defect identification and resolution down the road.
You also risk:
- Accumulating technical debt, which threatens to throttle your future velocity.
- Having development progress continually interrupted by critical field-reported defects that require immediate attention.
In addition to helping you fail faster, a trusted automated regression test suite can also help you innovate faster. Imagine you have two teams migrating legacy functionality to a microservices architecture and neither team is very familiar with the target system’s dependencies and services. One has a test suite that automatically alerts them if their reimplementation changes or breaks an existing business process. The other doesn’t. Which do you think will complete the project faster?
3. Shift budget to foster innovation
Last, but certainly not least, reinventing testing will free additional budget that you can shift towards innovation. As I mentioned in the first point, manual testing still accounts for the vast majority of testing—especially at the enterprise level. This is not only slow, it’s also rather expensive due to all the resources required for an activity with limited to no repeatability.
An added bonus of reinventing testing for agile and other modern processes is that you organically reduce the cost of testing as you streamline the process. Given that 40 percent of the average IT application budget is spent on testing, there’s potential to free significant budget—which can then be reallocated to drive innovation.
By reinventing testing, you not only better align your quality process with agile and other digital transformation initiatives. You also unlock a stealth strategy to surge ahead of your competitors.