Every client required separate logic
The starting problem
Early deals were closed with promises of customisation, and parallel versions of one scenario appeared in the product.
Superficial decision
Continue implementing requirements for every contract and add feature switches without a shared model.
Product questions
Which of these requirements is a shared segment need, and which is an individual company process?
Architectural decisions
Extract the shared journey core, describe differences as rule-based configuration and keep the rest outside the product boundaries.
Economic consequence
Releases no longer depend on the number of exceptions, and new customers join the shared product.
