Programowanie zespołowe

Podobne dokumenty
Programowanie obiektowe

EMPIRYZMSCRUM DOŚWIADCZENIE + PODEJMOWANIE DECYZJI = WIEDZA

Programowanie Zespołowe

Programowanie Zespołowe

Planowanie i realizacja zadań w zespole Scrum

Wprowadzenie do metodyki SCRUM. mgr inż. Remigiusz Samborski Instytut Informatyki Politechnika Wrocławska

Scrum. Zwinna metodyka prowadzenia projektów

Podejście tradycyjne. plan wykonanie sekwencyjna natura wykonywanych zadań

Programowanie zwinne - wprowadzenie. Programowanie ekstremalne. Wstęp Reguły i praktyki SCRUM. Wprowadzenie Role Zdarzenia Artefakty

Dobry Product Backlog Oferta szkolenia dla Product Ownerów

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Zarządzanie Projektami Plan kursu

SCRUM - FRAMEWORK DO ZWINNEGO PROWADZENIA PROJEKTÓW. Ilona Ławniczak-Tomczak

SCRUM niełatwe wdrażanie metodyki w praktyce. Adam Krosny

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Zwinne metodyki - Scrum

Scrum w praktyce. Michał Piórek

SCRUM Product Owner - wstęp do zarządzania produktami

DLACZEGO TO DZIAŁA? 21. marca 2012r.

SCRUM. Wprowadzenie Role Zdarzenia Artefakty KANBAN SCRUM-BAN

Zarządzanie projektami IT metodyką SCRUM. Cezary Kamiński

Scaling Scrum with SAFe. Małgorzata Czerwińska

AGILE SOFTWARE HOUSE SCRUM PRAKTYCZNIE SCRUM BOOK

Programowanie zespołowe

Marta Ożóg Agnieszka Pastusińska

Programowanie zespołowe

SCRUM. Metodyka prowadzenia projektów. Na podstawie prezentacji B. Kuka i W. Sidora

Zarządzanie projektami. Porównanie podstawowych metodyk

Spis Treści. Cel podręcznika. Definicja SCRUMa. Teoria SCRUMa. Zespół SCRUMowy. Właściciel Produktu. Zespół Deweloperski.

Główne założenia XP. Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

kompetencji zawodowych Professional Scrum Master I, Certified Scrum Master I Mirosław Dąbrowski zespół Indeed wprowadzenie Scruma

Jak uchronić architekturę i wymagania przed chaosem? Warszawa, 27 stycznia 2016 roku

EXIN Agile Scrum Foundation. Przewodnik egzaminacyjny

Analiza i projekt systemu pracy grupowej z zastosowaniem metodyki SCRUM w technologii SharePoint Karolina Konstantynowicz

Projektowanie oprogramowania. Termin zajęć: poniedziałek, a podstawie materiału ze strony.

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK

lub na

PROJEKTOWANIE ZORIENTOWANE NA UŻYTKOWNIKA W METODYCE SCRUM. Hubert Wawrzyniak Grupa Allegro

Analiza biznesowa a metody agile owe

EXIN Agile Scrum Foundation

Szybkość w biznesie. Zwinne testowanie oprogramowania (Agile) Mateusz Morawski (mateusz.morawski@hp.com) 14 kwietnia 2015

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Wstęp do zarządzania projektami

Jak być agile w projekcie utrzymaniowym? JOANNA SIEMIŃSKA

Nexus Przewodnik. Definitywny przewodnik po Nexusie: Rozszerzenie Scruma dla przedsięwzięć dużej skali

e R gulamin Kuźni Talentów

Omówienie założeń procesu Design Thinking i przeprowadzenie wstępnego warsztatu. Mariusz Muraszko i Mateusz Ojdowski Logisfera Nova

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Wstęp do zarządzania projektami

Programowanie Zespołowe

4. Wprowadzanie Scruma w ImmobilienScout Opis sytuacji

Wstęp do zarządzania projektami

WARSZTATY IPMA YOUNG CREW POLSKA

Feature Driven Development

Opis realizacji dla czterech zespołów (4 przypadki użycia)

Scrum i nie tylko : teoria i praktyka w metodach Agile / Krystian Kaczor. Wyd. 2. Warszawa, Spis treści

Opisy szkoleń dla certyfikatów Agile Scrum.

Lekkie metodyki. tworzenia oprogramowania

Scrum Guide. Przewodnik po Scrumie: Reguły Gry. Lipiec Przygotowany i utrzymywany przez Kena Schwabera i Jeffa Sutherlanda

Inżynieria oprogramowania II

AGILE PRODUCT MANAGEMENT. Szkolenie uczące, jak tworzyć i zarządzać produktami w dynamicznie zmieniającym się otoczeniu.

PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

Programowanie obiektowe

KILKA SŁÓW O ROLI PRODUCT MANAGERA

Program szkolenia: Wprowadzenie do Domain Driven Design dla biznesu (część 0)

Zasady organizacji projektów informatycznych

Scrum Guide. Przewodnik po Scrumie: Reguły Gry. Lipiec Przygotowany i utrzymywany przez Kena Schwabera i Jeffa Sutherlanda

Podejście zwinne do zarządzania projektami

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Scrum Guide. Przewodnik po Scrumie: Reguły gry. Lipiec Przygotowany i utrzymywany przez Kena Schwabera i Jeffa Sutherlanda

Rola testów. łatwiej czy trudniej? Wydział MiNI Politechnika Warszawska

Przewodnik egzaminacyjny. EXIN Agile Scrum. Wydanie

The Scrum Guide. Przewodnik po Scrumie: Reguły Gry. Lipiec Przygotowany i utrzymywany przez Kena Schwabera i Jeffa Sutherlanda

Zarządzanie projektami w NGO

Metodyki programowania. Tomasz Kaszuba 2015

Umowy w branży IT. Jak je konstuować, żeby uniknąć późniejszych nieporozumień. Tomasz Wiese Łukasz Marszał

SCRUM DLA OPORNYCH. porady, tricki i dobre praktyki

Usługa: Audyt kodu źródłowego

Testowanie w procesie Scrum

NOWE METODYKI PROWADZENIA PROJEKTU

SCRUM. jak pracować wydajniej i scalić zespół

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Oferta szkoleń firmy Code Sprinters

Wprowadzenie do Behaviordriven

Klasyczna organizacja też może być zwinna! Zarządzaj zwinnie projektami!

KANBAN SCRUM-BAN. Agile PM Zarys AUP

Podcast Menedżer Plus Odcinek 28

4C. III MODUŁ. PROJEKT EWALUACJI PROGRAMU ROZWOJU SZKOŁY

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Priorytetyzacja przypadków testowych za pomocą macierzy

Szkolenie: Dobry Kierownik Testów

Harmonogramowanie projektów Zarządzanie Zakresem

Zarządzanie projektami. Porównanie podstawowych metodyk

Programowanie zespołowe Dr inż. Robert Banasiak

Program kształcenia i plan studiów podyplomowych: Zarządzanie projektami

KAMIL SABATOWSKI. Najczęstsze błędy junior devów i jak ich uniknąć?

Zarządzanie wiedzą w zespołach projektowych stosujących metodę Scrum

AN EVOLUTION PROCESS FOR SERVICE- ORIENTED SYSTEMS

Faza Określania Wymagań

Transkrypt:

