Co to jest inżynieria wydań?

Inżynieria wydania, czyli relen, to proces przygotowania gotowego oprogramowania komputerowego do dystrybucji. Może to obejmować wiele oddzielnych dyscyplin programistycznych i inżynieryjnych, a nie wszystkie definicje inżynierii wydań są takie same w różnych firmach. Niektóre z zadań, które mogą być zaangażowane w inżynierię wydania, obejmują kompilowanie kodu źródłowego, śledzenie i konserwację narzędzi i środowisk programistycznych, utrzymywanie biblioteki wydań przez cały okres życia programu, a czasami wdrażanie oprogramowania na aktywnym serwerze lub systemie. Kilka korzyści płynących z posiadania dedykowanego inżyniera wydań w cyklu tworzenia oprogramowania to lepsze wrażenia dla użytkowników końcowych — ponieważ najpierw testowane są metody wydawnicze — lepsza ogólna dokumentacja programu podczas aktualizacji oraz rodzaj kontroli jakości w sytuacjach, w których różne części programu pochodzą z oddzielnych źródeł.

Podczas tworzenia oprogramowania przychodzi moment, w którym aplikacja jest kompletna i musi zostać rozesłana do klientów lub zainstalowana na aktywnym serwerze, aby można było z niej korzystać. Bez inżyniera wydania proces ten może wymagać skompilowania programu przez programistów za pomocą narzędzi programistycznych, a następnie przeniesienia plików binarnych na docelowy nośnik lub serwer. Niektóre z problemów, które można napotkać w tym procesie, polegają na tym, że program może mieć zależności, które nie są skwantyfikowane, niektóre zmiany mogą zostać zapomniane lub ostatecznie proces może niekoniecznie być odtwarzalny w przyszłości.

Jedną z największych części inżynierii wydań jest śledzenie postępów w rozwoju programu. Może to oznaczać użycie systemu wersjonowania lub użycie innego oprogramowania nie tylko do śledzenia i oznaczania każdego etapu programu podczas jego tworzenia, ale także do przechowywania migawek programu, aby można je było później przywołać. Oprócz obsługi samego kodu źródłowego pomyślne zbudowanie programu wymaga również przechowywania informacji o używanych narzędziach i różnych bibliotekach lub innych wykorzystywanych zasobach. Ostatecznym celem jest możliwość ponownej kompilacji programu na dowolnym etapie jego tworzenia, niezależnie od systemów programistycznych użytych do jego stworzenia.

Inną możliwą częścią inżynierii wydań jest przygotowanie aplikacji do dystrybucji do klientów. Po skompilowaniu programu do postaci binarnych opracowywane i badane są metody instalowania programu na komputerze użytkownika końcowego. Może to obejmować napisanie programu instalacyjnego lub przetestowanie programu w różnych sytuacjach, jeśli jest on uruchomiony, aby upewnić się, że działa zgodnie ze specyfikacjami. Inżynieria wydania czasami obejmuje faktyczne wielokrotne instalowanie programu w wielu systemach, aby zapewnić, że różne konfiguracje lub błędy są obsługiwane we właściwy sposób.