The forum software is indeed old, but it's running on a recent operating system version, a recent version of PHP and a recent MySQL database all of which were released way later, so it wasn't originally developed for / tested with. Between PHP 4 and PHP 5, and between MySQL 3.23.58 and 5.6 there have been some compatability issues / changes - not major ones, but never the less a couple of things such as the search are less good than they should be. Other rail forums have looked at upgrading / have upgraded, to the extent of archiving the old forum and starting afresh as they judged the upgrade impractical.
One of my paying customers has a suite of software written in Perl. Although the code is well written (remarkably so for Perl) it's old and shows signs of past battles to persuade in to behave in certain ways, with some obscure usages which even I with years of Perl am left starching my head about. On the grounds that (a) I don't have enough time and (b) you shouldn't rely on having a single technical source for your business, my customer also has another person working on the code (and the co-ordination works well). About 3 weekends ago, this other contractor installed a new Perl module on the customer's server - only to make it available for new work - but the effect was an incompatibility which broke the entire production site running on that server. As we had a backup of the application code and data, I was able to get the customer up and running again with a couple of days, sharing my server which had previously hosted a test / training / development version - but working out exactly what the issue was with the module on the "proper" server has proven to be a nightmare that's burned up several days of my time. As of 19:15 this evening, we have established exactly what the issue is, and tomorrow we'll be sorting it out. Then at the weekend I'll take the site down during Saturday night and move it back with the data.
Combining these two elements
If I were to add a module to SMF without risk to the forum being down for extended periods, I would be well advised to set up a mirror server, install it on there, make sure it was 100%, before upgrading the live server. I ain't got the time, and I'm not prepared to take the risk that my customer's other contractor took. Frankly, I'm surprised at the problems encountered - I wouldn't have expected them. But I wouldn't go so far as to say I was shocked, as I know what can happen, especially when running with different bits of software that have little compatability issues between releases.
I'm documenting the above to give you a flavour of why I cannot easily jump in and start adding features; if we had a permanent programming resource, we would probably also have a test suite using Gherkin and Cucumber, running continuos testing and integration under Jenkins, and be bringing our new features for you every two years (or more often if we could persuade you to by a new license for better software every 18 months
). As it is, it works well enough; like an old lady we treat her with respect, accept her foibles and she does us proud. And if you get tired of listening to the old lady and feeding her occasional foibles every day, you're perfectly free not to visit.