Co to jest kryzys oprogramowania?

Kryzys oprogramowania to niedopasowanie między tym, co może dostarczyć oprogramowanie, a możliwościami systemów komputerowych, a także oczekiwaniami ich użytkowników. Stało się to rosnącym problemem w XX wieku, ponieważ komputery rosły skokowo, a oprogramowanie nie było w stanie nadążyć. Wraz ze wzrostem złożoności systemów rosną również potrzeby użytkowników, którzy oczekują od swojego oprogramowania coraz większej wydajności. Programiści mogą mieć trudności z dotrzymaniem tempa, powodując kryzys oprogramowania.

Oprogramowanie konsumenckie zwykle przechodzi przez serię powolnych faz rozwoju, ale stanowi niewielką część wolumenu działalności w branży. Większość opracowywanego oprogramowania jest zatopiona w systemach do określonych zastosowań, począwszy od programów obsługujących naprowadzanie pocisków na pokładach krążowników morskich po wewnętrzne rejestry dla firm ubezpieczeniowych. To oprogramowanie zazwyczaj wymaga znacznych inwestycji ze strony klienta, a także obszernego programowania ze strony personelu odpowiedzialnego za jego rozwój, testowanie i konserwację.

Takie projekty mogą popaść w kryzys oprogramowania, w którym zaczynają przekraczać budżet i trwają znacznie dłużej, niż oczekiwano. Programiści pracujący nad oprogramowaniem mogą być zmuszeni do radzenia sobie z bieżącymi poprawkami błędów podczas uczenia się nowych aspektów systemu, wprowadzania poprawek dla klienta i rozwiązywania innych pojawiających się problemów. Niska jakość może być problemem, ponieważ programiści mogą odczuwać rosnącą presję, aby za wszelką cenę sprostać budżetom, nawet jeśli oznacza to, że oprogramowanie nie będzie dobrej jakości. Zwykle powstaje również mniej dokumentacji.

To nie tylko kwestia rozwoju nowych produktów oprogramowania. Innym problemem może być konieczność utrzymywania starszego oprogramowania, które może mieć problemy związane ze słabym rozwojem lub nieprzewidywaniem rosnących potrzeb. Programiści mogą spędzać dużo czasu na utrzymywaniu funkcjonalności starszego oprogramowania, aby firma mogła nadal działać. Przy dużych inwestycjach w starsze oprogramowanie, firma może niechętnie zamawiać nowy program, nawet lepiej spełniający ich potrzeby, ponieważ może to wiązać się z większymi kosztami i problemami podczas wymiany.

Nacisk na tworzenie złożonego, zaawansowanego kodu może mieć znaczący wpływ na kryzys oprogramowania. Kontrolowanie presji przy jednoczesnym utrzymaniu kosztów pod kontrolą i utrzymywaniu harmonogramu może być trudne. Niektóre środki radzenia sobie z kryzysem oprogramowania mogą obejmować znaczne zaawansowane planowanie, wybór wysoko wykwalifikowanego personelu i bieżące aktualizacje, aby upewnić się, że projekt pozostaje na zadaniu i koncentruje się.