4 Ways That Automated Testing Changed My Business
I’ve owned a software business for 11 years…
But it wasn’t until 2009 that we made the switch to automated testing on all of our work. Once we made the switch there was no turning back. This is why.
Our Developers Are Happier and More Productive
When you write code without automated tests there’s a feeling that you (as a developer) are the only one who understands how this thing works. You feel an immense personal tie to the work. When there are problems in work you’ve done, it’s hard not to get defensive or see it as a personal attack.
“With our test suite in place, I check out for the day and it just works.”
— Valentino Stoll, Software Developer
When the automated test suite runs, it finds what your new work breaks and it tells you when your work is finished. Then when bugs find their way into your work, it’s the automated tests that expose the issue, not a management team asking “How was this allowed to happen?” or “Why didn’t we foresee this?” All personal judgment, and the feelings that go with it, are non-existent.
The end result is our developers are happier. Happy developers are less resistant to change and in the long run are much more productive.
We can think long term
What’s the lifetime of a line of code written today? In other words, given uninterrupted development, how long will it be before the code you write today is replaced?
Following this line of thinking, how can you know when that code’s time has come?
Automated testing has allowed us to stop “chasing” our code. We feel in control of the changes and instead of reacting to the world that’s constantly changing, we’re able to plan and understand the changes we need to make.
I find so much strength from this aspect of our automated tests. Our entire team sleeps easier at night and that feeling of strength works its way back up the chain, so much so that we’ve been able to offer guarantees on our work that we could not have dreamed of before.
Automated testing has put us back in control.
We’ve learned the value of a job done well
Let’s be honest; Automated testing takes time. The time spent writing tests takes away from time that could be spent writing new features. In a strict features-vs-time comparison we produce less than we could without automated testing.
“Without our test suite, it would have been impossible to release our waitlist feature. It’s too complex to test manually.”
— Michael Prince, Carefree Boat Club, Reenhanced customer
After several years, it turns out that the extra time doesn’t matter. What really matters to us and to our customers is that our work performs without issue. Providing complete work that meets business requirements is more important than releasing features a few days earlier.
It turns out this has been true even for the time-critical features where a few days makes a difference. Code you can’t rely upon is a liability, not an asset.
We can easily make team changes
Our automated test suite doubles as developer documentation for our work. When we add a new developer or have to take over where one left off, the tests continue to provide value that minimizes the pain from the change.
Our fear of losing valuable assets when a developer moves on have proven to be unfounded. With a good test suite (and code reviews) we’ve found no issue with making changes to our team.
We know this because we’ve lived through it. Good tests make team changes a non-issue.
Nick Hance is the founder of Reenhanced.com, a software consultancy since 2005. In early 2016, Reenhanced launched agileasaservice.com as a service designed to help companies get started with automated testing. Get started here.