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",
" - Projekty są dobrze określone, a zatem łatwe w zarządzaniu.
\n",
" - Przebieg projektu opisany jest liniowo (sekwencyjnie), przez co łatwiej go zrozumieć.
\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",
+ " - właściciele firmy realizującej projekt
\n",
+ " - klienci
\n",
+ " - przyszli użytkownicy
\n",
+ "
\n",
+ "
"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},