Log in

No account? Create an account
Gavin Greig [userpic]

Bridge Or A Rope-Slide?

July 2nd, 2012 (09:19 pm)
current location: KY16 8SX

For a while when I was at school, some friends and I had a make-shift aerial runway in the woods above the village. There was a rope stretched across a burn from one tree to another, descending from the high bank on one side to a lower, flatter area on the other. We found a sturdy forked stick, put it over the rope so that we could grab one branch in either hand, and then flung ourselves off the higher bank and slid down the rope to the other side.

In the Scouts, we took aerial runways a bit more seriously, and A-frames and pulleys were involved.

An aerial runway can be a quick and efficient way to get fairly small numbers of people and things across an awkward waterway, especially if you’re going one way and your side is higher than the other. For some circumstances it will be absolutely the best way to get across that river.

If you start relying on a network of rope-slides to move your army around though, you’ll quickly find there are some drawbacks. Even though each crossing might be fast, getting off one rope-slide and onto the next one is not as convenient as it might be; the pulley has to be drawn back across before the next person can go; and if you want to cross the river repeatedly, in both directions, and maybe transporting more than the tensile strength of a rope will bear, it doesn’t take long before you start thinking in terms of building a bridge instead – quite possibly a seriously engineered bridge, with a proper road on top.

A quick fix in code is a bit like a rope-slide. It’s fast; it gets you from A to B; and it can even be quite exhilarating. Woohoo! I did it! Look at me, Ma! But maybe a network of rope-slides is not what your product needs.

It can be difficult to explain to non-developers the effect that applying a quick fix can have on the long term prospects of the code. If given the choice between a solution that’ll work now but cause problems in the long term, and one that will take a bit longer to deliver but save time in the future, the more far-sighted solution seldom gets a look in.

Maybe the rope-slide/bridge metaphor is a good way of explaining that decision. Yep, it’s OK to set up the odd aerial runway when the occasion demands it. But if you find yourself building nothing but rope-slides, something has gone far wrong. It might be worth keeping a comparative count of rope-slides and bridges just to check that you’re not trying to transport an entire army around on gravity, A-frames and pulleys.