background image

Narzędzia wspomagające 

zarządzanie projektem

Wojciech Gwiaździński, 

s2178

background image

Wprowadzenie

• Istotą zarządzania projektem jest zastosowanie wiedzy i narzędzi, które 

pozwolą na osiągnięcie zamierzonego  celu przy jednoczesnym 
wypracowaniu określonych korzyści. 

• Zarządzanie zmianami w projekcie informatycznym jest niezwykle ważnym 

elementem projektu informatycznego, który w dużym stopniu ułatwia i 
usprawnia pracę całego zespołu, pozwala tworzyć oprogramowanie lepszej 
jakości. 

• Dobry warsztat pracy projektowej musi zawierać szeroką paletę narzędzi 

odpowiednich dla każdej fazy zarządzania projektem. Istotna jest nie tylko 
znajomość narzędzi i metod, ale również wiedza dotycząca przydatności i 
zakresu ich stosowania. 

• Chodzi tu o przyjęte systemy planowania, nadzorowania, dokumentowania, 

konsultowania i sterowania projektem. 

background image

Narzędzia do zarządzania projektem (1)

• Na rynku istnieje wiele narzędzi informatycznych do wspierania funkcji 

zarządzania projektem, począwszy od aplikacji posiadających 
jednostkowe możliwości (takie jak generowanie harmonogramów do 
planu projektu) i narzędzi sprawozdawczych do złożonych 
wielofunkcyjnych programów (do zarządzania portfelami projektów w 
skali całej instytucji).

• Ze względu na liczbę proponowanych możliwości należy precyzyjnie 

określić oczekiwania i wymagania stawiane narzędziom. Zastanawiając 
się nad nabyciem określonego narzędzia, należy określić wymagania 
funkcjonalne w kategoriach „musi mieć” i „może mieć”, należy określić 
zakres cen oraz zagadnienia związane z pomocą techniczną oraz 
wsparciem technicznym, serwisem i wdrożeniem.

• Wiele funkcji związanych z zarządzaniem projektem można 

zrealizować wykorzystując proste programy biurowe, np. edytor 
tekstów lub arkusz kalkulacyjny, albo też poprzez najnowsze 
propozycje firm produkujących specjalistyczne oprogramowanie.

background image

Narzędzia do sporządzania planu i 

harmonogramu projektu (1)

Dobre narzędzie musi spełniać poniższe podstawowe 

wymagania

:

• określanie czasu trwania zadań projektu

• określanie terminów rozpoczęcia oraz zakończenia zadań – 

każdy projekt realizowany jest w pewnych ograniczeniach 

czasowych (ta funkcja umożliwia zapisywanie tych ograniczeń)

• określanie „kamieni milowych” – „kamień milowy” to 

wykonanie zadania o większym znaczeniu w toku realizacji 

projektu i odnosi się do czegoś znaczącego, np. zakup terenu 

pod parking wielopoziomowy lub zakończenie prac nad 

projektem architektonicznym („kamieniom milowym” nie są 

przypisywane odrębne środki ani terminy),

• przydział środków do realizacji zadań – narzędzie powinno 

pozwalać zarówno na przydzielenie określonego zasobu do 

każdego zadania, jak i sprawdzenie wysiłku włożonego w jego 

realizację

,

background image

Narzędzia do sporządzania planu i 

harmonogramu projektu (2)

• wskazanie stanu wykorzystania środków i zasobów – narzędzie 

powinno zawierać analizę ilustrującą stopień wykorzystania danego 

środka i zasobów, eksponując wszelkie zasoby i środki, których 

wykorzystanie przekracza 80%

• wyjściowy harmonogram projektu – to harmonogram w wersji przyjętej 

przez kierownictwo na początku projektu, nie zmienia się w trakcie 

realizacji projektu (harmonogram wyjściowy stanowi dla kierownika 

projektu punkt odniesienia, w miarę aktualizacji harmonogramu 

odzwierciedlającego rzeczywiste doświadczenia i modyfikacje 

wprowadzane do projektu)

