Я работал на пару компаний в аналогичном пространстве - программное обеспечение продукта, но очень сильно настроенное.
По сути, есть решение, которое необходимо принять компании - вы производите продукцию (то есть вы отправляете одинаково каждому клиенту) или вы работаете на заказ. На данный момент кажется, что они между двумя табуретами и хотят, чтобы экономика компании, производящей продукты, способная удовлетворить конкретных клиентов, требовала того, что может сделать специализированная компания по разработке программного обеспечения.
Предполагая, что компания хочет быть компанией, занимающейся разработкой программного обеспечения, если нет особых технических причин, по которым вы не можете этого сделать, вам необходимо перейти к единой базе кода с изменениями для каждого клиента с помощью настраиваемых параметров (т. Е. Флагов, говорящих как обрабатывается данная конкретная ситуация, доступна ли эта функция и т. д.)
Они могут быть установлены во время выполнения (чтобы их можно было изменить по желанию клиента - подумайте о параметрах в Word или Excel) или во время сборки (чтобы код был включен / исключен при выполнении сборки), но это важно заключается в том, что каждый клиент должен быть извлечен из одной и той же базы кода.
Но это должно быть согласовано с бизнесом, поскольку оно ограничивает то, что они могут продать - каждое продаваемое изменение должно вписываться в общее видение, которое может быть реализовано одним продуктом.
Альтернатива заключается в том, что вы, по сути, производите программное обеспечение на заказ для каждого клиента (которое написано специально для того, что они хотят), но используете много общих библиотек. Это хорошо и позволяет вам производить что-то, что именно то, что они хотят, но в конце концов это будет больше работы, и бизнес должен понять и заплатить за это.
Мы на самом деле делаем и то и другое - есть серверный продукт, который идентичен для всех клиентов, а затем веб-и мобильные клиенты, которые являются специфическими для них (в случае с мобильным телефоном не может быть много мертвого кода на устройство - веб-материал является историческим и будет переходить на стандартный продукт для всех клиентов).
Удачи, это трудная проблема без простого решения.