Czytanie takiego kodu może być czasochłonne.

W przypadku programowania obiektowego, charakterystyczna jest mała liczba obiektów, które posiadają obszerną implementację bez jednoznacznie określonej odpowiedzialności (złamanie zasady jednej odpowiedzialności). Obiekty mogą nie posiadać parametrów, a w zamian mogą wykorzystywać zmienne globalne. Taki kod z biegiem czasu nie okazuje się , wprowadzając powtórzenia kodu (wbrew zasadzie DRY). Powtarzające się fragmenty kodu mogą dodatkowo utrudniać jego utrzymanie, choć sama duplikacja kodu nie jest równoznaczna z kodem spaghetti.

Kod spaghetti może charakteryzować się stosowaniem podejścia proceduralnego w programach tworzonych w paradygmacie obiektowym.

Historia Kod spaghetti był charakterystyczny dla wczesnych języków proceduralnych, typu Fortran czy BASIC, popularnych jeszcze przed powstaniem metody programowania strukturalnego. Używano wtedy wielu instrukcji warunkowych, z zagnieżdżonymi wewnątrz konstrukcjami GOTO i wyjątków.