After trying to adapt the inherited Madrid platform to the Barcelona City Council needs, we quickly realized there were some serious challenges —practically every aspect was specifically tailored to the Madrid City Council needs.
However, the major problem we saw wasn't in maintainability and customization —it was in the process of porting to other councils and organizations. It was a monolithic codebase that needed to be forked for every new installation, as each organization required its own modifications. In practice, any new code upstream would rarely end up in every installation, as merging changes became more difficult and less worthwhile —and so installations were gradually diverging.