Zmiana treści wykładów 4. i 5.

This commit is contained in:
Krzysztof Jassem 2021-10-14 15:01:48 +02:00
parent 6121b1c38b
commit 48dbeb495f
4 changed files with 489 additions and 37 deletions

View File

@ -263,7 +263,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.8.5" "version": "3.7.6"
}, },
"subtitle": "01. Praca zespołowa[wykład]", "subtitle": "01. Praca zespołowa[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego", "title": "Przygotowanie do projektu badawczo-rozwojowego",

View File

@ -300,7 +300,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.8.5" "version": "3.7.6"
}, },
"subtitle": "02. Projekt badawczo-rozwojowy[wykład]", "subtitle": "02. Projekt badawczo-rozwojowy[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego", "title": "Przygotowanie do projektu badawczo-rozwojowego",

View File

@ -58,7 +58,7 @@
"metadata": {}, "metadata": {},
"source": [ "source": [
"### Cechy charakterystyczne projektu\n", "### 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", "\n",
" * Zmiana - projekt to środek do przeprowadzenia zmiany.\n", " * Zmiana - projekt to środek do przeprowadzenia zmiany.\n",
" * Tymczasowość - projekt ma swoją datę początku i końca.\n", " * Tymczasowość - projekt ma swoją datę początku i końca.\n",
@ -133,7 +133,8 @@
"<ol>\n", "<ol>\n",
" <li> Projekty są dobrze określone, a zatem łatwe w zarządzaniu. </li>\n", " <li> Projekty są dobrze określone, a zatem łatwe w zarządzaniu. </li>\n",
" <li> Przebieg projektu opisany jest liniowo (sekwencyjnie), przez co łatwiej go zrozumieć.</li>\n", " <li> Przebieg projektu opisany jest liniowo (sekwencyjnie), przez co łatwiej go zrozumieć.</li>\n",
" </ol>" " </ol>\n",
"</div>"
] ]
}, },
{ {
@ -315,43 +316,112 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"## Zasady Prince2\n", "## Pryncypia Prince2"
"### 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."
] ]
}, },
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"## Motywy przewodnie Prince2 (themes)" "<div class=\"alert alert-block alert-success\">\n",
"\n",
"<b> Pryncypia Prince 2 </b> to nakazy wynikające z najlepszych praktyk zarządzania projektami. \n",
" \n",
"</div>"
]
},
{
"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": [
"<div class=\"alert alert-block alert-success\">\n",
"\n",
"<b> Motyw przewodni </b> to aspekt zarządzania. \n",
" \n",
"(Na przykład jedna osoba może zarządzać tylko jednym (lub kilkoma) aspektem zarządzania.)\n",
" \n",
"</div>"
]
},
{
"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 <b> odpowiedzialności </b>.\n",
"\n",
"### 3. Jakość\n",
"Trzeba mieć jasno określone <b>aspekty jakości</b>, 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 <b>\"plan B\"</b> na wszelkie okoliczności."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h3>Ryzyko</h3> \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",
"<BR>\n",
" \n",
"Wartość ryzyka można wyznaczyć mnożąc prawdopodobieństwo zajścia zdarzenia przez wielkość jego wpływu na projekt.\n",
" \n",
"</div>"
]
},
{
"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 <b> na bieżąco </b> decydować, czy i jak się powinno kontynuować."
] ]
}, },
{ {
@ -365,7 +435,100 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"## Artefakty w Prince2" "<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h3>Proces</h3> \n",
"Proces to zestaw aktywności, mających na celu zrelizowanie pewnego określonego celu.\n",
" \n",
"</div>"
]
},
{
"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": [
"<div class=\"alert alert-block alert-success\">\n",
"\n",
"<h3> Rola </h3>\n",
"<b> Rola </b> to funkcja w projekcie, do której przypisane są obowiązki i odpowiedzialności. \n",
"<BR> Role są powierzane konkretnym osobom. W niewielkim projekcie jedna osoba może pełnić kilka ról.\n",
" \n",
"</div>"
] ]
}, },
{ {
@ -374,6 +537,21 @@
"source": [ "source": [
"## Role w Prince2" "## 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": { "metadata": {

View File

@ -18,7 +18,247 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"## Podstawowe koncepcje metodyk zwinnych" "# Metodyki adaptacyjne w programowaniu (Agile Software Development)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
"\n",
"<b> Agile </b> (zwinny) to pojęcie odnoszące się do szybkości i sprawności w działaniu i myśleniu.\n",
" \n",
"</div>"
]
},
{
"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": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Nic dobrego nie wynika <BR>\n",
"Bez zaangażowania użytkownika.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Agile Development Teams Must Be Empowered"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Nie warta praca mozołu, <BR>\n",
"Gdy władza nie w rękach zespołu.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Time waits for no man."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Czas płynie wartko jak rzeka, <BR>\n",
"I na nikogo nie czeka.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"4. Agile Requirements Are Barely Sufficient."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Dosłownie w kilku dziś zdaniach <BR>\n",
"Streścimy swe wymagania.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"5. How do you eat an elephant? One bite at a time."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Sekretów uchylam wieczko: <BR>\n",
"Jedz słonia małą łyżeczką.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"6. Fast but not so furious."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Byli szybcy, lecz nie wściekli, <BR>\n",
"I na czas produkt dowlekli.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"7. Done Means DONE!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Praca była \"wykonana\", <BR>\n",
"I działało... aż do rana.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"8. Enough is enough."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"Projekt ciągle się rozrasta, <BR>\n",
"Trzeba krzyknąć: \"Stop i Basta!\"\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"9. Agile Testing Is Not For Dummies."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"Wiedz, że by dobrze testować, <BR>\n",
"Twa głowa ma być pomysłowa.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"10. No place for snipers"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"Choć mocno znów cierpi Twe ego, <BR>\n",
"Nie strzelaj - do siebie samego.\n",
" \n",
"</div>"
]
},
{
"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" "## Metodyka SCRUM"
] ]
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\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",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Role w metodyce Scrum"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h5>Udziałowcy (stakeholders)</h5>\n",
"Udziałowcy to ludzie, którzy finansują projekt:\n",
"<ol>\n",
" <li> właściciele firmy realizującej projekt</li>\n",
" <li> klienci</li>\n",
" <li> przyszli użytkownicy</li>\n",
" </ol>\n",
"</div>"
]
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},