Software systems of all kinds (enterprise, personal, social etc.) are built to  be used by a large number of organizations and users, each having unique needs. For personal systems, for instance, a default configuration is normally offered; if users want to fit the system better they resort to an “Options”, “Preferences” or “Customize” screen in which they need to comprehend a large number of configuration options and adjust them to their exact needs. Users need to find their way in matching their needs with what the “options” screen offers, which might be far from easy.

But how did developers come up with this “options” widget in the first place? In a rather ad-hoc way, seems to be the answer.. To date there does not seem to be a systematic way to design such configuration facilities.

We are looking at how high-variability, highly-customizable software systems can be systematically developed and customized. (more…)