La maggior parte degli sviluppatori di software professionisti conoscono le definizioni accademiche di accoppiamento, coesione e incapsulamento. Nonostante ciò, molti di questi si trovano in difficoltà quando devono mettere in pratica questi principi e trarre quindi i vantaggi da concetti come basso accoppiamento , alta coesione e forte incapsulamento. In