|
|
Linia 1: |
Linia 1: |
| ==Ćwiczenia – Personal Software Process== | | ==Ćwiczenia – Metodyki programowania: TSP i RUP== |
|
| |
|
| ===Zadanie 1. Rejestr czasu=== | | ===Zadanie 1. Struktura zespołu dla połączenia PRINCE2 i RUP=== |
| Zadanie polega na stworzenie rejestru czasu, podczas dwóch następnych zadań. Rejestr czasu należy wykonać w postaci tabelarycznej.
| | Załóżmy, że w Twojej firmie macie bardzo dobrze opanowaną metodykę RUP. Niestety, klient - na którym bardzo Wam zależy - wymaga, aby w przedsięwzięcie było zgodne (przynajmniej w ogólnym zarysie) z metodyką PRINCE2, które jest mu bardzo dobrze znana. |
|
| |
|
| '''Program:''' ''W tym przypadku zadanie''
| | Opracuj (być może w zespole z kolegami, stosując metodę burzy mózgów) organizację zespołu, który byłby zgodny z PRINCE2 i RUP. |
|
| |
|
| '''Data:''' ''Data wykonania zadań, np. 09.08.06''
| | <div class="mw-collapsible mw-made=collapsible mw-collapsed"> |
| {| border="1" cellspacing="0" cellpadding="5" style="text-align:center"
| | <span style="font-variant:small-caps">Rozwiązanie </span> |
| !Start
| | <div class="mw-collapsible-content" style="display:none"> |
| !Przerwa
| | |
| !Stop
| | Role w RUP: |
| !<math>\Delta</math>
| | *Analityk |
| !Faza
| | *Architekt |
| !Uwagi
| | *Kierownik projektu |
| |-
| | *Tester |
| |''10:00''
| | *Programista |
| |''10+5''
| | Role w PRINCE2: |
| |''11:00''
| | *Dyrektor |
| |''45''
| | *Reprezentant użytkowników |
| |''Zadanie 10''
| | *Reprezentant dostawcy |
| |''Stworzenie szablonu dokumentu''
| | *Kontroler jakości |
| |}
| | *Kierownik przedsięwzięcia |
| | *Kierownik zespołu |
| | |
| | Aby, utrzymać zgodność z obiema metodykami można zaproponować zespół o następującej strukturze (role z RUP, oznaczone są poprzez użycie kursywy): |
|
| |
|
| Opis kolumn:
| | [[image:zio-6-lab01.png|Proponowana struktura zespołu]] |
| *Start - godzina rozpoczęcia
| | |
| *Przerwa - suma przerw w trakcie pracy (np. 6 + 8)
| | Rys 1. Proponowana struktura zespołu |
| *Stop – godzina zakończenia
| | |
| *<math>\Delta</math> - różnica między czasem zakończenia a rozpoczęcia pomniejszona o sumę czasów przerw
| | </div> |
| *Faza – faza w trakcie której został zebrany pomiar
| | </div> |
| *Uwagi – dodatkowe uwagi dotyczące pracy
| |
|
| |
|
| ---- | | ---- |
| ===Zadanie 2. Tworzenie harmonogramu=== | | ===Zadanie 2. Cykl życia oprogramowania dla połączenia PRINCE2 i RUP=== |
| Należy stworzyć harmonogram dla projektu informatycznego obejmującego stworzenie prostego sklepu internetowego.
| | W ramach pierwszego zadania udało Ci się opracować strukturę zespołu, który jest zgodny z PRINCE2 i RUP. Kolejnym problem może być zaproponowanie cyklu życia projektu, który także będzie wpasowywał się w obie metodyki. |
|
| |
|
| Ramy czasowe projektu obejmują czas między 1 a 28 marca bieżącego roku. Zakładamy, że możemy poświęcić 5h dziennie (dla uproszczenia także w weekendy). Między 8-13 marca zmuszeni będziemy ograniczyć czas pracy do 3h dziennie. Dodatkowo 17 marca nie będziemy mogli w ogóle pracować nad projektem.
| | Zadanie polega na opracowaniu cyklu życia projektu zgodnego z PRINCE2 i RUP. |
|
| |
|
| Wyodrębniono następujące zadania, wraz z pracochłonnością:
| | <div class="mw-collapsible mw-made=collapsible mw-collapsed"> |
| *Z1 - Konfiguracja środowiska (serwer HTTP, serwer bazy danych itp.) – '''10h'''
| | <span style="font-variant:small-caps">Rozwiązanie </span> |
| *Z2 - Projekt UML aplikacji – '''15h'''
| | <div class="mw-collapsible-content" style="display:none"> |
| *Z3 - Stworzenie schematów bazy danych – '''5h'''
| |
| *Z4 - Implementacja panelu administracyjnego – '''50h'''
| |
| *Z5 - Implementacja koszyka zakupowego – '''40h'''
| |
| Nie ma zależności zadań implementacyjnych oraz tworzenia schematu bazy danych.
| |
|
| |
|
| Nanieś na wykres 1 dostępne godziny w poszczególnych tygodniach, oraz ustal kolejność wykonania zadań.
| | Cykl życia projektu według RUP: |
| {| border="1" cellspacing="0" cellpadding="5" style="text-align:center"
| |
| |+ Wykres 1. Uszeregowanie zadań
| |
| |-
| |
| !Zadania
| |
| | || || || || || || || || || || || ||
| |
| |-
| |
| !Tygodnie
| |
| | || || || || || || || || || || || ||
| |
| |-
| |
| !Czas[h]
| |
| | width="20"|10 ||width="20"|20 ||width="20"|30 ||width="20"|40 ||width="20"|50 ||width="20"|60 ||width="20"|70 ||width="20"|80 ||width="20"|90 ||width="20"|100 ||width="20"|110 ||width="20"|120 ||width="20"|130
| |
| |}
| |
|
| |
|
| | [[image:zio-6-lab02.png|Cykl życia projektu według RUP]] |
|
| |
|
| Następnie wypełnij szablony harmonogramu i zadań – tabela 3 i 4.
| | Rys 2. Cykl życia projektu według RUP |
|
| |
|
|
| |
|
| {| border="1" cellspacing="0" cellpadding="5" style="text-align:center"
| | Cykl życia projektu realizowanego według PRINCE2: |
| |+ Tabela 3. Szablon zadań
| |
| !
| |
| !colspan="3"|Plan
| |
| !Rzeczywistość
| |
| |-
| |
| !Zadanie
| |
| !Godzin
| |
| !Godziny narastająco
| |
| !Tydzień
| |
| !Data
| |
| |-
| |
| |''Z1 - Konfiguracja środowiska''
| |
| |''10''
| |
| |''10''
| |
| |''1.03''
| |
| |''--''
| |
| |}
| |
|
| |
|
| | [[image:zio-6-lab03.png|Cykl życia projektu według PRINCE2]] |
|
| |
|
| {| border="1" cellspacing="0" cellpadding="5" style="text-align:center"
| | Rys 3. Cykl życia projektu według PRINCE2 |
| |+ Tabela 4. Szablon harmonogramu
| |
| !
| |
| !colspan="2"|Plan
| |
| !colspan="2"|Rzeczywistość
| |
| |-
| |
| !Tydzień
| |
| !Godzin w tyg.
| |
| !Godziny narastająco
| |
| !Godzin w tyg.
| |
| !Godziny narastająco
| |
| |-
| |
| !1.03 || || || ||
| |
| |-
| |
| !8.03 || || || ||
| |
| |-
| |
| !15.03 || || || ||
| |
| |-
| |
| !22.03 || || || ||
| |
| |}
| |
|
| |
|
| Szablon zawierający edytowalne tabele ([[media:zio-7-lab01.doc|doc]])
| |
|
| |
|
| <div class="mw-collapsible mw-made=collapsible mw-collapsed">
| | Aby połączyć oba podejścia należy zagłębić się w poszczególne etapy, aby odszukać podobieństwa. Staramy się zatem mapować etapy jednego cyklu w drugi. Na przykład: |
| <span style="font-variant:small-caps">Rozwiązanie </span>
| | *Rozpoczęcia – w pewnym stopniu odpowiada przygotowaniu założeń z PRINCE2, obie fazy mają na celu przygotowanie wizji i zakresu projektu, |
| <div class="mw-collapsible-content" style="display:none">
| | *Dopracowanie, jak i Inicjowanie projektu, mają na celu wyodrębnienie zadań oraz zidentyfikowanie wymaganych zasobów. Dodatkowo w ramach RUP, który jest bardziej zorientowany na wytwarzanie oprogramowania, mamy stworzenie architektury |
| Czas dostępny w ramach poszczególnych tygodni:
| | *W oby dwóch cyklach kolejnymi etapami jest konstrukcja. W PRINCE2 podzielona jest ona na etapy, natomiast w przypadku RUP mamy przyrosty. Dodatkowo w RUP dodany jest etap wdrożenia, o którym nie możemy zapomnieć, |
| *1.03 –> 7*5 = 35h | | *W PRINCE2 istnieje jeszcze zamknięcie projektu. |
| *8.03 -> 6*3+5 = 23h | |
| *15.03 -> 6*5 = 30h | |
| *22.03 -> 7*5= 35h | |
|
| |
|
| {| border="1" cellspacing="0" cellpadding="5" style="text-align:center"
| |
| |+ Wykres 2. Prawidłowe uszeregowanie zadań
| |
| |-
| |
| !Zadania
| |
| | colspan="2"|Z1|| colspan="3"|Z2|| colspan="1"|Z3|| colspan="10"|Z4|| colspan="8"|Z5 || ||
| |
| |-
| |
| !Tygodnie
| |
| | colspan="7"|Tydzień 1|| colspan="5"|Tydzień 2|| colspan="6"|Tydzień 3|| colspan="7"|Tydzień 4 ||
| |
| |-
| |
| !Czas[h]
| |
| | colspan="2" width="20"|10 ||colspan="2" width="20"|20 ||colspan="2" width="20"|30 ||colspan="2" width="20"|40 ||colspan="2" width="20"|50 ||colspan="2" width="20"|60 ||colspan="2" width="20"|70 ||colspan="2" width="20"|80 ||colspan="2" width="20"|90 ||colspan="2" width="20"|100 ||colspan="2" width="20"|110 ||colspan="2" width="20"|120 ||colspan="2" width="20"|130
| |
| |}
| |
|
| |
|
| | Jako połączenie można zaproponować następujący cykl życia: |
|
| |
|
| {| border="1" cellspacing="0" cellpadding="5" style="text-align:center"
| | [[image:zio-6-lab04.png|Proponowany cykl życia projektu]] |
| |+ Tabela 3. Prawidłowy szablon zadań
| |
| !
| |
| !colspan="3"|Plan
| |
| !Rzeczywistość
| |
| |-
| |
| !Zadanie
| |
| !Godzin
| |
| !Godziny narastająco
| |
| !Tydzień
| |
| !Data
| |
| |-
| |
| |Z1 - Konfiguracja środowiska
| |
| |10
| |
| |10
| |
| |1.03
| |
| | --
| |
| |-
| |
| |Z2 - Projekt UML aplikacji
| |
| |15
| |
| |25
| |
| |1.03
| |
| | --
| |
| |-
| |
| |Z3 - Stworzenie schematów bazy danych
| |
| |5
| |
| |30
| |
| |1.03
| |
| | --
| |
| |-
| |
| |Z4 - Implementacja panelu administracyjnego
| |
| |50
| |
| |80
| |
| |8.03, 15.03
| |
| | --
| |
| |-
| |
| |Z5 - Implementacja koszyka zakupowego
| |
| |40
| |
| |120
| |
| |15.03, 22.03
| |
| | --
| |
| |} | |
|
| |
|
| | Rys 4. Proponowany cykl życia projektu |
|
| |
|
| {| border="1" cellspacing="0" cellpadding="5" style="text-align:center"
| |
| |+ Tabela 4. Prawidłowy harmonogram
| |
| !
| |
| !colspan="2"|Plan
| |
| !colspan="2"|Rzeczywistość
| |
| |-
| |
| !Tydzień
| |
| !Godzin w tyg.
| |
| !Godziny narastająco
| |
| !Godzin w tyg.
| |
| !Godziny narastająco
| |
| |-
| |
| !1.03 || 35|| 35|| -- || --
| |
| |-
| |
| !8.03 || 23 || 58 || -- || --
| |
| |-
| |
| !15.03 || 30 || 88 || -- || --
| |
| |-
| |
| !22.03 || 35 || 123 || -- || --
| |
| |}
| |
| </div> | | </div> |
| </div> | | </div> |
|
| |
|
| ---- | | ---- |
| ===Zadanie 3. Śledzenie postępu=== | | ===Zadanie 3. Procesy w TSP i PRINCE2=== |
| Należy wyliczyć dla każdego zadania proporcjonalną do pracochłonności liczbę punktów przeznaczonych dla metody wartości zarobionej.
| | Zadanie polega na dokonaniu mapowania pomiędzy procesami TSP (w obrębie jednej iteracji) i PRINCE2. Po jednej stronie rozpisz sobie listę procesów TSP, a po drugiej procesy PRINCE2. Połącz odpowiadające sobie funkcjami procesy liniami. |
| | |
| Okazało się niestety, że rzeczywista liczba dostępnych godzin zmalała procentowo:
| |
| *1.03 – '''40%'''
| |
| *8.03 – '''0%'''
| |
| *15.03 – '''10%'''
| |
| *22.03 - '''5%'''
| |
| Zbadaj jaka będzie wartość zarobiona w dniu 22.03. Dodatkowo stwórz wykres zdobytych punktów w tym dniu do liczby punktów planowanych.
| |
| | |
| | |
| {| border="1" cellspacing="0" cellpadding="5" style="text-align:center"
| |
| |+ Tabela 5. Szablon zadań z wartościami zarobionymi
| |
| !
| |
| !colspan="4"|Plan
| |
| !colspan="2"|Rzeczywistość
| |
| |-
| |
| !Zadanie
| |
| !Godzin
| |
| !Godziny narastająco
| |
| !WZ
| |
| !Tydzień
| |
| !Data
| |
| !WZ
| |
| |-
| |
| |''Z1 - Konfiguracja środowiska''
| |
| |''10''
| |
| |''10''
| |
| |''...''
| |
| |''1.03''
| |
| |''1.03''
| |
| |''...''
| |
| |}
| |
|
| |
|
| | [[image:zio-6-lab05.png|Procesy TSP i PRINCE2 przed mapowaniem]] |
|
| |
|
| {| border="1" cellspacing="0" cellpadding="5" style="text-align:center"
| | Rys 5. Procesy TSP i PRINCE2 przed mapowaniem |
| |+ Tabela 6. Szablon harmonogramu z wartościami zarobionymi
| |
| !
| |
| !colspan="3"|Plan
| |
| !colspan="3"|Rzeczywistość
| |
| |-
| |
| !Tydzień
| |
| !Godzin w tyg.
| |
| !Godziny narastająco
| |
| !WZ narastająco
| |
| !Godzin w tyg.
| |
| !Godziny narastająco
| |
| !WZ narastająco
| |
| |-
| |
| !1.03 || || || || || ||
| |
| |-
| |
| !8.03 || || || || || ||
| |
| |-
| |
| !15.03 || || || || || ||
| |
| |-
| |
| !22.03 || || || || || ||
| |
| |}
| |
|
| |
| Szablon zawierający edytowalne tabele ([[media:zio-7-lab02.doc|doc]])
| |
|
| |
|
| <div class="mw-collapsible mw-made=collapsible mw-collapsed"> | | <div class="mw-collapsible mw-made=collapsible mw-collapsed"> |
| <span style="font-variant:small-caps">Rozwiązanie </span> | | <span style="font-variant:small-caps">Rozwiązanie </span> |
| <div class="mw-collapsible-content" style="display:none"> | | <div class="mw-collapsible-content" style="display:none"> |
| {| border="1" cellspacing="0" cellpadding="5" style="text-align:center"
| |
| |+ Tabela. 8. Wyliczone wartości zarobione dla zadań
| |
| !
| |
| !colspan="4"|Plan
| |
| !colspan="2"|Rzeczywistość
| |
| |-
| |
| !Zadanie
| |
| !Godzin
| |
| !Godziny narastająco
| |
| !WZ
| |
| !Tydzień
| |
| !Data
| |
| !WZ
| |
| |-
| |
| |Z1 - Konfiguracja środowiska
| |
| |10
| |
| |10
| |
| |85
| |
| |1.03
| |
| | --
| |
| | --
| |
| |-
| |
| |Z2 - Projekt UML aplikacji
| |
| |15
| |
| |25
| |
| |127
| |
| |1.03
| |
| | --
| |
| | --
| |
| |-
| |
| |Z3 - Stworzenie schematów bazy danych
| |
| |5
| |
| |30
| |
| |44
| |
| |1.03
| |
| | --
| |
| | --
| |
| |-
| |
| |Z4 - Implementacja panelu administracyjnego
| |
| |50
| |
| |80
| |
| |419
| |
| |8.03, 15.03
| |
| | --
| |
| | --
| |
| |-
| |
| |Z5 - Implementacja koszyka zakupowego
| |
| |40
| |
| |120
| |
| |325
| |
| |15.03, 22.03
| |
| | --
| |
| | --
| |
| |}
| |
|
| |
|
| | Podobnie jak w przypadku poprzednich zadań, należy zaznajomić się z podprocesami dla porównywanych procesów (co jest wejściem, wyjściem, celem). |
|
| |
|
| {| border="1" cellspacing="0" cellpadding="5" style="text-align:center"
| | [[image:zio-6-lab06.png|Procesy TSP i PRINCE2 po mapowaniu]] |
| |+ Tabela. 9. Harmonogram rzeczywisty
| |
| !
| |
| !colspan="3"|Plan
| |
| !colspan="3"|Rzeczywistość
| |
| |-
| |
| !Tydzień
| |
| !Godzin w tyg.
| |
| !Godziny narastająco
| |
| !WZ narastająco
| |
| !Godzin w tyg.
| |
| !Godziny narastająco
| |
| !WZ narastająco
| |
| |-
| |
| !1.03 || 35|| 35|| 256 || 21 || 21 || 85
| |
| |-
| |
| !8.03 || 23 || 58 || 256 || 23 || 44 || 256
| |
| |-
| |
| !15.03 || 30 || 88 || 675 || 27 || 71 || 256
| |
| |-
| |
| !22.03 || 35 || 123 || 1000 || 33 || 104 || 675
| |
| |} | |
|
| |
|
| [[image:zio-7-lab01.png|Wartości zarobione – planowane i rzeczywiste]]
| | Rys 6. Procesy TSP i PRINCE2 po mapowaniu |
|
| |
|
| Wykres 3. Wartości zarobione – planowane i rzeczywiste
| |
| </div> | | </div> |
| </div> | | </div> |
|
| |
|
| ==Pytania do dyskusji== | | ==Pytania do dyskusji== |
| #Czy prowadzenie rejestru czasu jest opłacalne? Jakie są korzyści i trudności? | | #Czy można znaleźć wspólny mianownik dla poznanych metody TSP, RUP i PRINCE2? |
| #Czy sądzisz, że używanie PSP, przyniosłoby Ci więcej korzyści, niż trudności? | | #Jakie są najważniejsze różnice między TSP, RUP i PRINCE2? |
Ćwiczenia – Metodyki programowania: TSP i RUP
Zadanie 1. Struktura zespołu dla połączenia PRINCE2 i RUP
Załóżmy, że w Twojej firmie macie bardzo dobrze opanowaną metodykę RUP. Niestety, klient - na którym bardzo Wam zależy - wymaga, aby w przedsięwzięcie było zgodne (przynajmniej w ogólnym zarysie) z metodyką PRINCE2, które jest mu bardzo dobrze znana.
Opracuj (być może w zespole z kolegami, stosując metodę burzy mózgów) organizację zespołu, który byłby zgodny z PRINCE2 i RUP.
Rozwiązanie
Role w RUP:
- Analityk
- Architekt
- Kierownik projektu
- Tester
- Programista
Role w PRINCE2:
- Dyrektor
- Reprezentant użytkowników
- Reprezentant dostawcy
- Kontroler jakości
- Kierownik przedsięwzięcia
- Kierownik zespołu
Aby, utrzymać zgodność z obiema metodykami można zaproponować zespół o następującej strukturze (role z RUP, oznaczone są poprzez użycie kursywy):
Rys 1. Proponowana struktura zespołu
Zadanie 2. Cykl życia oprogramowania dla połączenia PRINCE2 i RUP
W ramach pierwszego zadania udało Ci się opracować strukturę zespołu, który jest zgodny z PRINCE2 i RUP. Kolejnym problem może być zaproponowanie cyklu życia projektu, który także będzie wpasowywał się w obie metodyki.
Zadanie polega na opracowaniu cyklu życia projektu zgodnego z PRINCE2 i RUP.
Rozwiązanie
Cykl życia projektu według RUP:
Rys 2. Cykl życia projektu według RUP
Cykl życia projektu realizowanego według PRINCE2:
Rys 3. Cykl życia projektu według PRINCE2
Aby połączyć oba podejścia należy zagłębić się w poszczególne etapy, aby odszukać podobieństwa. Staramy się zatem mapować etapy jednego cyklu w drugi. Na przykład:
- Rozpoczęcia – w pewnym stopniu odpowiada przygotowaniu założeń z PRINCE2, obie fazy mają na celu przygotowanie wizji i zakresu projektu,
- Dopracowanie, jak i Inicjowanie projektu, mają na celu wyodrębnienie zadań oraz zidentyfikowanie wymaganych zasobów. Dodatkowo w ramach RUP, który jest bardziej zorientowany na wytwarzanie oprogramowania, mamy stworzenie architektury
- W oby dwóch cyklach kolejnymi etapami jest konstrukcja. W PRINCE2 podzielona jest ona na etapy, natomiast w przypadku RUP mamy przyrosty. Dodatkowo w RUP dodany jest etap wdrożenia, o którym nie możemy zapomnieć,
- W PRINCE2 istnieje jeszcze zamknięcie projektu.
Jako połączenie można zaproponować następujący cykl życia:
Rys 4. Proponowany cykl życia projektu
Zadanie 3. Procesy w TSP i PRINCE2
Zadanie polega na dokonaniu mapowania pomiędzy procesami TSP (w obrębie jednej iteracji) i PRINCE2. Po jednej stronie rozpisz sobie listę procesów TSP, a po drugiej procesy PRINCE2. Połącz odpowiadające sobie funkcjami procesy liniami.
Rys 5. Procesy TSP i PRINCE2 przed mapowaniem
Rozwiązanie
Podobnie jak w przypadku poprzednich zadań, należy zaznajomić się z podprocesami dla porównywanych procesów (co jest wejściem, wyjściem, celem).
Rys 6. Procesy TSP i PRINCE2 po mapowaniu
Pytania do dyskusji
- Czy można znaleźć wspólny mianownik dla poznanych metody TSP, RUP i PRINCE2?
- Jakie są najważniejsze różnice między TSP, RUP i PRINCE2?