Cykl życia programu – seria kolejnych zmian programu, w trakcie których odbywa się sukcesywne dodawanie nowych funkcji oraz usuwanie powstających w trakcie rozwoju błędów.
Etapy rozwoju
Zasadniczo cykl życia kolejnych wersji programu można podzielić na następujące etapy:
wersja niestabilna (testowa) – seria wydań, podczas której dodawane są przede wszystkim nowe możliwości:
wersja alfa, podczas której autorzy doprowadzają do rzeczywistego działania programu, nawet w ograniczonym zakresie
wersja beta, kiedy program ma już pierwszych użytkowników, zwanych często beta-testerami, i wyłapywane są błędy związane z różnymi środowiskami i warunkami pracy programu
RC (ang.Release Candidate, czyli Kandydat do wydania) – wydanie kandydujące, których może być nawet kilka, ale jeżeli nie zostanie w nim znalezione żadne istotne odstępstwo od planu wersji, zmienia się jedynie numer wersji na wyższy i uznaje wersję za stabilną
wersja stabilna (wersja produkcyjna) – wersja nadająca się do użytkowania zgodnie z założeniami autorów
wersje stabilne z poprawkami bezpieczeństwa lub innych błędów
ostatnim etapem jest zwykle starzenie moralne programu i porzucenie przez autorów, co zwykle kończy jego życie (w przypadku kodu na licencjachFLOSS ten stan może w dowolnym momencie ponownie przejść do fazy aktywnego rozwoju, jeśli tylko znajdą się chętni do przejęcia opieki nad nim, lub wykorzystają fragmenty kodu w innej aplikacji)
Zależnie od projektu niektóre fazy życia programu mogą nie być tak oznaczane, można natomiast mówić w tych kategoriach o jakości kodu (np. kod beta oznacza wtedy po prostu program, w którym zaniedbano testowania na rozmaitych platformach sprzętowych i programistycznych).