Kids, spaghetti, symptoms and better practises

Here’s one for all the parents out there?

We had (have) this scenario at work where the simplest analogy for my non-technical friends was an analogy to solving your kids thirst and love for spaghetti. And that’s a messy story.

One of our software development team has a product that has been on a client’s system for the past 2 years and in one of the recent updates (about 3 months after a ‘feature’ update) the product starts getting this error:

WMI Service not responding.

The development team swear blind that they’ve done enough investigations, and the problem is fixed by rewriting their piece of code that touched the “WMI Service.” Of course, they can’t replicate the bug in their development environment, or the Quality Assurance environment. But, they can guarantee the error will go away by not using the above mentioned service.

We’re told to be in partnership with our people, and a summary of our investigations highlights a few interesting facts:

We have no clue why this error occurs, but we can get rid of the error.

The parallel to our child analogy above is, …

My kids all grew up loving spaghetti when they were introduced to solid food. As any parent, aunt/uncle will know: Kids and spaghetti are a recipe for ‘MESS’. Notice the capital letters there.

There are plenty of solutions on the market that budding new parents are urged to try. They have baby bibs made of hard plastic with a ‘catch’ tray that is easier to wipe/clean and can catch some of the ‘refuse’ before it reaches the floor. I’ve even seen promotions for floor plastic sheets, that new parents can spread on the floor to ‘catch’ the debry.

What are we solving above? Nothing really, because none of those products really work for inventive/scheming new spaghetti eaters. Your treating the side effects of the illness. It’s a messy business or you wouldn’t be dealing with kids in the first place, accept it and move on. The above ‘solutions’ are just helping you avoid dealing with the real issue:

Your kid is a messy eater.

Fortunately, most kids grow out of their messy spaghetti problem and elevate to messy bedrooms, messy schoolwork, etc. But that’s a different release.

Back to our team’s problem.

Solving the “WMI Service Not responding,” by ignoring it is cleaning up the after-effects and not the cause of the problem. The development team already know the problem only occurs when the server’s CPU utilisation is maxed out at 100%. They don’t test for this in the development machines or in the test team’s machines.

No, suggesting to install more debugging tools on the server (Visual Studio) isn’t helpful, nothing more will run on the machine and the few people/services already running are struggling.

No, scheduling a server restart every night is not a solution. It resolves your symptoms, temporarily, but it doesn’t solve your problem.

Unfortunately, programs don’t independently grow up and shed bugs like old skin. Programs tend to hold on to atrophied body parts until they get the proverbial code-stink. Code stink gets worse with age, a minor bug can readily become the foundation for a lot of problems.

Find out why you have these symptoms, why is the application using up 100% CPU utilisation. Fix the problem, not the symptoms that’s a better way forward.