Think of a drunk man that continuously tumbles left and right, back and forth, with no final destination.
The 2 hardest problems in programming are naming, cache invalidation, and off-by-one errors.