Friday, February 26, 2021

Make sure your work area is well lit

 Make sure your work area is well lit

My dad always told me to make sure my work area was well lit. It didn’t matter whether I was doing homework, working under the hood of my car, or practicing my clarinet. Without proper lighting, he convinced me, you can’t see what you’re doing, you squint to keep things in focus, or can’t find what you’re looking for.

I channel my dad whenever I see someone washing dishes in the kitchen. How do you know it’s clean if you can’t see it?

When my oldest son was five or six years-old we visited some friends for dinner and drinks. Before eating we played washer-board and my son loved it. After we ate and the adults were enjoying beverages, my son whispered to me, “Dad, I lost one of the washers. You have to help me find it.”

He led me to a part of the outside deck near the doorwall to their condo, and pointed to the gravel under their deck saying, “It’s somewhere around here.” I imagined he dropped the washer and it slid between the deck boards into the gravel, so we began searching.

And searching.

And searching.

We couldn’t find the washer and I was getting impatient, so I asked my son, “Are you sure you dropped it here?” “No, I dropped it over there,” he replied pointing beyond the deck into the backyard, “but the light is better over here.”

I was reminded of this event later when I was consulting for a company that had great talent on the network and virtual machine management areas but not so much in database administration. They were panicking because response times suddenly slowed drastically.

They had great network monitoring tools so the network guys were the first to take a shot at it. The looked everywhere but couldn’t find the washer.

Next up was the VMWare team. All the virtual machines looked mostly idle no matter which tool they used to examine them. Low CPU utilization. Low network utilization. All systems normal. They couldn’t find the washer.

The developers, meanwhile, were already suspecting the database, pretty sure that something happened to some table causing some statistic to recommend some suboptimal query plan causing transactions that would normally takes milliseconds to scan a table and take over a minute. Only a database can choke an otherwise perfectly performing system with the equivalent of an impediment jinx without killing it.

As a developer, keeping your work area well lit (and your room clean) means instrumenting your applications so wherever there may be a problem so it’s easy to find out what happened. Sometimes that’s a log file. Sometimes it's a progress bar following status, and sometimes it's the ability to pop into an inspector/debugger to look at the running system to see abnormal behavior under-the-covers.

When you come across a problem that’s difficult to track down, it may be because that area of your system isn’t well lit.

Thanks, dad.

Follow @TomGagne