Идея очень простая: программирование — это творческий процесс. Хотя написание программы всегда подчиняется строгим законам логики, творческая составляющая программирования подразумевает, что в некоторых местах автор имеет свободу выбора: использовать тот паттерн программирования или иной, как организовать ветвление, какие определить перехватчики ошибок и т.д. Исследователей очень заинтересовали эти вариативные признаки.