The technology strategy that soon died of old age
Only a couple of years ago my company decided to build a website platform. A toolbox of features that are used on our many websites in order to reuse rather than to reinvent.
What sounds like a good idea is no longer actively used though..
It started a little over five years ago. We’ve chosen symfony 1 as our base framework on top of which we developed loads of plugins for integrating a CMS or providing comments on articles. We used it for almost 20 websites in total in the following three years and it is still in use in about 10.
But nobody would seriously consider it for a new website nowadays. And for good reasons.
- symfony 1 was long replaced by totally incompatible Symfony 2
- many developers who created the existing plugins have moved to other employments by now
- and so have many of the people who had the requirements for said plugins
- developers don’t fancy working with symfony 1 anymore
- many open source plugins are no longer maintained and not many get created
There is only one project left, which more or less actively uses this platform and it has a good reason for it. It’s basically a working website for one of our brands and we license this brands to other countries. So the platform is not strictly used for new developments but for cloning the existing website for use in a different country. However the developers working on it are mainly dealing with bug fixes and translations and feel horribly unchallenged.
While working on this platform I realized that the more websites were using it the harder was keeping all of them up to date which is necessary to keep the platform beneficial. New developments to the framework (symfony 1.1, 1.2 and 1.4) that break backwards compatibility are hard to regard when multiple websites need to be updated.
Such a common platform strategy aims to save costs and make room for innovation by reusing existing components. Building it however is an initial investment that needs to be left in the equation. To be beneficial you need to get many projects onto the platform and keep them up to date for as long as possible.
Unfortunately the more projects are using it the more difficult become changes to the core platform. While you’re always able to add new stuff changes to the existing features can be pretty hard and while movement gets slower your code base becomes legacy.
I would chose the platform strategy again. But only for certain environments. The one we started out with this strategy didn’t work out for.