Spend any time around a 4 year old, and you will inevitably find yourself involved in a conversation which evolves into this:
- Please do this thing
- Reasonable answer
- Restatement of reasonable answer
- Shorter, more frustrated restatement of reasonable answer
- Because that’s what has to be done
- I give up. Go ask your other parent
It’s a simple, but powerful and important question. The trouble is that when it’s a 4 year old asking it, in a lot of cases they can’t understand the answer. More often, they aren’t interested in understanding it.
Fortunately, there aren’t any 4 year olds in the average IT shop (although it may not be too far off).
A while ago, a data issue came to my team. Nothing major, but enough that it caused problems for a user. It’s a small glitch with an application component which pops up maybe once or twice a year, so it’s been decided that it’s better to just fix the data in those rare cases as opposed to spending 20 hours tracking down the root cause & fixing it there (I’m the SME for this component).
The requested correction was to delete the entire record, based on a previous fix to a similar but unrelated data problem. By the time I saw the request, a teammate had picked it up & started working on it.
“Wait! Don’t do it that way!” I said. “All we should be doing here is fixing the one erroneous field on that record.” This had come up in the past, but with it happening so rarely it’s easy to forget about.
I paused to catch my breath, then heard it.
I had to pause even longer to collect my thoughts. I don’t often get asked questions on things like this but I wish it happened daily.
This is the moment in which knowledge is gained, even by the answerer.
When you live & breathe a system for years on end, it’s easy to take certain aspects of it for granted. You respond without having to think about why things work the way they do - you just know that’s how it is.
The ensuing conversation was productive and I hope informative for my co-workers. While deleting the record would have the desired short-term result (making the application function properly), in the long term it would break the link between the data and a document which is referenced by that data. A net loss. Fixing the one column (setting it to the value which it should have been in the first place) allows the application to function correctly and retain access to that referenced document.
The conversation also forced me to take a closer look at my own understanding of the issue and re-evaluate what I thought I knew about it. It turns out, I had some bad assumptions in there too, which I was able to correct.
Not only did my teammates learn, I learned too. Everyone wins.
So why was the original solution of deleting the whole record requested? The answer isn’t too far removed from the idea of cargo cult programming. That is, someone saw the solution of deleting the whole record used in a similar case years ago, documented it, and it was seen as the One True Answer from that point forward - regardless of its applicability to the situation at hand. A detailed explanation of “why” isn’t usually written for every issue that comes to our team for resolution, for a few reasons:
- We don’t think to do it.
- There isn’t a good way to distinguish between this bug in the system and others without having a fairly deep knowledge of the system.
- There isn’t a way in our ticketing system to record information that isn’t visible to everyone, and the whole company does not need to see the dirty details of the internals of every system - in fact, it would probably be counterproductive.
In hindsight, a carefully-written, more thorough explanation many years ago may have prevented this particular request from being written as it was.
Asking why became the basis for Toyota’s approach to improving their manufacturing processes, and is built into Six Sigma and many other process improvement methodologies. This one word is the gateway to understanding, and once we understand, we can find ways to do things better.
If you’re curious about something, release your inner 4 year old. Just don’t act like a 4 year old when you do it. Keep asking why, get to the answers - and make sure you understand them.
If someone asks you why, embrace the question. This person is interested, they’re engaged, they want to learn! Take advantage of that opportunity to teach and spread that knowledge. Along the way, you just might learn something yourself.