Zgnilizna oprogramowania to powolna degradacja oprogramowania komputerowego w wyniku niepowodzenia w utrzymaniu jego aktualności w stosunku do reszty systemu komputerowego. Termin „gnicie oprogramowania” jest mylące, ponieważ oprogramowanie w rzeczywistości nie ulega rozkładowi; po prostu nie jest poprawnie aktualizowany, co sprawia, że działa wolniej i wydaje się, że się załamuje. Zwykle nie jest to zmiana nieodwołalna, a ponowna instalacja oprogramowania lub wprowadzenie skutecznych aktualizacji często może rozwiązać problem. W szerokim sensie ten rodzaj gnicia jest klasyfikowany jako aktywny lub nieaktywny, w zależności od wykorzystania oprogramowania.
Gdy oprogramowanie się starzeje, mogą wystąpić fizyczne problemy z jego bitami i kodowaniem. W większości przypadków to nie dzieje się w przypadku gnicia oprogramowania. Jednocześnie zmiany widoczne w obu problemach mogą być podobne, ponieważ oprogramowanie zwalnia i staje się mniej wydajne. Jedną z drobnych przyczyn jest nieużywane programowanie, które ma większą tendencję do gnicia w porównaniu z bardziej aktywnym kodowaniem.
Główną przyczyną gnicia oprogramowania jest to, że oprogramowanie nie uwzględnia już obecnego środowiska komputerowego. Może to być wynikiem słabych aktualizacji, które nie rozwiązują takich problemów, lub braku aktualizacji. Na przykład, jeśli istnieje program, którego działanie jest całkowicie zależne od określonej częstotliwości zegara, wówczas program ten stanie się mniej wydajny wraz ze wzrostem częstotliwości zegara wraz z lepszym sprzętem. Program nie wiedziałby, jak radzić sobie z większymi prędkościami i zacząłby gnić.
Zgniliznę w ten sposób zwykle można naprawić na dwa sposoby. Jeśli oprogramowanie nadal lub częściowo odzwierciedla obecne środowisko komputerowe, użytkownik powinien ponownie zainstalować program. Ma to możliwość usuwania artefaktów i przyspieszania programu tak, jak wyglądał, gdy użytkownik otrzymał go po raz pierwszy. Innym sposobem naprawienia gnicia oprogramowania jest aktualizacja programu, ale zwykle może to zrobić tylko programista, a aktualizacje powinny rozwiązać wszelkie problemy z funkcjonalnością.
Istnieją dwa główne rodzaje gnicia oprogramowania: nieaktywne i aktywne. Zgnilizna nieaktywna odnosi się do problemów z oprogramowaniem, które jest rzadko otwierane lub aktualizowane, co może powodować pojawianie się artefaktów lub program nie odzwierciedla potrzeb użytkowników i komputerów. Aktywna gnicie ma miejsce, gdy program jest używany i aktualizowany, ale aktualizacje albo nie odzwierciedlają zmian potrzebnych do odpowiedniego dostosowania się do środowiska komputerowego, albo oryginalny kod źródłowy został zmieniony tak bardzo, że pojawiają się problemy.