Building a Business Case for Automation in Your Software Lifecycle
We continue to produce new and enhanced software capabilities at lightning speed. This is a result of many decades of learning and evolving our software engineering discipline, adopting more responsive methodologies and tools, employing better programming languages, and embracing the principles and culture of agile and DevOps, among other things.
In the midst of this necessary and continual transformation of our profession, it surprises me that I continue to get the question “How do we sell automation?” Usually it’s focused on “How do we convince our organization that automating testing is beneficial?” but I have also heard this question regarding the automation of other aspects of the software engineering lifecycle.
Let me preface my comments by agreeing that, in an ideal world, we would deliver perfect code, continuously, that needed little or no testing. While a few organizations are getting there, the majority of us are still faced with the reality that we must have some testing in place to mitigate business risks. Returning to the question of selling automation, my first reaction to that question is, “You’re kidding me, right? We’re willing to invest in all kinds of automation in other aspects of the lifecycle, but we need a detailed business case for test automation?”
OK, enough venting! My overarching belief is that the organization that ignores the implementation of a well-integrated set of automation capabilities across the entire lifecycle compromises its ability to remain competitive.
Here are a few things to consider as you assess your automation investment. I’ve focused this on test automation, but many could be restated to apply to automation elsewhere within the software lifecycle.
Qualitative questions: What are the existing pain points, and how would automation mitigate them? How would automation free those in testing roles to do other, deeper testing? What’s the benefit of the agile team having immediate feedback when a change is implemented? Is there a benefit of being able to run tests 24x7? Will automation contribute to internal or external compliance requirements? How important is test repeatability and consistency?
Quantitative questions: What are the current ranges of time and cost required to:
- Plan, design, implement, execute, and maintain test cases?
- Plan, provision, and maintain the test environment(s)?
- Determine, create, extract, mask, manage, and maintain the test data?
- Manage the existing manual test cases?
Having this data will tell us how many more test cycles and test cycle variants could be executed if automated. Benefits include faster test execution, less time provisioning environments and test data, ease of managing test cases, improved test status reporting, quicker feedback to the team when issues are found, reduced stress on the team, greater consistency and repeatability in testing, the ability to run more tests (with different data sets), and increased test coverage.
Don’t forget that the ROI for automating different types of testing will vary, such as between regression tests versus user story tests. You should start with a small business case for one specific type of testing that significantly addresses a critical pain point, and see what kind of benefits automation brings.