Zarządzanie wersjami
Zarządzanie wersjami – proces zawierający w sobie takie działania jak konsultowanie, planowanie oraz zarządzanie zmianami w danym produkcie lub usłudze. Zarządzanie wersjami charakteryzuje się koncentracją na wysokiej jakości rezultatów działań w ramach rozwijania usługi lub produktu od momentu inicjacji prac aż do publikacji [Howard 2012, s.1-2]. Celem tego podejścia jest przede wszystkim pewność, że poczynione w trakcie realizacji produktu zmiany zostały odpowiednio wdrożone w środowisku IT przy jednoczesnym minimalizowaniu ryzyka dla biznesowej strony przedsięwzięcia [Shanmugasundaram, Sarojini 2018, s. 5]. W ramach powtarzalnego i kontrolowanego procesu zarządzania wersjami wersje oprogramowania powinny być wydawane na czas, przy zachowaniu najwyższej jakości i zgodności z wymaganiami [Howard 2012, s. 1-2].
W zakres zarządzania wersjami wchodzą takie działania jak [Shanmugasundaram, Sarojini 2018, s. 5]:
- szybka implementacja zmian w oprogramowaniu przy jednoczesnym optymalizowaniu kosztów i zmniejszaniu ryzyka,
- wydawanie wersji według ustalonego harmonogramu oraz według kryteriów gotowości danej wersji, wśród których wymienia się m.in. jakość danej wersji, plan wdrażania i wycofywania, a także plan zarządzania ryzykiem,
- prowadzenie szkoleń i dokumentacji związanych z zapewnieniem wsparcia technicznego dla użytkowników wprowadzanej usługi lub produktu, mających na celu ułatwienie korzystania.
Metody związane z zarządzaniem wersjami stosuje się w organizacjach, które mierzą się z następującymi czynnikami [PMI]:
- złożona infrastruktura operacyjna,
- wiele zespołów pracujących równolegle,
- brak doświadczenia zespołów.
W przypadku złożonej infrastruktury operacyjnej istnieje wysokie ryzyko, że wdrożenie nowych funkcji do środowiska produkcyjnego uszkodzi oprogramowanie. Na tę złożoność wpływa m.in. stosowanie wielu różnych, mocno ze sobą powiązanych technologii.
W organizacji, gdzie pracuje wiele zespołów deweloperskich przy współdzielonym środowisku rośnie prawdopodobieństwo kolidowania ze sobą zmian wprowadzanych przez te zespoły.
Nowe zespoły często nie zdążyły nabrać jeszcze doświadczenia związanego z pracą w danym środowisku, tym samym będą potrzebowały pomocy przy wydawaniu wersji. Taka pomoc polegać może na wsparciu przy planowaniu, ustalaniu skutecznej strategii wydawania oraz koordynacji działań zespołu.
Proces
Za proces zarządzania wersjami odpowiada menedżer wersji (ang. release manager). Osoba na tym stanowisku zajmuje się doprowadzeniem prac nad wersją aż do jej pełnej gotowości do publikacji. Ustala również cele poszczególnych etapów prac nad daną wersją [Shanmugasundaram, Sarojini 2018, s. 5]. Wyróżnia się również taką rolę jak menedżer projektu wersji (ang. release project manager), który wraz z menedżerem wersji i innymi kluczowymi interesariuszami może stanowić zespół planowania wersji (ang. release planning team) [Rasa, Wahida Banu 2019, s. 21].
Proces zarządzania wersjami składa się z następujących podprocesów [Rasa, Wahida Banu 2019, s. 21-24]:
- planowanie wersji,
- projektowanie, tworzenie oraz konfigurowanie wersji,
- akceptacja wersji,
- dystrybucja i instalacja wersji.
Podczas planowania wersji powinno się wziąć pod uwagę wszystkie jej aspekty. Menedżer odpowiedzialny za wydanie kompletuje zespół, wraz z którym definiuje podejście i zakres prac nad daną wersją. Te następnie dokumentuje się w planie wydania. Jeżeli plan zostanie zaakceptowany przez decyzyjne osoby w organizacji, zespół przystępuje do kolejnego etapu.
Etap projektowania, tworzenia i konfiguracji wersji poddawany jest ciągłej weryfikacji przez menedżerów, którzy sprawdzają stan realizacji zadań danych zespołowi. Ustala się także plan testów. Po stworzeniu wersji dokonuje się przeglądu planu, a także naprawia błędy, które napotkano. Jeżeli wersja jest już w pełni sprawna, plan wersji zostaje przekazany menedżerowi wersji do ostatecznego zatwierdzenia. Następnie testuje się zaakceptowaną wersję i planuje działania związane z wdrożeniem wersji do użytkowników.
Nim to jednak nastąpi, wersja musi się spotkać z akceptacją interesariuszy biznesowych oraz pracowników IT w ramach testów akceptacyjnych. Wyniki testów są dokumentowane oraz porównywane do wyników oczekiwanych. Jeżeli wyniki są satysfakcjonujące przystępuje się do wdrożenia wersji. Finalizuje się wówczas plan wydania, który zostaje jeszcze zweryfikowany przez menedżera wersji. Następnie rozpoczyna się etap instalacji i dystrybucji.
Wdrożoną wersję wysyła się do kierownika projektu wydania, który weryfikuje zgodność wersji z założonymi kryteriami. Na tej podstawie określa się, czy cały proces zakończył się pomyślnie. W przeciwnym przypadku inicjuje się proces zarządzania zmianą.