Let's say you have some software that I want to offer and sell to several clients. Now, the different clients may desire different customizations. At the same time, you would like new versions to benefit all your clients. Or most of them. But if there is too much customization, say, 10 different varieties for 10 different clients, I would have to do any program improvement 10 times, for the 10 different clients.
How is this situation handled? Are there any special programming tricks? About the only feasible options I see are
1. Abstain from customization; make the program as generic as possible.
2. If some clients insist on certain customizations, keep them on older versions. Treat it as a different software (compared to the general, non-customized, version).
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)