Sounds like the final CS Lewis Narnia Chronicle… it’s the most cliched phrase in corporate america today. I refuse to even write it and I cringe every time I hear it come up in speech- “think outside the b*x!” It’s the flagship phrase on the armada of corporate crap-speak, but do you know the etymology of this phrase? It was coined by Mike Vance in 1995 in his book “Think Out of the box” (coincidently his son, John Vance was fraternity brothers w/ my brother at Santa Clara). The whole notion stems from this puzzle where you are supposed to try and connect a grid of dots with a series of four pen strokes without lifting your pen from the page. Most people get 8 of 9 dots connected but struggle with connecting that last dot because they are focused on “coloring within the lines” of the grid. The solution comes when you are able to realize that the page is larger than the grid and you can overstep the boundaries of the grid. The solution may be common knowledge to everyone now but I want to give my own take on this whole “boundary-less thinking” as it relates to programming and more generically, problem solving. I will illustrate with a brief story from my high school days.
Abe Lincoln once made the statement to the effect of “If I had eight hours to fell a tree, I would spend seven of them sharpening the axe.” With the advent of chainsaws, it’s rare that people now have the occasion to actually chop down a tree by hitting it with a sharp piece of metal. While Abe’s words of wisdom are still very relevant and powerful, until you’ve actually had to try and hack down a tree with an axe, you just don’t get the same visceral identification with his words. Back in the summer of ’93 shortly after my 18th birthday (and this is crucial because it meant I could no longer be tried as a minor), my friend Wayne and I were busted for underage drinking by rent-a-cops in his girlfriend’s parents’ backyard. Our sentence was deferred and instead of doing time in juvy, we were given 32hrs of community service beautifying our community. Those guys on the side of the road in the orange vests picking up trash… yeah, it’s about as fun as it looks especially during the summer in AZ. One of the many sisyphean tasks we were given during our stint at the Paradise Valley Police Dept. was to chop down a 25′ poplar tree that was growing in the median of their parking lot. The tools we were given: a rusty pickaxe each. If you’ve ever seen the gnarled roots of a mature poplar tree then you know this task is about as feasible as giving someone a pair of chopsticks and telling them to empty a swimming pool one water droplet at a time.
Now Wayne is no dummy (in fact he’s currently a rockstar lawyer with one of NYC’s top law firms) and I have an utter distaste for tedious, mindless work. While the other laborers launched into their own chores, Wayne and I took a few swings and then sat there staring at the tree, examining our puny tools and thinking to ourselves, “there has got to be a better way to do this.” Fortunately the week before my S10 mini blazer had been outfitted with a trailer hitch. It was parked in the space next to the tree and, like one of those cheesy movie scenes, the hitch glistened in the 120 degree Arizona sun and the light bulb hit us both simultaneously. We rummaged around the yard for a sturdy rope and found one immediately. It took us all of about three minutes to back my truck up to the tree, fasten the rope to the tree’s trunk and then to the hitch. In a glorious moment I will never forget as long as I live, I threw my truck into 4wheel-low and slowly plogged forward ripping this massive tree out of the ground while Wayne stood watching and chuckling in his classic half-smile “awww jeahh” look. I remember making my victory lap through the PVPD parking lot dragging this enormous mess behind my truck trailing dirt clods everywhere knowing that we would of course later be tasked with cleaning up the mess we created, but sweeping was WAAAAY better than swinging a pickaxe in noonday sun!
How does this story relate to programming, web development or problem solving in general? Think how many times have you been handed a project that felt similar to this. I’m sure we’ve all been given a mindless piece of work at one point or another- I know I have and I loathe doing these types of projects. The key is how you choose to solve it, though. Do you put your head down and start immediately start hacking away with your pickaxe or do you take a few steps back and see what other tools are potentially at your disposal? Can you write a routine to automate the mindless portion? Has someone else already created a component that does 95% of what you’re trying to do? Are there tools perhaps written in other languages that accomplish the same thing but might be out of your periphery because they don’t end in “.cfm?” Depending where you fall on the continuum of corporate vs. independent consultant, your tool belt may be constrained by various factors (namely monetary and political), but with so many kickass opensource tools for other languages available, as well as ones like CFOPEN, CFCZONE and the newest addition COAL for CF- you really have no excuse for claiming that you don’t have the appropriate tools for the job. And if by chance you are operating under some draconian corporate policy of not being able to install apps on your own machine, then run them from a USB drive. The point here is that it is SOOOO much more satisfying to spend a little time sharpening the axe and solving the problem creatively rather than launching into a brute force attempt with crappy tools- not only does it grow your skill set, expand your confidence as a developer but it also makes the job like a treasure hunt or a good MacGyver episode.
*UPDATE – I just found this picture of Wayne and myself doing our “hula hoe” chores in front of PVPD- awesome.