Zarządzanie przedsięwzięciami Organizowanie, planowanie i
tworzenie harmonogramu
projektów oprogramowania
Inżynieria oprogramowania - 4
Slide 1
●
Wprowadzenie do zarządzania przedsięwzięciem programistycznym i opis jego wyróżniających się właściwości
●
Omówienie planowania przedsięwzięcia i procesów planowania
●
Pokazanie używanej przez menadżerów projektów graficznej reprezentacji harmonogramów przedsięwzięcia
●
Omówienie notacji zagrożeń i procesu zarządzania zagrożeniami
Inżynieria oprogramowania - 4
Slide 2
●
Czynności zarządzania
●
Planowania przedsięwzięcia
●
Tworzenie harmonogramu przedsięwzięcia
●
Zarządzanie ryzykiem
Inżynieria oprogramowania - 4
Slide 3
Zarządzanie przedsięwzięciem programistycznym
●
Obejmuje działania mające na celu zapewnienie, że oprogramowania zostanie dostarczone na czas i zgodnie z wymaganiami odbiorcy
oprogramowania
●
Zarządzanie projektem jest potrzebne ponieważ tworzenie oprogramowania podlega
ograniczeniom budżetowym i czasowym
ustalonym przez firmę budującą oprogramowanie Inżynieria oprogramowania - 4
Slide 4
Cechy szczególne zarządzania programowaniem
●
Produkt jest nieuchwytny
●
Produkt jest wyjątkowo elastyczny
●
Inżynieria oprogramowania nie jest
rozpoznawana jako dyscyplina inżynierii o takim samym statusie jak np. inżynieria maszyn
●
Proces tworzenia oprogramowania nie jest standaryzowany
●
Wiele przedsięwzięć programistycznych to projekty jednorazowe
Inżynieria oprogramowania - 4
Slide 5
●
Opracowywanie oferty
●
Planowanie i tworzenie harmonogramu projektu
●
Szacowanie kosztów przedsięwzięcia
●
Monitorowanie i ocenianie przedsięwzięcia
●
Wybór i ocena personelu
●
Opracowywanie raportów i prezentacji
Inżynieria oprogramowania - 4
Slide 6
Wspólne elementy procesów zarządzania
●
Działania, które nie są specyficzne wyłącznie dla zarządzania procesem wytwarzania
oprogramowania
●
Wiele technik inżynierii zarządzania
przedsięwzięciem w równej mierze daje się zastosować do zarządzanie przedsięwzięciem programistycznym
●
Problemy napotykane w trakcie procesu
tworzenia oprogramowania są podobne do tych z jakimi borykają się inżynierowie przy budowie innych systemów
Inżynieria oprogramowania - 4
Slide 7
●
Może być niemożliwe desygnowanie najlepszych ludzi do pracy nad przedsięwzięciem
•
Budżet przedsięwzięcia nie pozwala na zatrudnienie dobrze opłacanego personelu
•
Personel o odpowiednim doświadczeniu nie jest dostępny
•
Firma oczekuje zwiększenia umiejętności pracowników podczas realizacji przedsięwzięcia
●
Menedżerowie muszą pracować zgodnie z tymi ograniczeniami szczególnie gdy istnieje ogólny brak wykwalifikowanej kadry IT
Inżynieria oprogramowania - 4
Slide 8
●
Prawdopodobnie najbardziej czasochłonne działanie zarządzania przedsięwzięciem
●
Ciągłe działanie od koncepcji wstępnej aż po dostarczenie systemu. Plany muszą być
regularnie korygowane gdy pojawiają się nowe informacje
●
Różne typy planów mogą być tworzone w celu wspomagania głównego planu przedsięwzięcia programistycznego
Inżynieria oprogramowania - 4
Slide 9
Typy planów przedsięwzięcia Plan
Opis
Plan jakości
Obejmuje procedury zapewniania jakości i standardy obowiązujące w przedsięwzięciu Plan zatwierdzania
Obejmuje podejście, zasoby i harmonogram zatwierdzania systemu
Plan zarządzania
Obejmuje procedury zarządzania konfiguracjami i konfiguracjami
używane struktury
Plan pielęgnacji
Przewiduje się w nim wymagania stawiane pielęgnacji systemu, jej koszty i niezbędne nakłady Plan rozwoju
Opisuje się w nim jak będą rozwijane umiejętności i umiejętności
doświadczenie personelu
personelu
Inżynieria oprogramowania - 4
Slide 10
Proces planowania przedsięwzięcia Establish the project constraints
Ustal ograniczenia przedsięwzięcia
Make initial assessments of the project parameters Wstępnie oszacuj parametry przedsięwzięcia Define project milestones and deliverables Skoryguj etapy i produkty
while project has not been completed or cancelled dopóki nie zrealizowano i nie anulowano przedsięwzię loop cia powtarzaj
Draw up project schedule
Opracuj harmonogram przedsięwzięcia
Initiate activities according to schedule Poczekaj (chwilę)
Wait ( for a while )
Zbadaj postępy przedsięwzięcia
Review project progress
Zrewiduj oszacowanie parametrów przedsięwzięcia Revise estimates of project parameters Zaktualizuj harmonogram przedsięwzięcia Update the project schedule
Renegocjuj ograniczenia i produkty przedsięwzięcia Re-negotiate project constraints and deliverables jeśli (pojawiły się kłopoty) to if ( problems arise ) then
Rozpocznij przegląd techniczny i dopuszczalne poprawki Initiate technical review and possible revision koniec jeśli
end if
koniec powtarzaj
end loop
Inżynieria oprogramowania - 4
Slide 11
Struktura planu przedsięwzięcia
●
Wprowadzenie
●
Organizacja przedsięwzięcia
●
Analiza zagrożeń
●
Wymagania stawiane zasobom sprzętowym i programowym
●
Podział pracy
●
Harmonogram przedsięwzięcia
●
Mechanizmy monitorowania i składania raportów Inżynieria oprogramowania - 4
Slide 12
●
Działania w przedsięwzięciu powinny być zorganizowane tak by można było dokonać oceny postępów na podstawie konkretnych efektów
●
Kamienie milowe (milestones) są punktami końcowymi czynności procesu tworzenia
oprogramowania
●
Produkty ( deliverables) to wyniki przedsięwzięć dostarczane klientowi
●
Proces kaskadowy ( waterfall) tworzenia oprogramowania pozwala na wyraźne zdefiniowanie postępów w postaci kamieni milowych
Inżynieria oprogramowania - 4
Slide 13
Etapy w procesie określania wymagań Czynności
Studium
Analizowanie
Tworzenie
Studium
Specyfikowanie
wykonalności
wymagań
prototypu
projektowe
wymagań
Raport
Wymagania
Raport
Projekt
Wymagania
wykonalności
użytkownika
oceniający
architektoniczny
systemowe
Etapy ( milestones)
Inżynieria oprogramowania - 4
Slide 14
przedsięwzięcia
●
Dzielenie przedsięwzięcia na zadania, szacowanie czasu i wymaganych zasobów potrzebnych do ukończenia każdego zadania
●
Organizowanie zadań równocześnie aby
zoptymalizować wykorzystanie siły roboczej
●
Minimalizowanie zależności pomiędzy zadaniami aby uniknąć opóźnienia w sytuacji kiedy jedno zadanie oczekuje na zakończenie innego
●
Zależy od intuicji i doświadczenia menedżerów przedsięwzięcia
Inżynieria oprogramowania - 4
Slide 15
Proces tworzenia harmonogramu przedsięwzięcia
Zidentyfikuj
Oszacuj
Przydziel
Opracuj
Zidentyfikuj
zależności
zasoby dla
zasoby do
wykresy
czynności
między
czynności
czynności
przedsięwzięcia
czynnościami
Wymagania
Wykresy czynności
stawiane
i wykresy paskowe
oprogramowaniu
Inżynieria oprogramowania - 4
Slide 16
Problemy przy tworzeniu harmonogramu przedsięwzięcia
●
Określenie trudności problemów i kosztów rozwiązania jest trudne
●
Produktywność nie jest proporcjonalna do liczby ludzi pracujących nad zadaniem
●
Zwiększania zasobów ludzkich w opóźnionych projektach powoduje ich dalsze opóźnienie z powodów zwiększonych nakładów czasu na komunikację
●
Zawsze zdarzają się rzeczy nieoczekiwane. Bierz pod uwagę taką możliwość podczas planowania Inżynieria oprogramowania - 4
Slide 17
Wykresy paskowe i sieci działań
●
Graficzne notacje używane do zilustrowania harmonogramu przedsięwzięcia
●
Pokazują rozdział przedsięwzięcia na zadania.
Zadania nie powinny być zbyt krótkie. Powinny zajmować około tygodnia lub dwóch
●
Sieci działań pokazują zależności między zadaniami i wskazują ścieżką krytyczną
●
Wykresy paskowe pokazują harmonogram
odniesiony do aktualnego kalendarza
Inżynieria oprogramowania - 4
Slide 18
Czas trwania zadań i ich zależności Task
Zadanie
Duration (days)
Czas trwania (dni)
Depend
Zale eżnci e
y ods
T1
8
T2
15
T3
15
T1 (M1)
T1 (M1)
T4
10
T5
10
T2, T
4 (M2)
T2, T4 (M2)
T6
5
T1, T
2 (M3)
T1, T2 (M3)
T7
20
T1 (M1)
T1 (M1)
T8
25
T4 (M5)
T4 (M5)
T9
15
T3, T
6 (M4)
T3, T6 (M4)
T10
15
T5, T
7 (M7)
T5, T7 (M7)
T11
7
T9 (M6)
T5 (M6)
T12
10
T11 (M8)
Inżynieria oprogramowania - 4
Slide 19
Sieć działań
14/7/99
15 days
15 days
M1
T3
8 days
T9
T1
5 days
4/8/99
25/8/99
25/7/99
T6
M4
M6
4/7/99
M3
start
20 days
7 days
15 days
T2
T7
T11
25/7/99
11/8/99
5/9/99
10 days
10 days
M2
M7
M8
T5
T4
15 days
T10
10 days
18/7/99
M5
T12
25 days
T8
Finish
19/9/99
Inżynieria oprogramowania - 4
Slide 20
11/7
18/7
25/7
1/8
8/8
15/8
22/8
29/8
5/9
12/9
19/9
Start
T4
T1
T2
M1
T7
T3
M5
T8
M3
M2
T6
T5
M4
T9
M7
T10
M6
T1 1
M8
T12
Finish
Inżynieria oprogramowania - 4
Slide 21
4/7
11/7
18/7 25/
1/8
8/8
15/8 22/8
29/8
5/9
12/9 19/9
Fred
T4
T8
T11
T12
Jane
T1
T3
T9
Anne T2
T6
T10
Jim
T7
Mary
T5
Inżynieria oprogramowania - 4
Slide 22
●
Zarządzanie ryzykiem jest nastawione na identyfikacją zagrożeń i opracowanie planów zmniejszenia skutków ich urzeczywistnienia
●
Ryzyko to prawdopodobieństwo wystąpienia pewnych niesprzyjających okoliczności
•
Ryzyko związane z przedsięwzięciem dotyczy harmonogramu przedsięwzięcia i jego zasobów
•
Ryzyko związane z produktem dotyczy jego jakości i efektywności budowy
•
Ryzyko związane z przedsiębiorstwem dotyczy problemów przedsiębiorstwa dostarczającego lub zaopatrującego się w oprogramowanie
Inżynieria oprogramowania - 4
Slide 23
Zagrożenie
Typ zagrożenia
Opis
Doświadczony personel opuści przedsięwzięcie przed jego Rotacja personelu
Przedsięwzięcie
ukończeniem
Zmiana zarządzania Przedsięwzięcie
Nastąpi zmiana w organizacji zarządzania i priorytetów Niedostępność
Przedsięwzięcie
Podstawowy sprzęt dla przedsięwzięcia nie będzie sprzętu
dostarczony na czas
Przedsięwzięcie i
Zmiana wymagań
Liczba zmian wymagań będzie większa niż przewidywano produkt
Opóźnienia
Przedsięwzięcie i Specyfikacja podstawowych interfejsów nie będzie specyfikacji
produkt
dostępna na czas
Niedoszacowanie
Przedsięwzięcie i Zbyt nisko oszacowano rozmiar systemu produkt
Mniejsza
Produkt
Narzędzia CASE użyte do wspomagania przedsięwzięcia efektywność CASE
nie działają tak jak oczekiwano
Zmiana technologii Przedsiębiorstwo
Technologia w której buduje się system będzie zmieniona na nową
Konkurencja dla
Przedsiębiorstwo
Przed ukończeniem naszego produktu na rynku pojawił się produktu
konkurencyjny produkt
Inżynieria oprogramowania - 4
Slide 24
●
Identyfikacja zagrożeń
•
Identyfikowanie zagrożeń dla przedsięwzięcia, produktu i przedsiębiorstwa
●
Analiza ryzyka
•
Ocena prawdopodobieństwa i konsekwencji tych zagrożeń
●
Planowanie przeciwdziałania
•
Opracowanie planów unikania ryzyka lub minimalizowania ich skutków
●
Monitorowanie ryzyka
•
Monitorowanie ryzyka przez całe przedsięwzięcie Inżynieria oprogramowania - 4
Slide 25
Proces zarządzania zagrożeniami Planowanie
Identyfikacja
Analiza
przeciwdziałania
Monitorowanie
zagrożeń
ryzyka
ryzyka
Lista
Lista ryzyka z
Plany unikania
potencjalnych
Ocena ryzyka
przypisanymi
ryzyka i plany
zagrożeń
priorytetami
awaryjne
Inżynieria oprogramowania - 4
Slide 26
●
Zagrożenia technologiczne
●
Zagrożenia ze strony ludzi
●
Zagrożenia organizacyjne
●
Zagrożenia narzędziowe
●
Zagrożenia związane z wymaganiami
●
Zagrożenia związane z oszacowaniami
Inżynieria oprogramowania - 4
Slide 27
Typ zagrożenia
Możliwe zagrożenia
Baza danych użyta w systemie może nie być w stanie przetwarzać tyle Technologia
transakcji na sekundę ile przewidywano; komponenty programowe których należy użyć wielokrotnie moją defekty ograniczające ich funkcjonalność Nie można zatrudnić personelu o odpowiednich umiejętnościach; Ludzie
najważniejsi pracownicy są chorzy lub niedostępni w krytycznym okresie; nie są możliwe niezbędne szkolenia dla personelu Firma jest reorganizowana tak, że inni członkowie zarządu są teraz Organizacyjne
odpowiedzialni za przedsięwzięcie; problemy finansowe firmy powodują redukcję budżetu przedsięwzięcia
Kod generowany przez narzędzia CASE jest nieefektywny; nie da się Narzędzia
zintegrować narzędzi CASE
Zaproponowano zmiany wymagań które prowadzą do poważnej korekty Wymagania
projektu; klienci nie są w stanie zrozumieć wpływu zmian wymagań Niedoszacowano czasu niezbędnego do tworzenia oprogramowania Szacowanie
Niedoszacowano częstości napraw usterek Niedoszacowano rozmiaru oprogramowania Inżynieria oprogramowania - 4
Slide 28
●
Ocena prawdopodobieństwa urzeczywistnienia się i wagi każdego zagrożenia
●
Prawdopodobieństwo może być bardzo niskie, niskie, umiarkowane, wysokie i bardzo wysokie
●
Skutki urzeczywistnienia się zagrożeń mogą być katastrofalne, poważne, znośne lub mało znaczące
Inżynieria oprogramowania - 4
Slide 29
Prawdopod
Zagrożenie
Konsekwencje
obieństwo
Katastroficzn
Problemy finansowe firmy powodują redukcję budżetu przedsięwzięcia Małe
e
Katastroficzn
Nie można zatrudnić personelu o odpowiednich umiejętnościach Duże
e
Najważniejsi pracownicy są chorzy lub niedostępni w krytycznym okresie Średnie
Poważne
Komponenty programowe których należy użyć wielokrotnie moją defekty Średnie
Poważne
ograniczające ich funkcjonalność
Zaproponowano zmiany wymagań które prowadzą do poważnej korekty Średnie
Poważne
projektu
Firma jest reorganizowana tak, że inni członkowie zarządu są teraz Duże
Poważne
odpowiedzialni za przedsięwzięcie
Baza danych użyta w systemie może nie być w stanie przetwarzać tyle Średnie
Poważne
transakcji na sekundę ile przewidywano Niedoszacowano czasu niezbędnego do tworzenia oprogramowania Duże
Poważne
Nie da się zintegrować narzędzi CASE
Duże
Znośne
Klienci nie są w stanie zrozumieć wpływu zmian wymagań Średnie
Znośne
Nie są możliwe niezbędne szkolenia dla personelu Średnie
Znośne
Niedoszacowano częstości napraw usterek Średnie
Znośne
Niedoszacowano rozmiaru oprogramowania Duże
Znośne
Inżynieria oprogramowania - 4
Slide 30
Kod generowany przez narzędzia CASE jest nieefektywny Średnie
Nieistotne
●
Rozważanie każdego ryzyka i opracowanie strategii jego kontroli
●
Strategie unikania
•
Prawdopodobieństwo wystąpienia zagrożenia jest redukowane
●
Strategie minimalizacji
•
Wpływ zagrożenia na przedsięwzięcie lub produkt jest redukowany
●
Plany awaryjne
•
Jeśli zagrożenia urzeczywistni się plany awaryjne sobie z tym radzą
Inżynieria oprogramowania - 4
Slide 31
Strategie zarządzania ryzykiem Zagrożenie
Strategia
Problemy
Przygotuj krótki dokument dla menadżerów wyższego poziomu pokazujący, w finansowe
jaki sposób to przedsięwzięcie istotnie przyczynia się do osiągnięcia celów przedsiębiorstwa gospodarczych
Problemy z
Ostrzeż klienta o potencjalnych kłopotach i o możliwościach opóźnień; rozważ rekrutacją
zakup gotowych komponentów
Choroby
Zreorganizuj zespół tak aby prace poszczególnych osób bardziej się na siebie personelu
nakładały co pomoże pracownikom zrozumieć zajęcia innych Wadliwe
Zastąp potencjalnie wadliwe komponenty zakupionymi komponentami o komponenty
sprawdzonej niezawodności
Zmiana
Zapisuj informacje o śladzie, aby móc ocenić wpływ zmian wymagań; w projekcie wymagań
maksymalizuj ukrywanie informacji
Przygotuj krótki dokument dla menadżerów wyższego poziomu pokazujący, w Reorganizacja
jaki sposób to przedsięwzięcie istotnie przyczynia się do osiągnięcia celów firmy
gospodarczych
Efektywność
Zbadaj możliwości zakupu bardziej wydajnej bazy danych bazy danych
Niedoszacowany Zbadaj możliwość zakupu gotowych komponentów; zbadaj możliwość użycia czas tworzenia
generatora programów
Inżynieria oprogramowania - 4
Slide 32
●
Zbadaj każde zidentyfikowane zagrożenie i zdecyduj czy staje się one bardziej lub mniej prawdopodobne
●
Określ czy konsekwencje zagrożeń uległy zmianie
●
Każde kluczowe zagrożenie powinno być
przedyskutowane na spotkaniach menedżerskich Inżynieria oprogramowania - 4
Slide 33
Typ
Potencjalne wskazówki
zagrożenia
Późne dostarczenie sprzętu lub pomocniczego oprogramowania, wiele Technologie
zgłoszonych problemów technologicznych Niskie morale personelu, nieprzyjazne stosunki członków zespołu, Ludzie
wolne miejsca pracy
Organizacyjne
Plotki w firmie, brak działań menedżerów wyższego poziomu Niechęć członków zespołu do używania narzędzi, narzekania na Narzędzia
narzędzia CASE, żądania silniejszych stacji roboczych Wymagania
Wiele żądań zmian wymagań, narzekania klientów Niepowodzenie w spełnieniu uzgodnionego harmonogramu, Szacowanie
niepowodzenie w usuwaniu zgłoszonych usterek Inżynieria oprogramowania - 4
Slide 34
●
Dobre zarządzanie przedsięwzięciem programistycznym jest niezbędne do osiągnięcia sukcesu przedsięwzięcia
●
Nieuchwytna natura oprogramowania powoduje problemy w zarządzaniu
●
Zarządzający programowaniem odgrywają wiele ról lecz najistotniejsze działania to planowanie przedsięwzięcia, szacowanie i opracowywanie harmonogramu
●
Planowanie i szacowanie są procesami iteracyjnymi które kontynuowane są poprzez całe przedsięwzięcie Inżynieria oprogramowania - 4
Slide 35
●
Etap przedsięwzięcia przewidywalnym stanem gdzie pewny formalny raport o postępach jest prezentowany kierownictwu
●
Zagrożenie może być zagrożeniem przedsięwzięcia, zagrożeniem produktu i zagrożeniem przedsiębiorstwa
●
Zarządzanie zagrożeniami zajmuje się identyfikacją zagrożeń, które mogą wpływać na przedsięwzięcie i takim planowaniem ażeby mieć pewność, że zagrożenie nie przekształci się w główny problem realizacji przedsięwzięcia
Inżynieria oprogramowania - 4
Slide 36