So today, I need to pick the schema for my data in a new project, and I remember another routine epiphany that seems to only come to me whenever I work on designing a schema for my data. I don't know if I have quasi-memories of this epiphany or if I really do rethink this thought after I have spent several hours weighing my options, and never make a sufficiently permanent note of it to help me repeat the same mistake either in this context or in the much broader contexts to which I think it applies. I question whether I actually benefit at all by thinking about things, most of the time I think about them. I want to find a mystical schema that somehow magically evaporates most of the other implementation problems I expect to encounter, but usually I have to solve a few problems in any given project that have opposing constraints. I can do one of my sub-projects more easily if I build the relationships one way, and I can do another more easily if I build them another way, and if I do it both ways, I'll have to make sure that data updates in multiple places which always produces more trouble than it prevents. So basically, I have two decent options, and no perfect options, and I spend a bunch of time looking for a perfect option. I devote a lot of thinking time to problems that I don't actually need to solve. The same pattern applies to other things I think about, not just designing schema.
When I worry, I usually worry because I'd like to solve a problem for which I lack some necessary piece of information. I know: if A, then I should X; and if B, then I should Y, but I don't know A or B and I don't know how to learn them, and I need to take action soon or reap consequences that seem as bad or worse than the consequences for making the wrong decision. In most of the cases that I deal with regularly, I would benefit by taking an action as soon as I realize that I lack access to the information that would allow me to make a knowably correct decision or as soon as I realize which trade-off prevents me from having a perfect option available. Instead, I think about it. By natural inclination, I value thoughtfulness. I naturally assume thoughtfulness leads to more prudent decisions and that more prudent decisions lead to better outcomes, but many real circumstances prevent thoughtfulness from having the power to produce more prudent decisions. These circumstances probably occur more frequently than the ones where thoughtfulness does lead to prudence. In these circumstances, making a decision promptly will lead to better outcomes than pondering the decision carefully because pondering the decision simply wastes time. (Going back to the treachery of childhood: test questions always have a right solution. The contrived experiences of an education condition students to believe that thoughtfulness leads to better outcomes much more often than the messy conditions of reality actually permit you to find the right solution.)
I wouldn't go so far as to say that running with the first idea will produce results comparable to stopping and thinking about decisions. But stopping and thinking doesn't require hours of thought. I can go through a few questions pretty quickly and after five or ten minutes produce answers that on average produce as good of results as spending hours deliberating, I think. What do I have? What do I want to accomplish? What do I know? What do I need to know? Can I learn it or will I have to guess? What paths lead to what I want to accomplish? Can I combine the best elements of all of them or do they actually have conflicting features that forces a trade-off? None of these questions take long to answer, and none of them get solved much by remaining in abstract thought.
Questions like "does a more efficient algorithm exist for solving this problem?" do require a lot of thought, but seldom have much significance for most problems.
No comments:
Post a Comment