Everyday we confront problems with no viable solution. Sometimes we simply accept them; sometimes we struggle against them for years. Some are critical, but most are simple annoyances; to the careful negative observer: subtle, regular signs of failure.
For example, let me share a ridiculous lifelong struggle: microwaving a frozen burrito. This, it turns out, is an impossible problem. Sure, any idiot can throw a burrito in the microwave for a couple minutes, and have something edible, but it won't be good. The center might still be cold, or the tortilla may be hard as a rock. The filling may boil out, and most likely, the wrap will be soggy on at least one side. In short, there is nothing you can do to make a frozen burrito come out of a microwave well cooked. I should know; I've tried every possible thing. I've cooked it fast, and slow, and slow then fast. I've cooked it on a wet towel, under plastic wrap, on a special microwave cooking plate. It's impossible.
If this were code, the solution would be clear: deconstruct the problem. Break it up into smaller problems, and with enough iterations and subdivisions, eventually you're not even solving smaller problems, but just following the obvious, simple course from problem to solution. On the rare occasion that doesn't work, change the scope: go back to the original premise... you're likely to find you've made an incorrect assumption. Even for software developers trained in this mindset though, applying this technique to everyday problems isn't obvious. If it was, there wouldn't be frozen burritos.
I'm writing this for a couple reasons: aside from the obvious advice, reminding developers that the tools we have for coding apply in real life as well, I'm also marking a turning point for this blog... which has long been an impossible problem for me. As much as I've wanted to fill it with good content centered around open-source technologies, I'm rarely able to find a subject that isn't better covered elsewhere. I want to blog more. I've been asked to blog more, but always the subjects elude me. It turns out the simple solution was a problem of scope: like this post, the things I want to share, that aren't said enough, simply aren't related to open-source. So, starting with this post, I'm solving the problem... by changing the scope. From here on in, I'm writing about whatever I want, whatever I feel needs to be said, shared, repeated. Stick around, and see if we can have some interesting conversations.
P.S. Here's the solution to frozen burritos:
- Microwave it whole, at high power, just long enough to defrost the tortilla completely.
Usually 45 - 75 seconds.
- Open it up and scrape the filling out into a bowl.
- Microwave the filling at medium heat until it's at a safe temp - I look for boiling.
Usually 3 - 4 minutes at 60%.
- Spoon the filling back into the tortilla, wrap it back up, and cook the whole thing for 30 seconds to get the tortilla warmed up nicely.