Old Code

Programmers love to come up with neat new simple clean beautiful elegant little systems for doing things. It’s the most fun. It makes one feel like the world is actually nice and ordered and will obey rules.

Then, the world intrudes and asks for little tweaks here and there, and we incorporate them — trying to keep them conforming to the original simplicity and rightness, and thinking that by doing so the original integrity is just being strengthened and confirmed. The world wants to fit this system, because the system is Right.

Hm.

Then, the requests for modification keep coming, and the One True System starts bulging in quarters where it was meant to be straight, and not curving so fair elsewhere. The refining starts to feel like compromising. But that’s all okay, because the bones of the thing are pure… maybe all of this new stuff belongs in plugins, anyway?

No. The truth (not the Truth, though) seems to be that the only system that fulfills its purpose (I was going to write ‘its brief’, but there’s seldom any such thing) is one that has grown and been adapted and changed, customised beyond recognition, and tweaked until the tweaks are more than the core… we don’t get to work with beautiful code, but with old code, and it’s old code that needs the love and devotion and acceptance. It’s not going to be replaced wholesale, no matter that Management might thing that’s a good idea.