From 48dbeb495f92887d0202ab1fa52bd6398ab50120 Mon Sep 17 00:00:00 2001 From: Krzysztof Jassem Date: Thu, 14 Oct 2021 15:01:48 +0200 Subject: [PATCH] =?UTF-8?q?Zmiana=20tre=C5=9Bci=20wyk=C5=82ad=C3=B3w=204.?= =?UTF-8?q?=20i=205.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../01_praca_zespolowa.ipynb | 2 +- .../02_projekt_badawczo-rozwojowy.ipynb | 2 +- .../04_metodologia_Prince2.ipynb | 246 +++++++++++++--- .../05_metodologia Prince2Agile.ipynb | 276 +++++++++++++++++- 4 files changed, 489 insertions(+), 37 deletions(-) diff --git a/materiały na PPB (wykład)/01_praca_zespolowa.ipynb b/materiały na PPB (wykład)/01_praca_zespolowa.ipynb index 6100c9d..321f4c9 100644 --- a/materiały na PPB (wykład)/01_praca_zespolowa.ipynb +++ b/materiały na PPB (wykład)/01_praca_zespolowa.ipynb @@ -263,7 +263,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.7.6" }, "subtitle": "01. Praca zespołowa[wykład]", "title": "Przygotowanie do projektu badawczo-rozwojowego", diff --git a/materiały na PPB (wykład)/02_projekt_badawczo-rozwojowy.ipynb b/materiały na PPB (wykład)/02_projekt_badawczo-rozwojowy.ipynb index 377e9c2..bca0132 100644 --- a/materiały na PPB (wykład)/02_projekt_badawczo-rozwojowy.ipynb +++ b/materiały na PPB (wykład)/02_projekt_badawczo-rozwojowy.ipynb @@ -300,7 +300,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.7.6" }, "subtitle": "02. Projekt badawczo-rozwojowy[wykład]", "title": "Przygotowanie do projektu badawczo-rozwojowego", diff --git a/materiały na PPB (wykład)/04_metodologia_Prince2.ipynb b/materiały na PPB (wykład)/04_metodologia_Prince2.ipynb index a06169b..7614c45 100644 --- a/materiały na PPB (wykład)/04_metodologia_Prince2.ipynb +++ b/materiały na PPB (wykład)/04_metodologia_Prince2.ipynb @@ -58,7 +58,7 @@ "metadata": {}, "source": [ "### Cechy charakterystyczne projektu\n", - "Projekt jest przeciwieństwiem pojęcia \"buiseness as usual\" (działanie rutynowe). Projekt od rutyny odróżniają następujące cechy\n", + "Projekt jest przeciwieństwiem pojęcia \"business as usual\" (działanie rutynowe). Projekt od rutyny odróżniają następujące cechy\n", "\n", " * Zmiana - projekt to środek do przeprowadzenia zmiany.\n", " * Tymczasowość - projekt ma swoją datę początku i końca.\n", @@ -133,7 +133,8 @@ "
    \n", "
  1. Projekty są dobrze określone, a zatem łatwe w zarządzaniu.
  2. \n", "
  3. Przebieg projektu opisany jest liniowo (sekwencyjnie), przez co łatwiej go zrozumieć.
  4. \n", - "
" + " \n", + "" ] }, { @@ -315,43 +316,112 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Zasady Prince2\n", - "### Ciągłe uzasadnienie biznesowe\n", - "* Musi istnieć jakiś biznesowy (przeliczalny na pieniądze) powód do rozpoczęcia projektu. \n", - "* Uzasadnienie biznesowe musi mieć miejsce podczas całego projektu - trzeba to cały czas sprawdzać.\n", - "\n", - "### Nauka przez doświadczenie\n", - "* Podczas wykonywania projektu należy wyciągać wnioski - uczyć się lekcji.\n", - "* Lekcje te powinny być zapisywane.\n", - "\n", - "### Określone role i odpowiedzialności\n", - "W projekcie wykonawcy mają określone role i określone zakresy odpowiedzialności. Dotyczy to również przedstawicieli klienta.\n", - "\n", - "### Praca etapami\n", - "Projekt jest planowany i monitorowany etap po etapie.\n", - "\n", - "### Zarządzanie wyjątkami\n", - "Jeśli przebieg projektu mieści się w granicach tolerancji (czas, pieniądze itp.), to nie ma potrzeby alarmować przełożonych. W przypadku **wyjątku** (wyjście poza granicę tolerancji), trzeba powiadomić przełożonych.\n", - "\n", - "### Koncentracja na produkcie\n", - "Najważniejsza w projekcie jest jakość dostarczanego produktu.\n", - "\n", - "### Dostrajanie\n", - "Metodyka zarządzania powinna być dostrojona do specyfiki projektu: środowisko, złożoność, zespół, ryzyko itp." + "## Pryncypia Prince2" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Motywy przewodnie Prince2 (themes)" + "
\n", + "\n", + " Pryncypia Prince 2 to nakazy wynikające z najlepszych praktyk zarządzania projektami. \n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1. Ciągła zasadność biznesowa\n", + "* Musi istnieć jakiś biznesowy (przeliczalny na pieniądze) powód do rozpoczęcia projektu. \n", + "* Uzasadnienie biznesowe musi mieć miejsce podczas całego projektu - trzeba to cały czas sprawdzać.\n", + "\n", + "### 2. Korzystanie z doświadczeń\n", + "* Podczas wykonywania projektu należy wyciągać wnioski - uczyć się lekcji.\n", + "* Lekcje te powinny być zapisywane.\n", + "\n", + "### 3. Określone role i obowiązki\n", + "W projekcie wykonawcy mają określone role i określone zakresy odpowiedzialności. Dotyczy to również przedstawicieli klienta.\n", + "\n", + "### 4. Zarządzanie etapami \n", + "Projekt jest planowany i monitorowany etap po etapie.\n", + "\n", + "### 5. Zarządzanie tolerancją\n", + "Jeśli przebieg projektu mieści się w granicach tolerancji (czas, pieniądze itp.), to nie ma potrzeby alarmować przełożonych. W przypadku **wyjątku** (wyjście poza granicę tolerancji), trzeba powiadomić przełożonych.\n", + "\n", + "### 6. Koncentracja na produktach\n", + "Najważniejsza w projekcie jest jakość dostarczanych produktach.\n", + "\n", + "### 7. Dostosowywanie do warunków\n", + "Metodyka zarządzania powinna być dostosowana do specyfiki projektu: środowisko, złożoność, zespół, ryzyko itp." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Motywy przewodnie (tematy) Prince2 (themes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + " Motyw przewodni to aspekt zarządzania. \n", + " \n", + "(Na przykład jedna osoba może zarządzać tylko jednym (lub kilkoma) aspektem zarządzania.)\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1. Potrzeba biznesowa\n", + "W zarządzaniu trzeba cały czas wyjaśniać zespołowi, jaka jest potrzeba biznesowa projektu - skąd projekt się wziął i dlaczego warto go kontynuować. \n", + "\n", + "### 2. Organizacja\n", + "Trzeba precyzyjnie przydzielić role w zespole oraz odpowiedzialności .\n", + "\n", + "### 3. Jakość\n", + "Trzeba mieć jasno określone aspekty jakości, które ma spełniać tworzony produkt.\n", + "\n", + "### 4. Plany\n", + "Zespół projektowy powinien znać plan całego przedsięwzięcia - co i kiedy się wydarzy.\n", + "\n", + "### 5. Ryzyko\n", + "Trzeba wiedzieć, jak sobie radzić ze zdarzeniami, które nie są pewne - mieć przygotowany \"plan B\" na wszelkie okoliczności." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + " \n", + "

Ryzyko

\n", + "Ryzyko to niepewne wydarzenie, które w przypadku zajścia będzie miało wpływ na osiągnięcie założeń projektu.\n", + "
\n", + " \n", + "Wartość ryzyka można wyznaczyć mnożąc prawdopodobieństwo zajścia zdarzenia przez wielkość jego wpływu na projekt.\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 6. Zmiana\n", + "Niezbędna jest świadomość tego, jak decyzja o jakiejkolwiek zmianie wpłynie na plany i produkt.\n", + "\n", + "### 7. Postępy\n", + "Trzeba stale monitorować wykonywanie projektu i na bieżąco decydować, czy i jak się powinno kontynuować." ] }, { @@ -365,7 +435,100 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Artefakty w Prince2" + "
\n", + " \n", + "

Proces

\n", + "Proces to zestaw aktywności, mających na celu zrelizowanie pewnego określonego celu.\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1. Przygotowanie projektu\n", + "CEL: Zapewnienie, że:\n", + " * projekt ma sens biznesowy i jest na niego pozwolenie\n", + " * znany jest zakres projektu\n", + " * wyznaczono osoby do roli zarządczych\n", + " * zaplanowano prace do inicjacji projektu\n", + " * odrzucono nierozsądne pomysły\n", + " \n", + "### 2. Zarządzanie strategiczne projektem\n", + " CEL: Zapewnienie, że:\n", + " * są osoby odpowiedzialne za inicjację projektu, dostarczanie produktów i zakończenie prokjektu\n", + " * przedstawiciel klineta ma dostęp do informacji o postępach projektu\n", + " * plany dotyczące wykorzystania produktu po zakończeniu projektu są cały czas aktualne\n", + " \n", + "### 3. Inicjowanie projektu\n", + " CEL: Oszacowanie następujących cech projektu:\n", + " * czas wykonania\n", + " * koszt wykonania\n", + " * oczekiwana jakość\n", + " * zakres\n", + " * ryzyko\n", + " * korzyści\n", + " \n", + "### 4. Sterowanie etapem\n", + " CEL: zapewnienie, że dla danego etapu\n", + " * przydzielono wykonawców do wszystkich zadań\n", + " * praca jest monitorowana\n", + " * problemy są zgłaszane\n", + " * każdy etap jest udokumentowany raportem\n", + " \n", + "### 5. Zarządzanie wytwarzaniem produktu\n", + " CEL: zapewnienie, że\n", + " * jest pełne zrozumienie, jakie są wymagania na przyjęcie produktu\n", + " * dostarczony produktu mieści się w granicach przyjętej tolerancji\n", + " \n", + "### 6. Zarządzanie punktami granicznymi między etapami\n", + " CEL: dostarczenie przełożonym wystarczającej informacji, by można określić\n", + " * czy etap zakończył się sukcesem\n", + " * czy (i ewentualnie jak) należy zmodyfikować kolejny etap\n", + " * czy (i ewentualnie jak) należy zmodyfikować cały plan\n", + " * potwierdzić, czy istnieje potrzeba biznesowa na kontynuowanie planu i czy można zaakceptować ryzyko\n", + " \n", + "### 7. Zamykanie projektu \n", + " CEL: Określenie momnetu w czasie, kiedy projekt jest zaakceptowany, czyli:\n", + " * sprawdzono, że produkty są zaakceptowane przez ich użytkowników\n", + " * zweryfikowano, że działanie produktów jest zgodne z założeniami\n", + " * określono uzyskane i przyszły korzyści z wyników projektu\n", + " * zdefiniowano ryzyka i niepewności, któe mogą powstać po zakońceniu projektu" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Trzy grupy interesariuszy\n", + "W projekcie zgodnym z PRINCE2 powinny być zawsze reprezentowane trzy główne grupy interesariuszy:\n", + "\n", + " * Biznes\n", + " * Użytkowników \n", + " * Dostawców.\n", + "\n", + "### Strona reprezentująca Biznes\n", + "„Czy projekt jest ciągle wart realizacji?”. W komitecie sterującycm biznes reprezentowany jest przez **Przewodniczącego**.\n", + "\n", + "### Strona reprezentująca Użytkowników\n", + "Użytkownicy odnoszą korzyści dzięki eksploatacji wytworzonych w projekcie produktów. Mogą też tymi produktami się posługiwać oraz je serwisować i utrzymywać. W celu zapewnienia, że w projekcie powstaną właściwe produkty o uzgodnionej jakości, użytkownicy muszą być reprezentowani w Komitecie Sterującym. Reprezentację tę powierza się roli **Głównego Użytkownika**.\n", + "\n", + "### Strona reprezentująca dostawców\n", + "Dostawca zapewnia zasoby i umiejętności niezbędne do wytworzenia produktów, np. firma IT. Interesy dostawców są reprezentowane w Komitecie Sterującym przez rolę **Głównego Dostawcy**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "

Rola

\n", + " Rola to funkcja w projekcie, do której przypisane są obowiązki i odpowiedzialności. \n", + "
Role są powierzane konkretnym osobom. W niewielkim projekcie jedna osoba może pełnić kilka ról.\n", + " \n", + "
" ] }, { @@ -374,6 +537,21 @@ "source": [ "## Role w Prince2" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Komitet Sterujący (ang. Project Board), a w nim: \n", + " * Przewodniczący (Executive)\n", + " * Główny Użytkownik (Senior User)\n", + " * Główny Dostawca (Senior Supplier)\n", + "* Kierownik Projektu (Project Manager) - odpowiedzialny za operacyjne (codzienne) zarządzanie projektem. Jego podstawowym obowiązkiem jest dbanie o to, aby projekt wytwarzał wymagane produkty przy założonych celach, którymi są: czas, koszt, jakość, zakres, ryzyko i korzyści.\n", + "* Kierownik Zespołu (Team Manager) - odpowiedzialny za dostarczanie określonego produktu o zdefiniowanej jakości w ramach uzgodnionego kosztu i czasu. Rola Kierownika Zespołu jest opcjonalna i ma zazwyczaj zastosowanie w dużych projektach.\n", + "* Nadzór Projektu (Project Assurance) - drugie źródło informacji dla Komitetu Sterującego (przydatne w sytuacji, gdy Kierownik Projektu nie chce ujawniać problemów).\n", + "* Wsparcie Projektu (Project Support) - wsparcie administracyjne oraz wsparcie w zakresie planowania i zarządzania ryzykiem Obsługa Zmian.\n", + "* Obsługa Zmian - osoba lub zespół delegowany do oceny żądań zmian lub odstępstw - z reguły są to zmiany poważniejsze niż te, które są w gestii Kierownika Projektu, a za mało istotne, by zawracać głowę Komitetowi Sterującemu." + ] } ], "metadata": { diff --git a/materiały na PPB (wykład)/05_metodologia Prince2Agile.ipynb b/materiały na PPB (wykład)/05_metodologia Prince2Agile.ipynb index 2912a1e..afd61dd 100644 --- a/materiały na PPB (wykład)/05_metodologia Prince2Agile.ipynb +++ b/materiały na PPB (wykład)/05_metodologia Prince2Agile.ipynb @@ -18,7 +18,247 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Podstawowe koncepcje metodyk zwinnych" + "# Metodyki adaptacyjne w programowaniu (Agile Software Development)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + " Agile (zwinny) to pojęcie odnoszące się do szybkości i sprawności w działaniu i myśleniu.\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Manifest Agile\n", + " * opublikowany w roku 2001\n", + " * autorzy: 17 teoretyków i praktyków programowania\n", + " * 4 wartości\n", + " * 12 zasad (pryncypiów)\n", + " \n", + " ### 4 wartości manifestu Agile\n", + " 1. Ludzie i interakcje ponad procesy i narzędzia\n", + " 2. Działające oprogramowanie ponad szczegółową dokumentację\n", + " 3. Współpraca z klientem ponad negocjację umów\n", + " 4. Reagowanie na zmiany ponad podążaniem za planem\n", + " \n", + " ### 12 pryncypiów manifestu Agile \n", + " [12 pryncypiów](https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 10 pryncypiów wg Kelly Watersa" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Active User Involvement Is Imperative" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "Nic dobrego nie wynika
\n", + "Bez zaangażowania użytkownika.\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Agile Development Teams Must Be Empowered" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "Nie warta praca mozołu,
\n", + "Gdy władza nie w rękach zespołu.\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. Time waits for no man." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "Czas płynie wartko jak rzeka,
\n", + "I na nikogo nie czeka.\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. Agile Requirements Are Barely Sufficient." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "Dosłownie w kilku dziś zdaniach
\n", + "Streścimy swe wymagania.\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. How do you eat an elephant? One bite at a time." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "Sekretów uchylam wieczko:
\n", + "Jedz słonia małą łyżeczką.\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "6. Fast but not so furious." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "Byli szybcy, lecz nie wściekli,
\n", + "I na czas produkt dowlekli.\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "7. Done Means DONE!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "Praca była \"wykonana\",
\n", + "I działało... aż do rana.\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "8. Enough is enough." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + " \n", + "Projekt ciągle się rozrasta,
\n", + "Trzeba krzyknąć: \"Stop i Basta!\"\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "9. Agile Testing Is Not For Dummies." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + " \n", + "Wiedz, że by dobrze testować,
\n", + "Twa głowa ma być pomysłowa.\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "10. No place for snipers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + " \n", + "Choć mocno znów cierpi Twe ego,
\n", + "Nie strzelaj - do siebie samego.\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Przykład manifestu zespołu ludzi (PWN AI)\n", + "> 1. Biznes stawia **cele**, IT daje **rozwiązania**.\n", + "> 2. Wszystko da się zrobić.\n", + "> 3. Biznes wyjaśnia **potrzeby**, IT wyjaśnia **możliwości**.\n", + "> 4. **Komunikacja i zaangażowanie** – albo wyrzucanie pieniędzy w błoto.\n", + "> 5. Wszyscy jesteśmy **elastyczni**." ] }, { @@ -28,6 +268,40 @@ "## Metodyka SCRUM" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + " \n", + "Scrum jest metodyką, w której kluczowym elementem jest **sprint** - faza, która kończy się działającym prototypem. Po każdym sprincie następuje planowanie działań w kolejnym sprincie - biorące pod uwagę dotychczasowe doświadczenia.\n", + " \n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Role w metodyce Scrum" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + " \n", + "
Udziałowcy (stakeholders)
\n", + "Udziałowcy to ludzie, którzy finansują projekt:\n", + "
    \n", + "
  1. właściciele firmy realizującej projekt
  2. \n", + "
  3. klienci
  4. \n", + "
  5. przyszli użytkownicy
  6. \n", + "
\n", + "
" + ] + }, { "cell_type": "markdown", "metadata": {},