We call it the Villa, although it’s more of a hut 60km north from where I live. It’s our summer place, where we travel to spend the vacations on a regular basis. I retreat there to write from time to time as well. There is a small beach-house-sauna built close to the shore and every night we heat it.
Not long ago we decided that the sauna needed a painting. It’s in the shore after all and at the mercy of the weather. New paint would give the building some cover from the occasional storms that we see here.
One Friday afternoon I left the office to hit the hardware store to buy all the equipment we might need for the job. We would need at least two shades of paint. One for the walls and one for the window frames. Then brushes of course and a massive roll of plastic and some tape to cover the terrace and windowsills.
Then we hit the road and arrived at our cottage just at the time when the weather fairy decided to turn the wind up all the way to eleven. So we had to wait for the morning to start the work.
Early wakeup and a team of diligent workers made sure we had the plastics taped where the protection was needed and by afternoon we finally got to work.
Now you might wonder why I’m telling you this story. I promise, there is an essential idea about software development ahead!
We did two layers of paint to the small beach house by the sundown. In the morning we deconstructed our protective plastics and the ladder system. Finally, we took care of the finishing touches detailing the window frames with small brushes. Our weekend of work was a success.
Considering the errand, it was evident that we spent only a few hours of our time doing the actual painting. Covering the beach house with paint in other words.
We spent most of our time in gathering the right equipment, setting up the protective plastics and waiting for the paint to dry. Finally, we put our effort into investigating the details and doing the nitpicker part of the work as well.
No matter where we go, most of our time spent is not spent on the actual task that we set out to do. Instead, we do a considerable amount of setup before getting to the work and a fair amount of cleanup and investigation too.
To explain the work time allocation, I use a simple SCI model.
S stands for Setup. In software testing, for example, this work tends to be setting up the test data, rigging the database and the servers, gathering release notes and deploying the build into the test environment.
C stands for Coverage. In testing terms, this is the part of work where I test new areas of the software. If I was a coder, I might even substitute the C here for Coding.
I stands for Investigation. When I find a bug, I must stop for a while. Taking screenshots, making notes and finally trying to get into Jira to report the ticket only to notice how my account has expired for some reason at the turn of the month. Some setup later I get into the ticketing system and make that report. And suddenly it’s lunchtime already.
The scenario plays out in most of the projects we have. It is a surprisingly thin slice of time that we genuinely spend on the coverage/coding work. Setup and Investigation consume a bunch not to mention pointless meetings, headhunter calls or occasional sick leaves.
I’m willing to propose that gaining coverage is not about how efficient we are in testing. To make the idea even more Twitter-friendly, I should say that
Gaining coverage is not a function of efficiency. It’s a function of Focus.
It is mostly about how many hurdles less we need to hop in every other area of our projects. All of the focus in Setup activities is focus away from Coverage. All of the focus in Investigation activities is focus away from Coverage. You get the drill. Now think about your next meeting.
To make the idea applicaple, we are left with just one question.
What could we do this week to decrease time that we spend in Setup and Investigation? Think testability, think devops, think automating, think outside of the box.