Co to jest kryzys oprogramowania?
Kryzys programowy jest niezgodnością 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 narastającym problemem w XX wieku, gdy informatyka rosła skokowo, a oprogramowanie nie było w stanie dotrzymać kroku. Wraz ze wzrostem złożoności systemów rosną również potrzeby użytkowników, którzy oczekują coraz większej wydajności swojego oprogramowania. Programiści mogą mieć problemy z dotrzymaniem kroku, co powoduje kryzys oprogramowania.
Oprogramowanie konsumenckie zazwyczaj przechodzi przez powolną serię faz programowania, ale stanowi niewielką część działalności w branży. Większość rozwoju oprogramowania jest zatopiona w systemach dla konkretnych aplikacji, od programów obsługujących naprowadzanie pocisków na pokładzie krążowników morskich po wewnętrzne prowadzenie rejestrów dla zakładów ubezpieczeń zdrowotnych. To oprogramowanie na ogół wymaga znacznych inwestycji od klienta, a także obszernego programowania od personelu odpowiedzialnego za jego rozwój, testowanie i konserwację.
Takie projekty mogą wpaść 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ą mieć do czynienia z bieżącymi poprawkami błędów, ucząc się nowych aspektów systemu, dostosowując klienta i rozwiązując inne pojawiające się problemy. Niska jakość może stanowić problem, ponieważ programiści mogą odczuwać rosnącą presję, aby za wszelką cenę realizować budżety, nawet jeśli oznacza to, że oprogramowanie nie będzie dobrej jakości. Zwykle powstaje również mniej dokumentacji.
To nie jest tylko kwestia rozwoju nowych produktów oprogramowania. Innym problemem może być potrzeba utrzymania starszego oprogramowania, które może mieć problemy związane ze słabym rozwojem lub brakiem przewidywania rosnących potrzeb. Programiści mogą spędzać dużo czasu na utrzymywaniu starszego oprogramowania, aby firma mogła dalej działać. Dzięki dużym inwestycjom w starsze oprogramowanie firma może niechętnie zamawiać nowy program, nawet jeśli lepiej zaspokoi ich potrzeby, ponieważ może to wiązać się z większymi kosztami i problemami podczas przejścia na nowe oprogramowanie.
Nacisk na tworzenie złożonego, zaawansowanego kodu może mieć znaczący wpływ na kryzys oprogramowania. Kontrolowanie presji może być trudne przy jednoczesnym utrzymaniu kontroli kosztów i utrzymaniu harmonogramu. 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 pozostanie na zadaniu i koncentruje się.