• określenie ścieżki krytycznej – to wszystkie czynności, które muszą 

zostać ukończone w przewidzianych ramach czasowych, jeżeli projekt 

ma się zakończyć w terminie (zrozumienie ścieżki krytycznej jest 

konieczne do udanego zarządzania projektem, np. zmiany 

wprowadzone w trakcie realizacji projektu wywrą na niego znacznie 

większy wpływ, jeżeli dotyczą zadań znajdujących się na ścieżce 

krytycznej projektu)

• automatyczne modyfikowanie harmonogramu projektu uwzględniające 

postępy prac

background image

Zarządzanie sprzecznościami

(1)

      Zarządzanie sprzecznościami wspomagane jest mniejszą liczbą narzędzi i 

są one albo bardzo proste (mają charakter zmodyfikowanej listy) lub są to 
złożone aplikacje zintegrowane z narzędziami wspomagającymi planowanie 
projektu. Podstawowymi elementami niezbędnymi do zarządzania 
sprzecznościami są:

zapewnienie informacji dotyczących sprzeczności w układzie:

data identyfikacji

status sprzeczności

opis sprzeczności i kluczowy wpływ

priorytet (wraz ze wskaźnikami pilności i ważności)

osoba odpowiedzialna

termin rozwiązania sprzeczności

działania podjęte i zaplanowane

background image

Zarządzanie sprzecznościami

(2)

okres trwania sprzeczności – w miarę upływu czasu sprzeczności o niskim stopniu 
nasilenia mogą ulec zaostrzeniu (program powinien generować raporty na temat 
upływu czasu od wystąpienia danej sprzeczności, zwracając uwagę kierownika 
projektu na „starsze” sprzeczności), 

sporządzanie raportów według zróżnicowanych parametrów, 

np

.:

-sprzeczności nierozwiązane,
-wygasłe/niedotrzymane terminy,
-osoba odpowiedzialna za rozwiązywanie sprzeczności,
-kategoria,

dostarczanie informacji do raportów o stanie zaawansowania projektu,

zachowywanie spójności procesu oraz dokumentacja sprzeczności – można to 
osiągnąć dzięki rozwijanym

listom, edycji pól i obowiązkowym rubrykom do wypełnienia (to wymusza spójność 
opisu).

background image

Zarządzanie zmianą

(1)

Podobnie jak w przypadku zarządzania sprzecznościami, dostępne narzędzia 
do zarządzania zmianą są albo bardzo proste, albo bardzo złożone i 
zintegrowane z innymi narzędziami. Podstawowe wymagania, jakie stawia 
się przed oprogramowaniem wspomagającym zarządzanie zmianą, to:

zapewnienie informacji zawierającej następujące elementy

:

• data wniosku o wprowadzenie zmiany,
• imię i nazwisko osoby wnioskującej,
• powód proponowanej zmiany,
• opis zmiany,
• wpływ na projekt,
• status: nowy, przyjęty, odrzucony,
• termin podjęcia decyzji o przyjęciu/odrzuceniu,
• decyzja, uzasadnienie i podpisy,
• data przyjęcia lub odrzucenia,

background image

Zarządzanie zmianą

(2)

okres zmian – w miarę upływu czasu wpływ zmian jest zróżnicowany (zmiany 
będą zwykle bardziej poważne) i program powinien dostarczać raportów na 
temat upływu czasu od wystąpienia danej propozycji zmian, zwracając uwagę 
kierownika projektu na „starsze” propozycje zmian

sporządzanie raportów według zróżnicowanych 

parametrów, np:

 propozycje zmian, w odniesieniu do których nie podjęto decyzji (nie przyjęte, 

ani nie odrzucone),
– wygasłe/niedotrzymane terminy,
– osoba przydzielona do zajęcia się daną propozycją zmiany,
– kategoria,
– faza projektu,

dostarczanie informacji do raportów o stanie zaawansowania projektu,

