Saturday, August 11, 2007

Silent Bugs

One of the hardest bugs to fix in software is the "silent" bug: a bug that produces the wrong results, but does not provide any information about exactly *where* things went wrong in the code. And in most business applications, that leaves you with thousands of lines of code to sift through; the veritable "needle in a haystack". But it does not need to be that way: a simple coding technique is to wrap each function with something we call a "try/catch" block, which allows the function encountering the problem to tell the world, "Hey! It's me! Look here! I'm the guy with the problem!" That little technique makes a world of difference in tracking down bugs.

Now, if you are not a software geek, you're probably wondering what the significance of that is. Well, I'm finding more and more of life is like that. When we do not anticipate the problems in life (the ones we KNOW will come), we don't tend to handle them well. We bury them, hide them, and/or just ignore them. HOPING they will somehow just "go away". And like a software developer, a simple philosophy goes a long way to dealing with that: "Yeah, I know problems are going to happen, so here is how I will handle them when they do."

We see the same issue played out on the national level. How did the U.S. do so much better than the Soviet Union? Both started out with revolutionary concepts that, on paper, sounded good, but had yet to be fully played out on the national level. And, as history books show us, one went on to be the leading world superpower, while the other struggled with corruption and fundamental flaws throughout it's existence. What's the difference? I'm sure historians could give lots of answers, but I would propose one major factor: American forefathers *anticipated* things going wrong, of corruption and tyranny. In fact, it horrified them. Hence, the balance of powers, written into the fabric of our government (congress vs. executive vs. judicial). They did not know who would lead the country 200 years after them, but they wanted to make sure that person could not be a tyrant. On the other hand, the communists were fully optimistic that their system would bring out the best in people. Few, if any, safeguards were written into their system. They simply did not anticipate tyranny...and that is just what they got. Had they PLANNED for things to go wrong (i.e. power corruption), and planned for ways to deal with that (balance of power), who knows how different the world would be today.

Now bring it back down to the personal level: we men, like programs and nations, are subject to flaws. And unfortunately, we are often the last to realize it. After all, we make our choices, and who wants to go second-guessing their every move? That's fine, but we also need to be cognizant both of our flaws, and our own tendency to overlook them. That's why it is important to be sensitive when red flags are raised by objective parties. And who does that better for us married men, than our wives. They may have their own flaws, but they also have an uncanny ability to see ours a mile away. With incredible accuracy, too.

Or maybe for you that person is a friend, or a parent, or a brother. Regardless of who it is, we all need to be aware and cognizant of our own humanity. We need to be very cautious before disregarding the warnings of those around us who care for our wellbeing. That little change in viewpoint can make a world of difference in how you handle problems when they arise, whether they are quickly dealt with, or if they become long-term bugs in our system.

"Why do you look at the speck of sawdust in your brother's eye
and pay no attention to the plank in your own eye?
How can you say to your brother,
'Let me take the speck out of your eye,'
when all the time there is a plank in your own eye?
You hypocrite, first take the plank out of your own eye,
and then you will see clearly to remove
the speck from your brother's eye."
Matthew 7:3-5 (NIV)

No comments: