Posted On: 2020-05-04
One of the issues with planning based on how something will turn out is that the plan falls apart if things turn out differently than expected. Interestingly, this is not only true when one assumes a specific outcome, but also can occur when one tries to hedge by planning for a range of potential outcomes. Even when one anticipates "everything", there is always the possibility of a wrinkle along some unanticipated axis. For a clear example of this, you need look no further than the story behind today's blog post.
Throughout the past week, I sketched out ideas for what I would cover in today's post. Going into the week I had quite a bit of uncertainty, but, as I got further along on my task, it became clear that, no matter how I solved it, the results would be both interesting as well as necessitating a significant divergence from my previous save architecture. As such, I became confident that I had a good topic, and that, even if I encountered troubles and changed approach during the course of the week, I could still relay the final approach in an informative and (hopefully) engaging blog post.
What I hadn't anticipated, however, was having each and every solution slip through my fingers at the very last second. The solutions themselves didn't outright fail, really, it's more that they ballooned; Everything was working great - until the final point of contact between the new approach and the existing system. At that moment, I became stuck, as an insurmountable obstacle rose before me: to integrate the system would require more work than actually implementing it in the first place.
Each time this happened, I took a step back and tried to rethink the problem: can the assumptions that weigh down this solution be boiled away, to leave a simpler (and perhaps dramatically different) solution? As I thus found new approaches, I backed up everything and started afresh - only to be stopped by yet another ballooning of scope upon attempting to integrate it. This continued throughout the end of the week, leaving me with a whole pile of bad options, and no clear winner.
Thus, my plan fell apart: while I could describe any one of the various approaches I attempted, none of them could withstand the test of actual use*. Thus, I found myself with a dilemma: to pick one and write it up, knowing that it is fundamentally unfit for practical use, or discard my blogging plans, and scramble to salvage something from this spectacular mess.
As you can see, I chose to abandon writing about the technical details of my week's efforts, and instead turn my dilemma itself into the post. When faced with a problem, it can often be helpful to try to twist the problem's strengths to your advantage - and the problems with the plan for today's post were no different. I hope you've enjoyed reading the results.