- I'm not really lost, because I know where I am and
- I know I can get out of where I am to where I want to be.
My wife hates it when I announce "I know exactly where I am! I've been lost here before.", but for me it's actually a small success.
I had one of those sensations this morning working on the Schematron generator for the Trifolia Workbench distribution for the CDA Consolidation guide.
With iterative development, especially the way I do it, there's always this sense of knowing where I want to go, without quite knowing how to get there. Sometimes I feel like a rat in a maze (of twisty little passages all alike), where I need to slowly but surely explore and work my way through to the other side. At other times, it seems as if I've gotten a brief glimpse, as if from overhead, of the way through.
And then there are times like this morning, where after some time struggling through a solution to a problem, I realized that I've gotten about as close to the exit as I can come, but as the Down Mainer said: "Nope... Can't get theah from heah." I've coded myself into this corner, and I know exactly at which turning I went wrong. The problem is that it's so far back that I REALLY, REALLY don't want to undo. After all, it's a day's worth of work I'll have to change (more likely strongly refactor).
My inner-self interjects at this point shouting: WHAT? Why all this pain and suffering over a single day's effort? Recode and move on dude.
Really, it's because a day (a full day) of writing code for me is so rare as to be nearly priceless. But having code that works and is understandable to others (especially since I'll be giving it away), is also very important. So, I'll rewrite it, and post another day on how the Trifolia Schematron generator works... when it is working.
There's a very fine line between "I think I know the way out" and "I think I'm just getting more lost", but neither of them is quite the same as knowing that I truly am lost, or have hit a dead end. Knowing is certainty, and with certainty, comes the knowledge that I have to turn around, and head a different way. That is progress.
Hey, at least I failed fast. I'm just wishing that I could have failed even faster.