Keď koncipujeme nový softvér, zvyčajne sa sústredíme na jeho funkcie a vplyv na spoločnosť a jej príjmy. Funkcionalitu členíme na požiadavky, prvky, užívateľské príbehy a integrácie. Keď však dôjde na samotný vývoj daného softvéru, premýšľame inak. Vývojár sa najčastejšie zameriava na inú otázku: „Aké sú tu nefunkčné požiadavky?“.