Zarządzanie przedsięwzięciami Organizowanie, planowanie i

tworzenie harmonogramu

projektów oprogramowania

Inżynieria oprogramowania - 4

Slide 1

Cele

●

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

Zawartość

●

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

Czynności zarządzania

●

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

Obsada przedsięwzięcia

●

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

Planowanie przedsięwzięcia

●

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

Organizacja działań

●

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

Tworzenie harmonogramu

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

Diagram paskowy czynności 4/7

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

Przydział personelu

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

●

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żenia procesu

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

Proces zarządzania ryzykiem

●

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

Identyfikacja zagrożeń

●

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

Zagrożenia i ich typy

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

Analiza ryzyka

●

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

Analiza ryzyka

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

Planowanie przeciwdziałania

●

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

Monitorowanie ryzyka

●

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

Czynniki ryzyka

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

Główne tezy

●

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

Główne tezy

●

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