Languages

Erudis - your road to knowledge
Wstęp

Artykuł jest poświęcony zarządzaniu zmianami w projekcie informatycznym. Jest to niezwykle ważny element projektu informatycznego, który w dużym stopniu ułatwia i usprawnia pracę całego zespołu, pozwala tworzyć oprogramowanie lepszej jakości.

Rozpoczniemy od ogólnego wprowadzenia do tej tematyki, które pokazuje wagę omawianych kwestii, a także charakterystyczne cechy, jakie powinny mieć narzędzia wspomagające zarządzanie zmianami.

Następnie przejdziemy do bardziej szczegółowych rozważań oraz konkretnych i praktycznych przykładów.

Zarządzanie zmianą składa się z dwóch podstawowych elementów:

  • kontroli wersji
  • śledzenia błędów i zmian

Zajmiemy się najpierw wersjonowaniem kodu.

Projekty informatyczne stają się coraz bardziej skomplikowane, trwają coraz dłużej, wymagają efektywnej i dobrze skoordynowanej współpracy zespołu specjalistów.

Jednym z najbardziej podstawowych sposobów na usprawnienie komunikacji w zespole jest użycie narzędzi do wersjonowania kodu źródłowego programów, dokumentacji oraz wszelkich innych plików powstających przy wytwarzaniu produktu (np. grafika, podręcznik użytkownika, itp.).

Kontrola wersji pozwala na śledzenie zmian wnoszonych przez poszczególnych członków zespołu, umożliwia, w razie potrzeby, przywrócenie poprzednich wersji oprogramowania, pozwala zablokować dostęp do wybranych zasobów tak, aby dwie lub więcej osób nie modyfikowały jednocześnie tego samego pliku, co może mieć niepożądane konsekwencje.

Potrzeba użycia systemu kontroli wersji znalazła się na pierwszym miejscu wśród czynników poprawiających sprawność zespołu programistów w opinii znanego programisty i publicysty Joela Spolskyego: Test Joela: 12 kroków ku lepszym programom [http://polish.joelonsoftware.com/Articles/TheJoelTest.html].

Wykorzystanie narzędzi do zarządzania zmianą w kontekście wprowadzania w firmie systemów jakości jest opisane w artykule Zarządzanie zmianą: podstawa Modelu Dojrzałości Organizacyjnej (CMM/CMMI) [http://www.erudis.pl/artykuly/scmcmm].

 

Kolejnym sposobem usprawnienia pracy zespołu jest wykorzystanie narzędzie do śledzenia błędów i zmian w projekcie. Jest rzeczą oczywistą, że oprogramowanie w czasie swojego cyklu życia, począwszy od wczesnej fazy projektowania systemu, poprzez etap budowania system, aż do wdrożenia kolejnych wersji u klienta będzie się zmieniało.

Zmiany te mogą wynikać pojawiających się nowych wymagań lub modyfikacji tych, które były już uwzględnione, albo być wymuszone przez wykrycie błędów.

Kluczową sprawą jest takie zarządzanie cyklem życia aplikacji, które gwarantuje, że zgłoszony błąd, czy zgłoszone nowe wymaganie, nie zostanie „zgubione”. Powinno ono być przydzielone odpowiednim osobom, które albo zajmą się poprawieniem błędów, albo, zanim problem zostanie przekazany programistą, ocenią jak bardzo kosztowne będzie wprowadzenie żądanych zmian.

Takie określenie trybu postępowania ze zgłoszonymi wymaganiami nazywa się często zdefiniowaniem reguł przebiegu pracy (ang. workflows).

Wprowadzenie procedur zarządzania zmianami w projekcie owocuje wzrostem produktywności zespołu. Każdy wie, czym powinien się zająć, co więcej, można rozłożyć równomiernie obciążenie pracą, gdyż wiadomo kto ma ile przydzielonych zadań. Ponadto użycie odpowiednich narzędzi powoduje, że tworzenie wszelkich raportów, podsumowań staje się bardzo proste – można je wygenerować jednym przyciśnięciem klawisza.

Z drugiej strony także klient jest zadowolony, ponieważ istnieje jasny tryb zgłaszania błędów bądź próśb o uzupełnienie produktu o nową funkcjonalność. Wiadomo, kto na danym etapie prac zajmuje się określonym zgłoszeniem, kto powinien poinformować klienta o tym, że prace zostały ukończone i jest dostępna nowa, poprawiona wersja produktu.

Oczywiście w idealnej sytuacji narzędzie do śledzenia błędów i zmian jest zintegrowane z narzędziem kontroli wersji – pozwala to połączyć występujący błąd lub prośbę o dodanie funkcjonalności z kolejnymi wersjami konkretnych plików (np. kodu źródłowego), pozwala to tworzyć wersje produktu, które są zdefiniowane przez określoną funkcjonalność.

Warto zwrócić uwagę, że wersjonowania czy śledzenia błędów opłaca się używać nie tylko w przypadku dużych projektów, w których bierze udział kilkadziesiąt-kilkaset osób. Efektywne zarządzanie zmianą przynosi na prawdę znaczące korzyści również w przypadku niezbyt dużego projektu, w który zaangażowanych jest trzech czy czterech programistów.

Zajmijmy się teraz dokładniej kontrolą wersji.