zachowywanie spójności procesu oraz dokumentacji składania wniosków i 
aprobowania zmian. Można to osiągnąć dzięki rozwijanym listom, edycji pól i 
obowiązkowym rubrykom do wypełnienia, które wymuszają spójność opisu.

background image

Zarządzanie zmianą - szczegóły (1)

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

elementów:

 

- Kontrola wersji 
- Śledzenie błędów i zmian 

• 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.  

background image

Zarządzanie zmianą - szczegóły (2)

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. 

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”.

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. 

background image

Kontrola wersji – czym jest?

• Kiedy tworzymy program koncentrujemy się przede wszystkim na tym żeby 

uzyskać żądaną funkcjonalność z możliwie najmniejszą liczbą błędów. Ale w 
trakcie pracy poprawiając jedne błędy często tworzymy inne. 

• Pisząc tekst korzystamy z funkcji „Cofnij” edytora automatycznie, kiedy 

tylko jest nam potrzebna – nikt nie powie że funkcja „Cofnij” jest 
niepotrzebna. Ale gdy zamkniemy program to tracimy całą informację o 
zmianach w naszej pracy. 

• Kontrola wersji zapełnia tą lukę dodając taką historię. Historia zaś daje 

możliwość powrotu do dowolnego punktu w czasie tworzenia systemu. 
Kontrola wersji działa jak przycisk „Cofnij” w skali makro. 

background image

Jak działają systemy kontroli wersji? (1)

• Repository (repozytorium) – miejsce przechowywania plików w systemie 

kontroli wersji, niekoniecznie baza danych, często pewna specyficzna 

struktura katalogów z opisami. 

• Katalog roboczy – miejsce w którym znajdują się kopie lokalne plików 

nad którymi pracujemy. Najczęściej katalog na naszym komputerze. 

• Get (pobranie) – pobranie plików z repozytorium np.: z serwera 

• Check-in (wstawienie) – gdy skończymy zmieniać pliki to wstawiamy je 

na serwer, tak aby każdy mógł je pobrać w najnowszej wersji 

• Check-out (wybranie) – pobranie plików z serwera z zamiarem zmiany. 

Może być związane z jednoczesną blokadą. 

• Lock (blokada) – zablokowanie innym użytkownikom możliwości 

wybrania. 

• Label (etykieta) – oznaczenie nazwą grupy plików w celu łatwej ich 

identyfikacji 

• Branch (gałąź) – stworzenie alternatywnej linii wersjonowania. Pozwala 

to na rozwój tego samego pliku w różnych kierunkach, np.: wprowadzanie 

poprawek do starej wersji i dodawanie funkcji do nowej wersji. 

• Merge (połączenie) – łączenie dwóch kopii pliku w jeden. Może się 

odnosić do dwóch sytuacji: łączenia gałęzi i rozwiązywania konfliktów. 

background image

Jak działają systemy kontroli 

wersji? (2)

Przykładowy ciąg działań

Tworzymy repozytorium 

Dodajemy do niego pliki projektu 

Pobieramy (Get) pliki z repozytorium do katalogu 

roboczego 

Wybieramy (Check-out) pliki do edycji 

Zmieniamy to co potrzebujemy 

Sprawdzamy, że wszystko działa 

Wstawiamy (Check-in) zmienione pliki do repozytorium 

Jeżeli okaże się że ktoś zmienił plik, który wstawiamy to 

prawdopodobnie będziemy musieli połączyć (Merge) wersje. 

Jeżeli jeszcze coś jest do zrobienia to wracamy do punktu 4 

Jak widać praca z SKW z punktu widzenia użytkownika na 

podstawowym poziomie jest bardzo prosta. 

background image

Kontrola wersji c.d.

• często wstawiać pliki do repozytorium. Obecnie 

narzędzia do wersjonowania działają na poziomie 

pliku i tylko tam umieszczane zmiany są zauważane, 

dlatego częste wstawianie pozwala na dosyć 

dokładne określenie zmiany oraz tego czego ona 

dotyczy. 

• Wstawiać do repozytorium tylko te zmiany, które nie 

