As a digital agency, one of the toughest services to sell to Clients is automated testing of their software. This is especially true when Clients are less technical, like those in Product, Project Management or Marketing.
As a User Experience design and development shop, Clients come to us with a wishlist of software projects or features they’d like to roll out. This usually looks like improving user experience or making operations more efficient. Rarely have Clients come to us with a wishlist where the items near the top included getting broader and more efficient test coverage of their software. (How nice would that be?)
We have seen that, more and more, Clients are bringing on people with DevOps knowledge onto their teams. In these cases, it’s easy to vibe on the value of writing tests. But this is still the exception, and no matter how tough the conversation might be, it’s important to raise to Clients why writing tests should be weaved into their core backlog.
#Why is selling automated testing hard?
Companies prioritize work that has an immediate impact on revenue. In the software world, this usually looks like product or marketing funnel activities that improve the user or customer experience. And since everything else gets second priority to this, Developer Operations (DevOps) becomes a luxury.
Selling automated testing is hard because as a digital agency, we empathize with this. We nod when Clients tell us to push off writing tests to the next sprint, for yet another time. See, we’re caught between a rock and a hard place. We’re working towards the short-term wins because that's what leads to long-term partnerships, where we generate most of our revenue.
And so to win in the short-term, in the past we've prioritized recommendations related to product and funnel improvements. We understand how valuable this is to our Clients as this makes their customers happier.
Recommendations like these help us prove to our Clients that we get it. We understand what's important for their business. And since automated testing doesn’t have the immediate short-term benefits, it has generally taken a backseat in our recommendations. But over the years, we’ve learned the hard way that leaving automated testing out of our early recommendations can hurt us down the line.
#Automated testing mitigates risk in the long-term
Recently, we identified a major bug on one of the Client websites we’ve been maintaining for a year and a half. We inherited this website from a previous digital agency. We won’t get into the details of the bug due to NDA restrictions, but what’s surprising is that the bug has existed even before our involvement!
The bug stemmed from both, an error in the logic and missing logic altogether. For more than 2 years, it was never caught. And unfortunately, the issue had significant downstream consequences as multiple stakeholders were working with imprecise data. Naturally, our immediate reaction was, "how was this missed?"
Turns out that it was missed simply because the scenario was left out of all test plans. Even in when the test plans included scenarios scoped to the same domain as the bug.
You might be thinking, “What’s the big deal? Bugs happen all the time.” And yes, that’s true.
It’s the nature of software to be never-done and increasingly-complex. But every bug, large or small, chips away at the trust between us, as a Digital Partner and our Client.
This is the case whether the bug was done by the previous Digital Agency, due to missing business rules, or because the Client missed it in their own QA.
Of course, I'm not talking about low severity issues like cosmetic things or edge cases. When it comes to these types of bugs, Clients are very understanding.
But issues related to core product can quickly erode trust with Clients. Digital agencies should take the necessary steps early on to mitigate against these potential issues.
Automated testing is a worthwhile step toward this.
#How does automated testing help?
#Encourages precise development
Automated testing requires an extreme attention to detail.
Tests depend on specific and precise scenarios. This requires close collaboration between Digital Agency and Client. Test cases stress-test business rules and code.
In the example here, had we recommended writing tests early on, there’s a really good chance that both the wrong logic, and the missing logic would have been identified. And we would have looked like heroes from day one. A nice win in the short-term.
#Provides thorough documentation
Automated testing gives Digital Agency and Client thorough documentation that details the business rules that have been ironed out.
A struggles that faced was efficiently figuring out what was done vs what was missing. Since documentation was lacking, we had to extrapolate business rules from code that was written by the previous dev team.
#Makes testing QA efficient
Automated testing makes Quality Assurance testing more efficient. It can start from the automatic configuration of test nodes and classes, and can end with a detailed log of what passed and failed, and the severity of every case.
If this case was written as a test, we'd know very quickly when there were issues.
Automated testing gives Digital Agency and Client confidence to deploy to production.
This bug would have been caught in development and fixed before ever reaching the live site.
#A necessary conversation
Asking Clients to weave automated tests into their backlog is not an easy conversation in the short-term. But it’s a necessary one. And if your goal is to become a Digital partner, it will hedge against risk towards that goal in the long-term.
In a future post, we may dig into how to best articulate the value of automated testing to your Clients.
Let us know if you found this helpful, or have any questions. We're happy to connect.