I was supposed to write a blog post this weekend just past, but I didn't. Normally I would be writing one right now, but my mind is occupied. There is a system we use here at the library, based on an ancient iteration of a GPL'd open-source software package. Of course our system has been customised a whole lot over the years, and has deviated from its original fork almost as much as the official package itself has, albeit in completely different directions. And, of course, it's rubbish. Well, not rubbish, but it's not great. Our requirements have shifted over time, technology has moved on, and as inevitably happens to old software packages – especially when software engineering best practices aren't necessarily at the forefront – the code has started to develop a texture somewhere between spaghetti and concrete. The only features I can add now are relatively small, or – more significantly – localised, and my most common changes are costmetic updates and bugfixes. For some reason the bugfixes never seem to end.
In short, I want to rewrite.
Before I undertake such a large ... undertaking, I want to be sure of what I'm doing. Let me enumerate some concerns and risks:
These points are specific to me and to this project, but I believe they can be generalised and applied to any significant works. Please comment below if there is a point or concern you (or your boss) usually consider before leaping into something.
And, with those points expressed and rationalised and evaluated, I can conclude that I should not, in fact, rewrite our service's front end, no matter how much I may want to.
At least, not while I'm at work.