Programowanie zespołowe Laboratorium 5 - scrum cz. 1 mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 21 marca 2017 1 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Filary scruma Przejrzystość (widoczny jest rzeczywisty stan procesu). Inspekcja (analiza procesu wytwarzania). Adaptacja (dostosowanie procesu do potrzeb). http://procognita.pl 2 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Elementy scruma 1 Role. 2 Narzędzia (Rejestr Produktowy i Sprintu). 3 Zdarzenia (spotkania i sprinty; zapewniają ramy czasowe projektu i ułatwiają komunikację). 4 Reguły (łączą pozostałe elementy). 3 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Główne role w zespole scrumowym 1 Właściciel produktu (ang. Product Owner) - reprezentuje klienta. 2 Scrum Master - coach scrumowy. Współpracuje z zespołem, właścicielem produktu i całą firmą. 3 Zespół deweloperski - odpowiada za dostarczenie produktu. https://www.safaribooksonline.com 4 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Właściciel produktu Posiada wizję tworzonego produktu, którą zmienia na uporzadkowaną listę oczekiwań, tj. Rejestr Produktowy (ang. Product Backlog). Koncentruje się na maksymalizacji zysku z inwestycji (ROI) - posiada wiedzę dziedzinową i stale analizuje rynek (zajmuje się stroną biznesową). Pozyskuje informacje zwrotne o produkcie i wykorzystuje je do ustalenia kolejności zadań w Rejestrze Produktowym. Współpracuje z zespołem i interesariuszami. Akceptuje lub odrzuca efekty pracy. 5 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Miesjce właściciela produktu http://www.romanpichler.com/ 6 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Scrum Master Odpowiada za poprawne wdrożenie oraz promowanie podejścia zwinnego. Rozumie i tłumaczy zasady scruma. Wspiera i szkoli zespół. Upewnia się, że następuje efektywna współpraca oraz wszyscy uczestnicy rozumieją cel i wiedzą jak go osiągnąć. Poprzez pytania pomaga zespołowi odnaleźć rozwiązanie (nie narzuca własnego). Chroni zespół i usuwa problemy (np. organizuje potrzebne narzędzia). Pomaga w ciągłym doskonaleniu identyfikując przyczyny problemów i możliwe rozwiązania. Prowadzi spotkania. Przywódca służebny. 7 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Miejsce Scrum Mastera http://www.romanpichler.com/ 8 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zespół deweloperski Jest wielofunkcyjny - członkowie posiadają wszystkie potrzebne umiejętności i wiedzę (w zakresie analizy, testów, kodowania i różnych elementów systemu, które należy zmienić, aby dostarczyć przyrost produktu). Najczęściej składa się z 3-9 osób (dla większych projektów zaleca się stworzenie wielu wielofunkcyjnych zespołów). Jest samoorganizujący (członkowie sami dobierają niezbędne metody, narzędzia i procesy). Członkowie nie mają formalnych ról i są przypisani do jednego zespołu. Jest przypisany do jednego Rejestru Produktowego. 9 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zespół deweloperski cz. 2 Członkowie stale współpracują i komunikują się ze sobą, właścicielem produktu, Scrum Masterem oraz interesariuszami. Rozwiązuje problemy. Jeżeli jego członkowie nie potrafią sami rozwiązać problemu, zwracają się do Scrum Mastera i właściciela produktu. Pomaga właścicielowi produktu przygotować wymagania do kolejnych sprintów oraz zbiera od niego i klientów informację zwrotną. 10 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Narzędzia (artefakty) 1 Rejestr Produktowy (ang. Product Backlog) uszeregowana lista oczekiwań. 2 Rejestr Sprintu (ang. Sprint Backlog) - elementy wybrane z Rejestru Produktowego do sprintu. 3 Przyrost Produktu (ang. Product Increment) - efekt kolejnego sprintu. 11 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Rejestr Produktowy Rejestr Produktowy to uszeregowana lista wymagań (Elementy o wyższym priorytecie znajdują się wyżej). Właściciel produktu jest odpowiedzialny za zarządzanie nim. Często Elementami Rejestru (ang. Product Backlog Items) są Historyjki Użytkownika (ang. User Stories) lub przypadki użycia (ang. Use Cases). Jest on ogólnodostępny (jako jedyne źródło informacji na temat zadań zespołu deweloperskiego). Zawiera wszystkie rzeczy wymagane do zrobienia. Każdy Element zawiera trzy atrybuty: opis, priorytet (z punktu widzenia biznesowego) oraz koszt realizacji. Na priorytet wpływa ryzyko, wartość oraz konieczność realizacji. 12 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Przykład Rejestru Produktowego https://d2myx53yhj7u4b.cloudfront.net/ 13 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Przykładowy proces tworzenia Rejestru Produktowego Na początku procesu właściciel produktu znajduje tylko główne, najważniejsze historyjki użytkownika i opierając się na celach biznesowych stara się je priorytezować (z biznesowego punktu widzenia). W dalszych etapach dokument aktualizowany jest przez niego oraz zespół deweloperski. Utworzone historyjki są konsultowane z zespołem, który stara się dokonać szacowania za pomocą tzw. Story Points (uniezależniona od czasu wykonania uniwersalna miara złożoności danego zadania). Zakłada się, że im niższa wartość tym łatwiejsze zadanie. Zazwyczaj Story Points przybierają wartości z następującego zbioru: < 0, 1, 1, 2, 3, 5, 8, 13, 20, 40, 100 >. 2 14 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Prędkość zespołu Wydajność Liczba ukończonych story pointów w jednostce czasu (np. w sprincie) to wydajność zespołu określana mianem prędkości zespołu (ang. velocity). Na jej podstawie możemy szacować czas zakończenia prac. https://www.countersoft.com 15 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Planistyczny poker (Scrum poker) do estymacji SP Fazy pokera Moderator (zwykle Właściciel Produktu) czyta opis Historyjki i odpowiada na ewentualne pytania. Wszyscy jednocześnie wyciągają kartę z wartością mówiącą, ile Story Points powinna ich zdaniem mieć dana Historyjka. Jeżeli estymaty się różnią to właściciele najniższej i najwyższej wartości tłumaczą, dlaczego zaproponowali taką estymatę i głosowanie jest powtarzane. http://img.freepik.com 16 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Od czego zacząć estymację? Problem z estymacją pierwszych Historyjek rozwiązuje się poprzez znalezienie prostej Historyjki i przypisanie jej 1 SP, albo Historyjki o średniej złożoności uznać za 5 SP. Resztę Historyjek szacuje się relatywnie do wyestymowanych. 17 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Historyjki użytkownika Historyjki użytkownika Historyjki użytkownika (ang. User Stories) to jednozdaniowe oczekiwania względem projektu, określone z punktu widzenia użytkowników. Piszemy je w konwencji: Jako (kto) chcę (czego oczekuję), by (w jakim celu). Przykład: Jako zwykły użytkownik chcę powiększyć zdjęcie, by lepiej mu się przyjrzeć. 18 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Akronim INVEST dla Historyjek użytkownika INDEPENDENT (niezależna) - historyjka nie powinna zależeć od innych. NEGOTIABLE (negocjowalna) - powinna istnieć możliwość delikatnej modyfikacji. VALUABLE (cenna) - musi dostarczyć wartość interesariuszom. ESTIMABLE (dająca się oszacować) - musi istnieć możliwość oszacowania rozmiaru historyjki. SMALL (niewielka) - powinna być możliwa do zaplanowania, wykonania i priorytetyzacji. TESTABLE (testowalna) - musi umożliwić przetestowanie dodanej funkcji. 19 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Dekompozycja Historyjek użytkownika http://www.agile-scrum.be 20 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Technika priorytetyzacji MoSCoW MUST - wymaganie, które musi być spełnione w końcowym, finalnym rozwiązaniu. SHOULD - wymaganie o wysokim priorytecie, które powinno być zawarte w rozwiązaniu, jeżeli jest to możliwe. COULD - wymaganie, które jest pożądane, ale może go zabraknąć, tj. zostanie dodane, jeżeli pozwoli na to czas i zasoby. WON T - wymaganie, które nie zostanie dodane w aktualnej wersji tworzonego oprogramowania (za zgodą interesariuszy), ale może zostać zaimplementowane w przyszłości. 21 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Rejestr Sprintu Rejestr Sprintu jest listą Elementów Rejestru wybranych z Rejestru Produktowego do wykonania podczas danego sprintu. https://www.scrumalliance.org/ 22 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Przykładowy Rejestr Sprintu https://www.mountaingoatsoftware.com 23 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Przyrost Produktu Przyrost Produktu jest wynikiem prac dostarczanym na koniec sprintu, tj. działający produkt rozszerzony o nowe funkcje w stosunku do wersji z poprzedniej iteracji. Powinien być pozbawiony długu technologicznego. http://www.enhancedscrumguidedotcom.files.wordpress.com/ 24 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Definition of Done Definition of Done Definition of Done (DoD) to lista wymagań określająca stan wykonania zadania. Kiedy zespół deweloperski stwierdza, że aktywność została ukończona oznacza to, że spełnia ona wszystkie wymagania określone w DoD. Powinny być określone przed estymacją. Są ogólnodostępne. Muszą być zrozumiałe i zaakceptowane. Określają jakość produktu. 25 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Przykładowe Definition of Done Testy jednostkowe pokrywają 40% kodu. Pomyślnie przeprowadzono testy manualne. Przeprowadzono inspekcję kodu. Zaktualizowano dokumentację. 26 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Kryteria akceptacji Kryteria akceptacji Kryteria akceptacji (ang. Acceptance Criteria) określają jakie założenia muszą zostać spełnione przez rozwiązanie, aby mogło ono zostać uznane, przez zamawiającego, jako ukończone. Dotyczy konkretnych zadań (historyjek użytkownika) i dzieli się na funkcjonalne (użyteczne z punktu widzenia użytkownika) oraz niefunkcjonalne (dotyczy szczegółów technicznych, np. System musi być dostępny poprzez przeglądarkę internetową zgodną z ACID 3 na poziomie 100/100 ). 27 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Przykładowe kryteria akceptacji dla rejestracji Użytkownik nie może zakończyć procesu rejestracji bez wypełnienia wszystkich pól obowiązkowych w formularzu (oznaczonych gwiazdką). Wszystkie wprowadzone przez użytkownika informacje, w formularzu rejestracyjnym, będą przechowywane w SZBD MySQL. 28 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zadania Przygotujcie w zespole DoD dla zadania projektowego. 29 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zadania Wytypujcie w zespole Właściciela produktu. 29 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zadania Jestem klientem - porozmawiajmy o ramach projektu. 29 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zadania Stwórzmy historyjki użytkownika. 29 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zadania Napiszcie kryteria akceptacji dla historyjek użytkownika. 29 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zadania Dokonajcie priorytetyzacji historyjek z wykorzystaniem MoSCoW. 29 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zadania Przypiszmy Story Points do historyjek z wykorzystaniem planistycznego pokera (play.planningpoker.com). https://pbs.twimg.com/ 29 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Dziękuję za uwagę 30 / 30 mgr inż. Krzysztof Szwarc Programowanie zespołowe