Sunday, January 3, 2010

Predicting the future

Anybody can predict the future. Hold an egg in one hand four feet off the ground. Take your best guess at what will happen when you let go of the egg, then see if you were right. Wow, you predicted the future.

Sometimes it isn't that tough to predict the future. You don't need to drop an egg to know it will splat on the floor, you just know it will happen. You don't need to walk barefoot on broken glass to know it is a bad idea. You might not get cut, but that would be the way to bet.

On one of the database forums I post on there are several people that insist you should not do anything except what you have been asked to do because you can't know what the future requirements are. I disagree. When I design a database I do what I have been told to do, but then I go the extra step and design in hooks or features that I am fairly confident they are going to ask for in the near future. The tricky part is balancing the odds of the need against the cost of doing the work now versus later of course.

Balancing is always the tricky part of life. Even once you have predicted the future (or the odds of the various possible futures) you need to weigh the cost of preventing any future problem against the benefits of preventing that problem. We all know that walking on broken glass barefoot is a bad idea, but we don't wear shoes 24/7 to prevent cuts when we are fairly sure there is no broken glass in the area.

It makes sense to carry a spare tire in your car in case of a flat because the cost is low but the benefit is high. The odds of getting a flat are iffy, but given the low cost of carrying around a spare at all times versus the cost and inconvenience of not having one when you get a flat I think they are worth it.

If there is any point to this post at all (and even I am not sure if there is) it is that there are some things you should prepare for. Some habits you should learn to prevent future problems.

When I put the knives in the dishwasher I put the points down, because it takes little effort and saves me possible pain.

I have found that having a fairly large balance in my checking account can save me a lot of future grief if any number of things go wrong.

I keep basic life-support things with me in the car in case I get stuck somewhere.

I keep a stock of food, water, and a portable generator on hand in case I get snowed in or the power goes out.

I know how to find my son in an emergency and he knows how to contact my relatives and friends in case he can't find me.

This list could go on forever, but you should have the point by now. Think of what the future may bring. Figure the odds of a specific event happening. Figure the cost of planning for or preventing the problem now and weight that against the cost of dealing with the problem in the future.

No comments: