“I’m sailing! I’m sailing! I sail! I’m sailiiiiiing!” said Bob Wiley.
This is from What about Bob? a movie from 1991. Bill Murray does a great job playing the deranged Bob. After his exclamation on sailing, he later reveals his secret.
“My secret is I let the boat do all the work.”
As developers, we also have a secret. Our code does all the work. Before we send our code on its way though we need to put it through its paces. Testing it from all different angles.
Test One thing at a Time
One of the strengths of Kanban is its ability to get people to focus. We try to reduce work in progress—no more spinning plates.
Nick Hodges reminds us how this applies to developers. For instance, your testing might be trying to cover 5 cases at once. That is a sign we need to shift our testing.
You should be able to take your unit test executable and run it on your mother’s computer when it isn’t even connected to the internet.-Nick Hodges
Our unit tests should be focused on one thing. Not like that 5-in-1 tool that is in your garage. It does five things poorly. Unit tests should be a one-hit wonder.
User-Centric
“Next Friday we are going to the call center to talk to our users.” Nakia shared this at our stand-up. I thought to myself, “what a waste of time…” Thinking that we had better things to do.
On Friday we began meeting with the call center people. We listened to the live calls they took. At first, I couldn’t believe how much information they had to look up. Our application only had a fraction of what they needed.
Testing requires time, neutral, analytical, critical, and user-centric thinking.-Dev Shah
I learned that day the value of our users. Good testing and design are user-centric. Nakia’s idea shifted our team. We went from resenting our users to empathizing with them.
Testing took on new meaning. Our exception and error handling took a step forward. We now had a name and face who we knew was counting on us.
Error Scenarios
Elias Karthan has a long storied career in technology. He is the Chief Operating Officer at Zirous. When I ask Elias about programmer habits he said this.
As far as good programmer habits go. I think it’s essential to think through error scenarios when developing. Often people focus on the happy path and tend to overlook how to handle all the different types of errors best. I think this is especially important when developing integrations when the end-to-end process crosses multiple systems and business processes.
His answer sounds of hard-earned wisdom. Like many of us who have been bitten by improper testing. Elias reminds us of being more thorough.
So before your code sails out into the world, make sure it's ready. Test it first one feature at a time. Make sure it fits the user's perspective. Review the error scenarios. Test the complete end-to-end process.