diff --git a/.ipynb_checkpoints/05_metodyki_zwinne-checkpoint.ipynb b/.ipynb_checkpoints/05_metodyki_zwinne-checkpoint.ipynb
new file mode 100644
index 0000000..56f3ea6
--- /dev/null
+++ b/.ipynb_checkpoints/05_metodyki_zwinne-checkpoint.ipynb
@@ -0,0 +1,641 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
+ "
\n",
+ "
Przygotowanie do projektu badawczo-rozwojowego
\n",
+ " 5. Metodyki adaptacyjne w programowaniu[wykład]
\n",
+ "Krzysztof Jassem (2021)
\n",
+ "\n",
+ "\n",
+ "![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Metodyki adaptacyjne (zwinne) 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 (All About Agile: Agile Management Made Easy!, 2012)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "1. Active User Involvement Is Imperative."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n",
+ "Nic dobrego nie wynika
\n",
+ "Bez udziału 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, by dobrze móc 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**."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 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": [
+ "Struktura metodyki Scrum opiera się na trzech filarach:\n",
+ "* Artefakty\n",
+ "* Role\n",
+ "* Cykl Pracy"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Artefakty w metodyce Scrum"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ " \n",
+ "
Rejestr Produktu (Product Backlog)
\n",
+ "\n",
+ "
Rejestr Produktu to lista zadań do wykonania w projekcie ułożona według priorytetu wykonania.\n",
+ "\n",
+ "
\n",
+ " - Rejestr produktu utrzymywany jest przez Właściciela Produktu.
\n",
+ " - Zadania, których efekt widoczny jest dla użytkownika mają często postać User Story .
\n",
+ " - Zadania o najniższym priorytecie mogą być usuwane z Rejestru Produktu.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ " \n",
+ "
User Story
\n",
+ "\n",
+ ">
User story to krótki opis wybranej funkcjonalności, napisany z punktu widzenia docelowego użytkownika danego produktu (Encyklopedia Zarządzania).\n",
+ "\n",
+ "User Story ma zwykle postać: \n",
+ "> Jako
chcę wykonać aby\n",
+ "\n",
+ " Przykład User Story
\n",
+ " \n",
+ "> Jako klient sklepu chcę dodać produkt do koszyka aby go później kupić .\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ " \n",
+ "
Rejestr Sprintu (Sprint Backlog)
\n",
+ "\n",
+ "
Rejestr Sprintu to lista
Zadań do wykonania podczas Sprintu:\n",
+ "\n",
+ "
\n",
+ " - utrzymywana przez Zespół Deweloperski,
\n",
+ " - tworzona na początku każdego Sprintu przez Zespół Deweloperski na podstawie priorytetowego zadania z Rejestru Produktu.
\n",
+ "
\n",
+ "
\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ " \n",
+ "
Zadanie (Task)
\n",
+ "\n",
+ "
Zadanie w Rejestrze Sprintu zawiera następujące informacje:\n",
+ "\n",
+ "
\n",
+ " - opis zadania,
\n",
+ " - szacowany czas wykonania zadania,
\n",
+ " - członek zespołu odpowiedzialnego za wykonanie zadania,
\n",
+ " - status danego zadania (np. jeden z trzech: oczekuje na realizację/w trakcie realizacji/wykonane).
\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": {},
+ "source": [
+ "\n",
+ " \n",
+ "
Właściciel Produktu (Product Owner)
\n",
+ "\n",
+ "
Właściciel Produktu to rola, która reprezentuje interesy biznesu.\n",
+ "\n",
+ "
Zadania Właściciela Produktu:
\n",
+ "\n",
+ "
\n",
+ " - nadzoruje pisanie User Stories,
\n",
+ " - analizuje na bieżąco potrzeby biznesu i na tej podstawie...
\n",
+ " - ustala priorytet User Stories w Rejestrze Produktu,
\n",
+ " - decyduje, co jest WYKONANE.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Zespół Deweloperski (Development Team)
\n",
+ " \n",
+ "
Zespół Deweloperski to zespół wykonawców oprogramowania, zazwyczaj składający się z kilku osób (3-9), o równych prawach.\n",
+ " \n",
+ "
Zadania Zespołu Deweloperskiego:
\n",
+ "\n",
+ "
\n",
+ " - jest odpowiedzialny za implementację,
\n",
+ " - na podstawie priorytetów Właściciela produktu określa zadania na kolejny sprint,
\n",
+ " - wykonuje cały proces: analiza, programowanie, testowanie (dzienniku produktu),
\n",
+ " - sam decyduje o sposobie realizacji zadań.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Scrum Master
\n",
+ "\n",
+ "Scrum Master to członek zespołu deweloperskiego, mający dobre zrozumienie ideologii SCRUM.\n",
+ "\n",
+ "
Zadania Scrum Mastera:
\n",
+ "
\n",
+ " - prowadzi Daily (spotkanie zespołu),
\n",
+ " - prowadzi Retrospektywę,
\n",
+ " - buduje relacje w zespole,
\n",
+ " - pomaga rozwiązywać konflikty,
\n",
+ " - pośredniczy w rozmowach z Właścicielem produktu.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Cykl pracy w metodyce Scrum"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Sprint
\n",
+ "\n",
+ "
Sprint to okres, podczas którego tworzy się przyrost projektu, skutkujący prototypem gotowym do użycia. Sprint zazwyczaj trwa nie krócej niż tydzień i nie dłuzej niż miesiąc.\n",
+ "W skład Sprintu wchodzą:\n",
+ "
\n",
+ " - Planowanie Sprintu,
\n",
+ " - Implementacja,
\n",
+ " - Codzienne spotkania,
\n",
+ " - Przegląd Sprintu,
\n",
+ " - Retrospektywa.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Planowanie Sprintu (Sprint Planning)
\n",
+ "\n",
+ "
Planowanie sprintu jest pierwszym spotkaniem podczas każdego sprintu. \n",
+ "\n",
+ "
\n",
+ "- Planowanie Sprintu bierze udział Zespół Deweloperski oraz opcjonalnie Właściciel Produktu.
\n",
+ "- Planowanie Sprintu prowadzone jest przez Scrum Mastera.
\n",
+ "
\n",
+ "\n",
+ "
Standardowy przebieg Planowania Sprintu:
\n",
+ "
\n",
+ " - Analizy Rejestru Produktu - wybór wymagań do realizacji,
\n",
+ " - Określenie celu sprintu - na podstawie wybranych wymagań,
\n",
+ " - Określenie pełnego zakresu prac: jak będzie działał system po Sprincie,
\n",
+ " - Stworzenie Rejestru Sprintu: podział zakresu prac na zadania i przydzielenie członków zespołu do zadań,
\n",
+ " - Estymacja pracochłonności zadań.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Codzienne Spotkania (Daily Scrum)
\n",
+ "\n",
+ "
Codzienne Spotkanie (stosowana nazwa w j. polskim -
Daily ) to codzienne zdarzenie, które trwa do piętnastu minut w stałym miejscu i o stałej porze. \n",
+ "\n",
+ "
\n",
+ "- W Daily bierze udział Zespół Deweloperski.
\n",
+ "- Daily prowadzone jest przez Scrum Mastera.
\n",
+ "
\n",
+ " \n",
+ "
Standardowy plan Daily:
\n",
+ "\n",
+ "
\n",
+ " - Przegląd prac w ciągu ostatniego dnia,
\n",
+ " - Omówienie pojawiających się problemów,
\n",
+ " - Omówienie planu na kolejny dzień.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Przegląd Sprintu
\n",
+ "\n",
+ "
Przegląd Sprintu jest spotkaniem organizowanym na zakończenie Sprintu w celu zweryfikowania wykonania zadań w Sprincie i dostosowania Rejestru Produktu. \n",
+ "\n",
+ "
\n",
+ "- W Przeglądzie Sprintu bierze udział Zespół Deweloperski, Właściciel Produktu oraz Udziałowcy zaproszenieni przez Właściciela Produktu.
\n",
+ "- Przegląd Sprintu prowadzony jest przez Właściciela Produktu.
\n",
+ "
\n",
+ " \n",
+ "
Standardowy plan Przeglądu Sprintu:
\n",
+ "\n",
+ "
\n",
+ " - Właściciel Produktu wyjaśnia Udziałowcom, które funkcjonalności zostały \"Wykonane”, a które nie.
\n",
+ " - Zespół Deweloperski omawia zadania w Sprincie, jakie były problemy oraz jak je rozwiązano.
\n",
+ " - Zespół Deweloperski prezentuje \"Wykonaną” pracę; dyskusja.
\n",
+ " - Właściciel Produktu omawia obecny Rejestr Produktu.
\n",
+ " - Uczestnicy omawiają kolejne kroki pracy pod kątem potrzeb biznesu.\n",
+ "
- Właściciel produktu aktualizuje Rejestr Produktu.\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Retrospektywa Sprintu
\n",
+ "\n",
+ "
Retrospektywa Sprintu to spotkanie po Przeglądzie Sprintu w celu opracowania usprawnień na następny Sprint. \n",
+ "\n",
+ "
\n",
+ "- W Retrospektywie udział bierze Zespół Deweloperski.
\n",
+ "- Retrospektywę prowadzi Scrum Master.
\n",
+ "
\n",
+ " \n",
+ "
Standardowy plan Retrospektywy:
\n",
+ "\n",
+ "
\n",
+ " - Sprawdzenie, co działo się w ostatnim Sprincie,
\n",
+ " - Zidentyfikowanie elementów, które sprawdziły się w działaniu,
\n",
+ " - Zidentyfikowanie elementów, które kwalifikują się do usprawnienia,
\n",
+ " - Stworzenie planu wprowadzania w życie usprawnień.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Wniosek\n",
+ "Nie zrobi informatyk \n",
+ "Złotego interesu, \n",
+ "Gdy nie będzie co tydzień \n",
+ "Słuchał potrzeb biznesu."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Zadania proponowane na laboratoria\n",
+ "Podzielcie się rolami w projekcie według metodyki Scrum i opiszcie, jak widzicie swoje zadania w projekcie.\n",
+ "\n",
+ "Opracujcie 5-punktowy manifest pracy w Waszym zespole.\n",
+ "\n",
+ "Ocena maksymalna: 10 punktów\n",
+ "\n",
+ "Zadanie 5. Zakładamy backlog\n",
+ "Utwórzcie projekt w systemie JIRA.\n",
+ "Opracujcie profile członków grupy (zdjęcia mile widziane).\n",
+ "Wpiszcie do backloga \"user stories\" związane z projektem - założcie w tym momencie, że wykonacie cały produkt high-tech.\n",
+ "Sprobujcie oszacować czas realizacji każdego \"user story\" za pomocą punktów, zakładając że 10 punktów odpowiada sumie pracy całego zespołu podczas jednego tygodniowego sprintu.\n",
+ "Ocena maksymalna: 10 punktów"
+ ]
+ }
+ ],
+ "metadata": {
+ "author": "Krzysztof Jassem",
+ "email": "jassem@amu.edu.pl",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "lang": "pl",
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.5"
+ },
+ "subtitle": "05. Metodologia Prince2Agile[wykład]",
+ "title": "Przygotowanie do projektu badawczo-rozwojowego",
+ "year": "2021"
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/02_projekt_badawczo-rozwojowy.ipynb b/02_prelekcja_inwestora.ipynb
similarity index 100%
rename from 02_projekt_badawczo-rozwojowy.ipynb
rename to 02_prelekcja_inwestora.ipynb
diff --git a/03_projekt_badawczo-rozwojowy.ipynb b/03_transfer_wiedzy_do_biznesu.ipynb
similarity index 100%
rename from 03_projekt_badawczo-rozwojowy.ipynb
rename to 03_transfer_wiedzy_do_biznesu.ipynb
diff --git a/05_metodyki_zwinne.ipynb b/05_metodyki_zwinne.ipynb
new file mode 100644
index 0000000..9d1cb1b
--- /dev/null
+++ b/05_metodyki_zwinne.ipynb
@@ -0,0 +1,640 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
+ "\n",
+ "
Przygotowanie do projektu badawczo-rozwojowego
\n",
+ " 5. Metodyki adaptacyjne w programowaniu[wykład]
\n",
+ "Krzysztof Jassem (2021)
\n",
+ "\n",
+ "\n",
+ "![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Metodyki adaptacyjne (zwinne) 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 (All About Agile: Agile Management Made Easy!, 2012)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "1. Active User Involvement Is Imperative."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n",
+ "Nic dobrego nie wynika
\n",
+ "Bez udziału 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, by dobrze móc 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**."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 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": [
+ "Struktura metodyki Scrum opiera się na trzech filarach:\n",
+ "* Artefakty\n",
+ "* Role\n",
+ "* Cykl Pracy"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Artefakty w metodyce Scrum"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ " \n",
+ "
Rejestr Produktu (Product Backlog)
\n",
+ "\n",
+ "
Rejestr Produktu to lista zadań do wykonania w projekcie ułożona według priorytetu wykonania.\n",
+ "\n",
+ "
\n",
+ " - Rejestr produktu utrzymywany jest przez Właściciela Produktu.
\n",
+ " - Zadania, których efekt widoczny jest dla użytkownika mają często postać User Story .
\n",
+ " - Zadania o najniższym priorytecie mogą być usuwane z Rejestru Produktu.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ " \n",
+ "
User Story
\n",
+ "\n",
+ ">
User story to krótki opis wybranej funkcjonalności, napisany z punktu widzenia docelowego użytkownika danego produktu (Encyklopedia Zarządzania).\n",
+ "\n",
+ "User Story ma zwykle postać: \n",
+ "> Jako
chcę wykonać aby\n",
+ "\n",
+ " Przykład User Story
\n",
+ " \n",
+ "> Jako klient sklepu chcę dodać produkt do koszyka aby go później kupić .\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ " \n",
+ "
Rejestr Sprintu (Sprint Backlog)
\n",
+ "\n",
+ "
Rejestr Sprintu to lista
Zadań do wykonania podczas Sprintu:\n",
+ "\n",
+ "
\n",
+ " - utrzymywana przez Zespół Deweloperski,
\n",
+ " - tworzona na początku każdego Sprintu przez Zespół Deweloperski na podstawie priorytetowego zadania z Rejestru Produktu.
\n",
+ "
\n",
+ "
\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ " \n",
+ "
Zadanie (Task)
\n",
+ "\n",
+ "
Zadanie w Rejestrze Sprintu zawiera następujące informacje:\n",
+ "\n",
+ "
\n",
+ " - opis zadania,
\n",
+ " - szacowany czas wykonania zadania,
\n",
+ " - członek zespołu odpowiedzialnego za wykonanie zadania,
\n",
+ " - status danego zadania (np. jeden z trzech: oczekuje na realizację/w trakcie realizacji/wykonane).
\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": {},
+ "source": [
+ "\n",
+ " \n",
+ "
Właściciel Produktu (Product Owner)
\n",
+ "\n",
+ "
Właściciel Produktu to rola, która reprezentuje interesy biznesu.\n",
+ "\n",
+ "
Zadania Właściciela Produktu:
\n",
+ "\n",
+ "
\n",
+ " - nadzoruje pisanie User Stories,
\n",
+ " - analizuje na bieżąco potrzeby biznesu i na tej podstawie...
\n",
+ " - ustala priorytet User Stories w Rejestrze Produktu,
\n",
+ " - decyduje, co jest WYKONANE.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Zespół Deweloperski (Development Team)
\n",
+ " \n",
+ "
Zespół Deweloperski to zespół wykonawców oprogramowania, zazwyczaj składający się z kilku osób (3-9), o równych prawach.\n",
+ " \n",
+ "
Zadania Zespołu Deweloperskiego:
\n",
+ "\n",
+ "
\n",
+ " - jest odpowiedzialny za implementację,
\n",
+ " - na podstawie priorytetów Właściciela produktu określa zadania na kolejny sprint,
\n",
+ " - wykonuje cały proces: analiza, programowanie, testowanie (dzienniku produktu),
\n",
+ " - sam decyduje o sposobie realizacji zadań.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Scrum Master
\n",
+ "\n",
+ "Scrum Master to członek zespołu deweloperskiego, mający dobre zrozumienie ideologii SCRUM.\n",
+ "\n",
+ "
Zadania Scrum Mastera:
\n",
+ "
\n",
+ " - prowadzi Daily (spotkanie zespołu),
\n",
+ " - prowadzi Retrospektywę,
\n",
+ " - buduje relacje w zespole,
\n",
+ " - pomaga rozwiązywać konflikty,
\n",
+ " - pośredniczy w rozmowach z Właścicielem produktu.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Cykl pracy w metodyce Scrum"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Sprint
\n",
+ "\n",
+ "
Sprint to okres, podczas którego tworzy się przyrost projektu, skutkujący prototypem gotowym do użycia. Sprint zazwyczaj trwa nie krócej niż tydzień i nie dłuzej niż miesiąc.\n",
+ "W skład Sprintu wchodzą:\n",
+ "
\n",
+ " - Planowanie Sprintu,
\n",
+ " - Implementacja,
\n",
+ " - Codzienne spotkania,
\n",
+ " - Przegląd Sprintu,
\n",
+ " - Retrospektywa.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Planowanie Sprintu (Sprint Planning)
\n",
+ "\n",
+ "
Planowanie sprintu jest pierwszym spotkaniem podczas każdego sprintu. \n",
+ "\n",
+ "
\n",
+ "- Planowanie Sprintu bierze udział Zespół Deweloperski oraz opcjonalnie Właściciel Produktu.
\n",
+ "- Planowanie Sprintu prowadzone jest przez Scrum Mastera.
\n",
+ "
\n",
+ "\n",
+ "
Standardowy przebieg Planowania Sprintu:
\n",
+ "
\n",
+ " - Analizy Rejestru Produktu - wybór wymagań do realizacji,
\n",
+ " - Określenie celu sprintu - na podstawie wybranych wymagań,
\n",
+ " - Określenie pełnego zakresu prac: jak będzie działał system po Sprincie,
\n",
+ " - Stworzenie Rejestru Sprintu: podział zakresu prac na zadania i przydzielenie członków zespołu do zadań,
\n",
+ " - Estymacja pracochłonności zadań.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Codzienne Spotkania (Daily Scrum)
\n",
+ "\n",
+ "
Codzienne Spotkanie (stosowana nazwa w j. polskim -
Daily ) to codzienne zdarzenie, które trwa do piętnastu minut w stałym miejscu i o stałej porze. \n",
+ "\n",
+ "
\n",
+ "- W Daily bierze udział Zespół Deweloperski.
\n",
+ "- Daily prowadzone jest przez Scrum Mastera.
\n",
+ "
\n",
+ " \n",
+ "
Standardowy plan Daily:
\n",
+ "\n",
+ "
\n",
+ " - Przegląd prac w ciągu ostatniego dnia,
\n",
+ " - Omówienie pojawiających się problemów,
\n",
+ " - Omówienie planu na kolejny dzień.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Przegląd Sprintu
\n",
+ "\n",
+ "
Przegląd Sprintu jest spotkaniem organizowanym na zakończenie Sprintu w celu zweryfikowania wykonania zadań w Sprincie i dostosowania Rejestru Produktu. \n",
+ "\n",
+ "
\n",
+ "- W Przeglądzie Sprintu bierze udział Zespół Deweloperski, Właściciel Produktu oraz Udziałowcy zaproszenieni przez Właściciela Produktu.
\n",
+ "- Przegląd Sprintu prowadzony jest przez Właściciela Produktu.
\n",
+ "
\n",
+ " \n",
+ "
Standardowy plan Przeglądu Sprintu:
\n",
+ "\n",
+ "
\n",
+ " - Właściciel Produktu wyjaśnia Udziałowcom, które funkcjonalności zostały \"Wykonane”, a które nie.
\n",
+ " - Zespół Deweloperski omawia zadania w Sprincie, jakie były problemy oraz jak je rozwiązano.
\n",
+ " - Zespół Deweloperski prezentuje \"Wykonaną” pracę; dyskusja.
\n",
+ " - Właściciel Produktu omawia obecny Rejestr Produktu.
\n",
+ " - Uczestnicy omawiają kolejne kroki pracy pod kątem potrzeb biznesu.\n",
+ "
- Właściciel produktu aktualizuje Rejestr Produktu.\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "
Retrospektywa Sprintu
\n",
+ "\n",
+ "
Retrospektywa Sprintu to spotkanie po Przeglądzie Sprintu w celu opracowania usprawnień na następny Sprint. \n",
+ "\n",
+ "
\n",
+ "- W Retrospektywie udział bierze Zespół Deweloperski.
\n",
+ "- Retrospektywę prowadzi Scrum Master.
\n",
+ "
\n",
+ " \n",
+ "
Standardowy plan Retrospektywy:
\n",
+ "\n",
+ "
\n",
+ " - Sprawdzenie, co działo się w ostatnim Sprincie,
\n",
+ " - Zidentyfikowanie elementów, które sprawdziły się w działaniu,
\n",
+ " - Zidentyfikowanie elementów, które kwalifikują się do usprawnienia,
\n",
+ " - Stworzenie planu wprowadzania w życie usprawnień.
\n",
+ "
\n",
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Wniosek\n",
+ "Nie zrobi informatyk \n",
+ "Złotego interesu, \n",
+ "Gdy nie będzie co tydzień \n",
+ "Słuchał potrzeb biznesu."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Zadania proponowane na laboratoria\n",
+ "### Zadanie 1.\n",
+ "Podzielcie się rolami w projekcie według metodyki Scrum i opiszcie, jak widzicie swoje zadania w projekcie.\n",
+ "\n",
+ "### Zadanie 2.\n",
+ "Opracujcie 5-punktowy manifest pracy w Waszym zespole.\n",
+ "\n",
+ "### Zadanie 3.\n",
+ "Utwórzcie projekt w systemie JIRA.\n",
+ "Opracujcie profile członków grupy (zdjęcia mile widziane).\n",
+ "Wpiszcie do backloga \"user stories\" związane z projektem - założcie w tym momencie, że wykonacie cały produkt high-tech.\n",
+ "Sprobujcie oszacować czas realizacji każdego \"user story\" za pomocą punktów, zakładając że 10 punktów odpowiada sumie pracy całego zespołu podczas jednego tygodniowego sprintu."
+ ]
+ }
+ ],
+ "metadata": {
+ "author": "Krzysztof Jassem",
+ "email": "jassem@amu.edu.pl",
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "lang": "pl",
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.5"
+ },
+ "subtitle": "05. Metodologia Prince2Agile[wykład]",
+ "title": "Przygotowanie do projektu badawczo-rozwojowego",
+ "year": "2021"
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}