©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 1 Zarządzanie przedsięwzięciami l Zarządzający programowaniem odpowiadają za planowanie i tworzenie harmonogramu przedsięwzięcia.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 2 Cele wykładu l Rozumieć różnicę między zarządzaniem przedsięwzięciem programistycznym a zarządzaniem innymi rodzajami przedsięwzięć inżynieryjnych. l Znać podstawowe zadania kierowników (menedżerów) przedsięwzięcia programistycznego. l Wiedzieć, dlaczego planowanie przedsięwzięcia jest niezbędne w przedsięwzięciach programistycznych. l Wiedzieć, dlaczego kierownicy przedsięwzięć używają postaci graficznej (wykresów paskowych i wykresów czynności) do zapisywania harmonogramów przedsięwzięć.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 3 Zawartość wykładu l Czynności zarządzania l Planowanie przedsięwzięcia l Tworzenie harmonogramu przedsięwzięcia l Zarządzanie zagrożeniami.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 4 l Konieczność zarządzania stanowi istotną różnicę między profesjonalnym tworzeniem oprogramowania a programowaniem amatorskim. l Zarządzanie przedsięwzięciami programistycznymi jest niezbędne, ponieważ profesjonalna inżynieria oprogramowania zawsze podlega ograniczeniom budżetowym i czasowym, ustalanym przez firmę budującą oprogramowania. l Zadaniem kierownika zarządzającym przedsięwzięciem programistycznym jest zapewnienie, że to przedsięwzięcie zmieści się w narzuconych ograniczeniach i do prowadzi do dostarczenia oprogramowania. Zarządzanie przedsięwzięciami
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 5 l Produkt jest nieuchwytny. Zarządzający budową statku lub przedsięwzięciem inżynierii lądowej może oglądać produkt w trakcie jego tworzenia. Jeśli nie dotrzymano harmonogramu, widać to wyraźnie po stanie produktu. Części tej struktury są w oczywisty sposób nie ukończone. Oprogramowanie jest nieuchwytne. Nie można go dotknąć ani zobaczyć. l Nie ma standardowych procesów tworzenia oprogramowania. Nie rozpoznaliśmy jeszcze w sposób wystarczająco precyzyjny związków między procesem, a typem produktu. l Wielkie przedsięwzięcia programistyczne są często jednorazowe. Wielkie przedsięwzięcia programistyczne są zwykle inne niż poprzednie przedsięwzięcia. Wyróżniki zarządzania programowaniem
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 6 l Opracowywanie oferty l Planowanie i tworzenie harmonogramu przedsięwzięcia l Szacowanie kosztów przedsięwzięcia l Wybór i ocena personelu l Opracowywanie raportów i prezentacji Czynności zarządzania
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 7 l Pierwsza faza to opracowanie oferty zawierającej cele i sposoby realizacji. Zwykle zawiera oszacowanie kosztów i wstępny harmonogram. Od umiejętności przygotowywania ofert, która nabywa się wraz z doświadczeniem, zależy ilość podpisanych kontraktów. l Planowanie przedsięwzięcia polega na identyfikowaniu czynności, odbiorców i produktów powstających w przedsięwzięciu. Następnie należy sformułować plan, który doprowadzi do osiągnięcia celów przedsięwzięcia. Szacowanie kosztów jest czynnością powiązaną z planowaniem, która polega na kalkulacji zasobów koniecznych do realizacji przedsięwzięcia. l Monitorowanie przedsięwzięcia jest ustawiczna czynnością. Kierownik musi obserwować postęp przedsięwzięcia i porównywać rzeczywiste koszty w stosunku do planów. l Zamiast czekać na zgłoszenie opóźnienia w realizacji harmonogramu, zarządzający programowaniem może przydzielić jednego z ekspertów do tego problemu lub zadecydować, że ten problem należy obejść za pomocą dodatkowego oprogramowani a. Uwagi dot. zarządzania projektem programistycznym
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 8 Personel l Budżet przedsięwzięcia nie wystarczy do zatrudnienia dobrze opłacanego personelu. Trzeba przyjąć mniej doświadczonych i gorzej wynagradzanych pracowników. l Najczęściej trzeba poszukiwać personelu z odpowiednim doświadczeniem w samej firmy bądź w jej otoczeniu. Należy wziąć pod uwagę, że najlepsi ludzie w firmie mogą już brać udział w innych przedsięwzięciach. l Firma może oczekiwać, że pracownicy zwiększą swoje umiejętności. Do przedsięwzięcia przydziela się wówczas mniej doświadczone osoby, aby w jego trakcie uczyły się i zdobywały doświadczenie. l Wybierając pracowników, zarządzający programowaniem musi działać zgodnie z tymi ograniczeniami.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 9 Planowanie przedsięwzięcia l Efektywność zarządzania przedsięwzięciem programistycznym zależy od starannego zaplanowania postępów. l Kierownik musi przewidywać kłopoty, które mogą powstać, i musi mieć gotowe propozycje rozwiązań tych problemów. l Plan powstały na początku przedsięwzięcia powinien służyć do sterowania tym przedsięwzięciem. Ten wstępny plan powinien być najlepszym możliwym do opracowania na podstawie dostępnych informacji.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 10 Typy planów PlanOpis Plan jakości Obejmuje procedury zapewnienia jakości i standardy obowiązujące w przedsięwzięciu. Plan zatwierdzania Obejmuje podejście, zasoby i harmonogram zatwierdzania systemu. Plan zarządzania konfiguracjami Obejmuje procedury zarządzania konfiguracjami i używane struktury. Plan pielęgnacji Przewiduje się w nim wymagania stawiane pielęgnacji, jej koszty i niezbędne nakłady. Plan rozwoju umiejętności personelu Opisuje się w nim jak będą wzrastały umiejętności i doświadczenie personelu.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 11 Pseudokod z zapisem procesu planowanie przedsięwzięcia Ustal ograniczenia przedsięwzięcia Wstępnie oszacuj parametry przedsięwzięcia Skoryguj etapy i produkty dopóki nie zrealizowano i nie anulowano przedsięwzięcia powtarzaj Opracuj harmonogram przedsięwzięcia Odczekaj Zbadaj postępy przedsięwzięcia Zrewiduj oszacowanie parametrów Zaktualizuj harmonogram przedsięwzięcia Renegocjuj ograniczenia i produkty przedsięwzięcia jeśli (pojawiły się kłopoty), to Rozpocznij przegląd techniczny i dopuszczalne poprawki koniec jeśli koniec powtarzaj
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 12 Plan przedsięwzięcia l Wprowadzenie, w którym opisuje się cele i ograniczenia (np. budżetu i czasu) mające wpływ na zarządzanie. l Organizacja przedsięwzięcia, w której opisuje się sposób organizacji zespołu wytwórczego, osoby i ich funkcje w zespole. l Analiza zagrożeń, w której opisuje się zagrożenia przedsięwzięcia, prawdopodobieństwo ich wystąpienia i proponowane strategie ich zmniejszenia. l Wymagania stawiane zasobom sprzętowym i programowym, w których opisuje się sprzęt i pomocnicze oprogramowanie niezbędne do tworzenia. l Podział pracy, w którym opisuje się podział przedsięwzięcia na zadania oraz identyfikuje etapy i produkty związane z tymi zadaniami. l Harmonogram przedsięwzięcia, w którym opisuje się zależności pomiędzy zadaniami, czas potrzebny do ich wykonania oraz przydział osób do poszczególnych zadań. l Mechanizmy monitorowania i składania raportów, w których opisuje się raporty menedżerskie, terminy ich dostarczenia i sposoby monitorowania całego przedsięwzięcia.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 13 Etapy i produkty l Kierownicy potrzebują informacji. Ponieważ oprogramowanie nie jest uchwytne, informacje mogą być dostarczane jedynie w postaci dokumentów, w których opisano stan budowanego oprogramowania. Bez tej informacji nie można ocenić postępów, oszacować kosztów ani skorygować harmonogramu. Produkty są zwykle związane z etapami, ale nie odwrotnie. l Planując przedsięwzięcie, należy ustalić etapy, czyli ukończenie określonego zadania związanego z jakimś formalnym wynikiem. l Produkt jest wynikiem przedsięwzięcia dostarczanym klientowi. Jest zwykle przekazywany na zakończenie pewnej, dużej fazy przedsięwzięcia.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 14 Etapy w procesie określania wymagań Studium wykonal - ności Analizowanie wymagań Tworzenie prototypu Studium projektowe Specyfikowanie wymagań Wymagania systemowe Projekt architektoniczny Raport oceniający Wymagania użytkownika Raport wykonalności CZYNNOŚCI ETAPY
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 15 Tworzenie harmonogramu przedsięwzięcia l Tworzenie harmonogram przedsięwzięcia jest szczególnie trudnym zadaniem dla zarządzających programowaniem. l Menedżerowie szacują czas i zasoby niezbędne do ukończenia czynności oraz organizują je w zwarte sekwencje. l Szacowanie harmonogramu jest jeszcze bardziej skomplikowane wskutek tego, że w rozmaitych przedsięwzięciach użyto różnych metod programowania i implementacji. l Tworzenie harmonogramu przedsięwzięcia obejmuje dzielenie całkowitego nakładu pracy na oddzielne czynności i kalkulowanie czasu wymaganego na ich ukończenie.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 16 Proces tworzenia harmonogramu przedsięwzięcia Wykresy czynności i wykresy paskowe Opracuj grafy przedsięwzięcia Przydziel osoby do czynności Opracuj zasoby dla czynności Zidentyfikuj czynności Zidentyfikuj zależności między czynnościami Wymagania stawiane oprogramowaniu
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 17 Problemy l Tworząc harmonogramy, kierownicy nie mogą zakładać, że każdy etap przedsięwzięcia będzie wolny od problemów. Zatrudnione osoby mogą zachorować lub pójść na urlop, sprzęt może się popsuć, a dostawa podstawowego oprogramowania wspomagającego lub sprzętu może się opóźnić. l Oprócz kalendarza zarządzający muszą także oszacować zasoby niezbędne do ukończenia każdego zadania. Najważniejszym zasobem jest praca ludzi. l Dobrą, praktyczną zasadą jest szacowanie tak, jakby wszystko miało się udać, a następnie zwiększenie szacunków, aby uwzględnić nie przewidziane kłopoty. l Na końcu można wszystko pomnożyć przez dodatkowy czynnik rezerwy.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 18 Wykresy paskowe i sieci działań l Wykresy paskowe i sieci działań to notacje graficzne stosowane do przedstawiania harmonogramów przedsięwzięcia. l Na wykresie paskowym obrazuje się, kto odpowiada za każdą czynność oraz kiedy ta czynność ma się rozpocząć i skończyć. l Za pomocą sieci działań zapisuje się zależności między różnymi czynnościami składającymi się na przedsięwzięcie. l Wykresy paskowe oraz sieci działań mogą być przygotowywane automatycznie przez narzędzia wspomagające zarządzanie na podstawie zawartości bazy danych przedsięwzięcia.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 19 Zbiór zadań, ich czas trwania zależności
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 20 Sieć działań T8 4/7/ /7/ /8/ /8/99 7 5/9/ /9/ /8/ /7/99 15 dni 25/7/99 18/7/99 10 T1 M1T3 T9 M6 T11 M8 T12 M4 początek dni koniec
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 21 Diagram paskowy czynności
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 22 Przydział personelu na tle wykresu czasu
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 23 Zarządzanie zagrożeniami l Ważnymi zadaniami zarządzającego przedsięwzięciem jest przewidywanie zagrożeń, które mogą mieć wpływ na harmonogram przedsięwzięcia lub jakość budowanego oprogramowania, oraz podejmowanie działań w celu uniknięcia tych zagrożeń. l Te kategorie zagrożeń można odróżnić w następujący sposób: zagrożenia przedsięwzięcia mają wpływ na zasoby i harmonogram przedsięwzięcia, zagrożenia produktu mają wpływ na jakość i efektywność budowanego oprogramowania, zagrożenia przedsiębiorstwa maja wpływ na przedsiębiorstwo budujące bądź zaopatrujące się w oprogramowanie.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 24 Możliwe zagrożenia w wytwarzaniu oprogramowania
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 25 Proces zarządzania zagrożeniami l Identyfikacja zagrożeń Identyfikuje się możliwe zagrożenia przedsięwzięcia, produktu i przedsiębiorstwa. l Analiza zagrożeń Ocenia się prawdopodobieństwo i konsekwencje zagrożeń. l Planowanie przeciwdziałania zagrożeniom Opracowuje się plany radzenia sobie z tymi zagrożeniami przez ich unikanie lub zmniejszanie ich następstw. l Monitorowanie zagrożeń Ustawicznie ocenia się zagrożenia i koryguje plany ich łagodzenia w miarę napływu coraz lepszych informacji o tych zagrożeniach.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 26 Proces zarządzania zagrożeniami Ocena zagrożeń Identyfikacja zagrożeń Analiza zagrożeń Lista potencjalnych zagrożeń Lista zagrożeń z przypisanymi priorytetami Przeciwdziałania zagrożeniom Monitorowanie zagrożeń Ocena zagrożeń Plany unikania zagrożeń i awaryjne
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 27 Identyfikacja zagrożeń l Zagrożenia technologiczne l Zagrożenia ze strony ludzi l Zagrożenia organizacyjne l Zagrożenia narzędziowe l Zagrożenia wymagań l Zagrożenia szacowania
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 28 Zagrożenia i ich typy
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 29 Analiza zagrożeń l W trakcie procesu analizy zagrożeń każde zagrożenie jest ponownie rozważane. Ocenia się prawdopodobieństwo i znaczenie każdego z nich. l Wymaga ona zdolności do oceny i doświadczenia menedżera przedsięwzięcia. l Konsekwencje zagrożenia mogą być oceniane jako katastroficzne, poważne, znośne lub nieistotne.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 30 Analiza zagrożeń
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 31 Planowanie przeciwdziałania zagrożeniom l W procesie planowania przeciwdziałania zagrożeniom bierze się pod uwagę każde poważne zagrożenie i opracowuje strategię panowania nad nim. l Strategie unikania Ich zastosowanie prowadzi do zmniejszenia prawdopodobieństwa wystąpienia zagrożenia. l Strategie minimalizacji Ich zastosowanie prowadzi do zmniejszenia konsekwencji zagrożenia. l Plany awaryjne Ich zastosowanie polega na przygotowaniu się i opracowaniu strategii przeciwdziałania na wypadek najgorszego.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 32 Strategie zarządzania zagrożeniami
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 33 Monitorowanie zagrożeń l Monitorowanie zagrożeń polega na ocenie, czy każde ze zidentyfikowanych zagrożeń staje się bardziej lub mniej prawdopodobne oraz czy zmieniły się jego konsekwencje. l Zwykle nie da się bezpośrednio zaobserwować, należy więc zbadać inne czynniki, które umożliwiają wnioskowanie o prawdopodobieństwie zagrożeń i ich następstwach. l Czynniki te zwykle zależą od typu zagrożenia.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 34 Czynniki ryzyka
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 35 Główne tezy l Dobre zarządzanie przedsięwzięciami programistycznymi jest niezbędne, jeśli przedsięwzięcia inżynierii oprogramowania mają być ukończone zgodnie z harmonogramem i w ramach budżetu. l Zarządzanie programowaniem istotnie różni się od zarządzania w innych dziedzinach inżynierii. Oprogramowanie jest nieuchwytne. Przedsięwzięcia mogą być nowatorskie lub innowacyjne, nie ma więc odpowiedniego zasobu doświadczeń pomagających w zarządzaniu nimi. l Zarządzający oprogramowaniem mają do odegrania wiele różnych ról. Najbardziej znaczącymi są planowanie przedsięwzięcia, szacowanie i tworzenie harmonogramu. Planowanie i tworzenie harmonogramu są procesami iteracyjnymi; są wykonywane przez cały czas trwania przedsięwzięcia. W miarę napływu coraz dokładniejszych informacji, plany i harmonogramy muszą być korygowane.
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 36 l Etap w przedsięwzięciu jest przewidywalnym rezultatem czynności, który oznacza przedstawienie kierownictwu pewnego formalnego raportu. Etapy powinny odbywać się regularnie przez całe przedsięwzięcie programistyczne. Produkt jest związany z odbiorem i przekazaniem go klientowi przedsięwzięcia. l Tworzenie harmonogramu przedsięwzięcia polega na opracowaniu rozmaitych graficznych przedstawień fragmentów planu przedsięwzięcia. Są nimi m.in. Wykresy czynności, na których obrazuje się zależności między czynnościami przedsięwzięcia, oraz wykresy paskowe ukazujące czas rwania czynności. l Należy zidentyfikować i ocenić prawdopodobieństwo oraz konsekwencje głównych zagrożeń przedsięwzięcia. W wypadku zagrożeń prawdopodobnych i potencjalnie poważnych należy opracować plany unikania, opanowania lub przeciwdziałania tym zagrożeniom. Zagrożenia należy otwarcie omawiać na każdym menedżerskim spotkaniu w sprawie postępów przedsięwzięcia. Główne tezy