Perancangan arsitektur sebuah software bukanlah pekerjaan yang mudah. Salah satu faktor utama kesulitannya adalah sulitnya mengubah arsitektur software setelah diputuskan di awal project. Kesulitan tersebut diperparah dengan kenyataan bahwa sebagian besar arsitektur software yang ada sekarang cenderung mengutamakan permasalahan teknis daripada permasalahan para programmernya — yang boleh dibilang adalah pengguna dari sebuah arsitektur software.
Trygve Reenskaug dan James Coplien menyadari permasalahan tersebut dalam membangun paradigma DCI (Data, Context, and Interaction). Jika dijelaskan secara singkat, DCI dapat disebut sebagai pengembangan lanjutan dari OOP (Object-Oriented Programming) yang lebih programmer-friendly. Penjelasan lebih lanjut dapat Anda dapatkan dengan datang pada techtalk ini.