>That's where pyjamas, as an example, comes in: everything is abstracted. As issues are discovered, they are quickly patched to cover the anomaly, and off you go. This is a never-ending process: it's like cutting your grass, or weeding your garden. ("What does every garden need every day," goes the gardener's educational query. The answer? "Your shadow.")
My wife's immediate answer: "so... a cutout." Her next project goes under working title "lazy bum's gardening".
>There doesn't have to be, and will never be (because of system complexity) a single answer. The solution is a systems solution: build in a framework that allows an easily acted upon corrective loop. Much like a gardener arranging the garden to allow easy weeding. <s>
Or, even better, gardener with neat tricks to persuade the weeds to grow elsewhere.
Just this afternoon I had to revisit a little side project I wrote two years ago. For once, I wasn't disgusted at the style, wasn't disappointed with the lack of robustness and whatnot... on the contrary. But then the code was simplified about five notches beyond the usual. Minimal on features, maximal on reliability. The luxury of writing like that is, unfortunately, not affordable nowadays; we're forced to write complicated pyjamas.