powodują problemów z kompilacją. Przed każdym 

wstawieniem wstawiający zobowiązany jest 

sprawdzić czy to co wstawia jest kompilowalne. Jeżeli 

pracujemy na wielu plikach, przydatne może być 

korzystanie z prywatnych gałęzi kodu oferowanych 

przez niektóre narzędzia (np. Surround SCM) 

background image

Przykładowe narzędzia KW

SurroundSCM - Bardzo wszechstronny i działający na wielu platformach system kontroli 

wersji. Pliki do repozytorium są wstawiane transakcyjnie, jest możliwość blokowania plików 

oraz etykietowania grup plików. Duże bezpieczeństwo dzięki działaniu w trybie klient-serwer. 

Dzięki połączeniu z TestTrackPro daje możliwość identyfikowania zmian w kodzie z żądaniami 

użytkowników. Polecam. 

Visual SourceSafe - repozytorium oparte o pliki, nie działa w modelu klient-serwer. 

Problemem na który często narzekają użytkownicy jest konieczność częstego naprawiania 

bazy plików. Nie posiada transakcyjnego wstawiania plików. 

CVS - prawdopodobnie najbardziej rozpowszechniony system zarządzania wersjami plików. 

Może pracować zarówno w trybie serwera jak i plikowo na jednej maszynie. Wadą jest brak 

możliwości przeniesienia pliku w strukturze z zachowaniem wersji, oraz brak możliwości 

zmiany nazwy pliku. Kolejną wadą jest także konieczność sztywnego zaprojektowania 

struktury katalogów, ponieważ nie są one wersjonowane. Brak transakcji przy wstawianiu 

plików może prowadzić do poważnych problemów. Zaletą jest to że CVS istnieje już tak 

długo że wszystkie błędy są już znane. Zaletą i wadą jest przechowywanie pełnych wersji 

plików. Zaletą bo łatwo naprawić repozytorium, wadą bo trzymanie w ten sposób dużego 

projektu może być koszmarem i zajmować bardzo dużo miejsca. Nowoczesne systemy 

przechowują różnicę pomiędzy wersją poprzednią a bieżącą, albo wykorzystują pewną 

mieszankę obu podejść, przechowując pełne pliki co pewną ilość wersji.

Subversion - nowy system wersjonowania, niedawno wszedł w wersję 1.0. Powstał z myślą 

o naprawieniu problemów występujących w CVS. Wadą jest brak możliwości blokowania 

dostępu do pliku i brak informacji o tym kto dany plik edytuje oraz brak możliwości 

etykietowania grup plików. Tworzenie etykiety działa na całe repozytorium i tworzy nowy 

katalog z bieżącą wersją

 plików. 

background image

Podsumowanie

• Optymalne wykorzystanie zasobów osobowych

Systemy pozwalają tworzyć zespoły projektowe z wykorzystaniem 

zarówno wewnętrznych, jak i zewnętrznych zasobów ludzkich. Każdy 

zespołów otrzymuje wirtualną przestrzeń, w której są tworzone i 

przechowywane informacje na temat prowadzonego projektu. 

• Indywidualne miejsce pracy

Systemy stwarzają każdemu członkowi zespołu indywidualne miejsce 

pracy. 

Użytkownik ma w nim dostęp do najnowszych informacji na 

temat głównych 

etapów realizowanego projektu oraz dokumentacji 

związanej z projektem. 

• Szczegółowa kontrola zespołów projektowych

Systemy mogą delegować zadania poszczególnym członkom zespołu 

oraz  pozwalają sprawować kontrolę nad czasem ich realizacji. 

• Synchronizacja działań zespołu projektowego

Członkowie zespołów mogą otrzymywać wiadomości. Systemy 

zabezpieczają 

przed utratą cennych informacji uzyskanych 

podczas spotkań i nieformalnych 

rozmów, przybliżają wzajemną 

współpracę, gromadząc w sposób 

uporządkowany wszystkie 

pomysły i komentarze dotyczące poszczególnych  tematów. 


Document Outline