You Cant Get There From Here

An expression used to describe a scenario whereby a system has found itself caught in a sufficiently strong LocalMaximum such that it is unable to escape to find a GlobalMaximum?. An energetics thing, but also a metaphor for many situations in daily life.

A phrase sometimes uttered by Boston (USA) area locals when asked for driving directions; it was made into a game show skit on SaturdayNightLive?. Given that Bostonians give directions to visitors in terms of where things were 50 years ago, this is sometimes a true statement.

This can be an AntiPattern. For example, you have a big project that needs some heavy modification. It often becomes apparent that it would be less effort to scrap the old project and start all over again from scratch rather than modifying the existing framework. UnitTests are an attempt to avoid this kind of trap.

Another name for this is: What do we do when the set of DoTheSimplestThingThatCouldPossiblyWork is a null set?

This might seem strange but coming from an R&D world my projects spend some time in the phase where all candidate solutions fall in the bucket, Could Possibly work if we are Lucky and I guessed right.

In these cases I go through a process I am calling Heretical programming, which I suspect mainly differs from the ExtremeProgramming in the sense that it is for building software when you YouCantGetThereFromHere and you wind up doing a variety of other processes to try to get to the place where You can get there from Here.

YouCantGetThereFromHere is a kind of a problem that I once saw bugs bunny have in a cartoon. He kept driving around in circles and coming back to the same hamburger stand and asking directions. Eventually the hamburger stand guy said "well gee, come to think of it you can't get there from here." This concept tickled my fancy. Consider the task of getting to my brothers place in Western Australia from my home in Melbourne, a distance of some several thousand miles.

YouCantGetThereFromHere,

For a start I don't actually remember the name of the street he lives in. I would have to go home first and look it up Then I would know what to do next. Then I would go to the train station and buy a ticket to Perth. Why Perth? When he lives in a town near Northam? because You CantGetThereFromHere?, the man at the window does not know how to get to Northam so first you must try to get to Perth then when you are in Perth you catch a Bus to Notham thumb a ride to Bolgart, buy map and walk to his place.

The analogy to software development is not good but in software development there are several YouCantGetThereFromHere scenarios.

Discover the User requirements. Sorry YouCantGetThereFromHere because first we must implement our best guess and show the users so that they will understand what they do want. This is what is wrong with BigDesignUpFront and right with ExtremeProgramming.

Design me a machine that computes algorithm X on quantity of Data Y in time Z. Sorry YouCantGetThereFromHere because first we must implement a spike solution to test just how long it takes to compute the worst part of the algorithm on one piece of Data and time it. Then we must think about the effects on Cache memory and paging and io bandwidth when we do it Y times and decide if we need any more SpikeSolutions to reduce the risk to an acceptable level and achieve the state of could possibly work as opposed to the current state which is might work if I guessed right.

AlanChristiansen


Sometimes it helps to think of a place you could get there from, and start from there instead.

See also AlternateHardAndSoftLayers. As in, if I had a language which could do this, I could express the solution thus and so.


Fascinating. One example that springs to mind is trying to optimize UniformlySlowCode.

The illogic of the statement (and of the Bugs Bunny cartoon) concerns me slightly. How do you define "here"? Really, YouCantGetThereFromHere needs some sort of cost metric, because you can get anywhere from anywhere given enough time and money. I guess the metric is "reasonableness" in the typical case.

For UniformlySlowCode the way out is to rewrite all the code, or to rewrite the compiler, or to buy a faster machine. If none of these options is acceptable, truly YouCantGetThereFromHere ... but if you really really need to be There then you have to accept some option and pay the price.


Isn't it amazing how describing not being able to get somewhere reveals the very route that will get us there? --WaldenMathews

Or partially describing the solution even if all the details are not worked out - such as WarpDrive


Some places you really can't get to. Realizing that YouCantGetThereFromHere can be extremely valuable information since it lets you know that it is TimeToPunt. There is no point in throwing more resources at a problem that really is insoluble.


See (MergeWith??) WouldntStartFromHere


EditText of this page (last edited June 29, 2005) or FindPage with title or text search