SlideShare a Scribd company logo
1 of 34
Pomysł na analizę w Agile:
Agile Modeling
Paweł Jarosiński
2015-06-10
Analiza w Agile?
• Kiedy jest czas na analizę w Agile?
• Jak dokładny powinien być wynik analizy?
• Kto powinien prowadzić analizę?
• Jakie modele utworzyć?
• … ?
Agile Modeling?
• Czy Agile Modeling może tu pomóc?
O czym będzie?
• Agile Modeling
– Wartości
– Zasady
• Agile Model Driven Development
– Metoda
– Dobre praktyki
• Wdrażanie Agile Modeling
• Dyskusja
Agile Modeling
• 2001/2002 Scott Ambler
• Metodologia efektywnego modelowania i
dokumentowania systemów informatycznych
• Kolekcja wartości, zasad i praktyk – nie jest
procesem typu „instrukcja działania”
• Kluczem modelowania nie są same techniki
modelowania, ale sposób ich zastosowania
Agile Modeling
• Zastosowanie:
– zbieranie wymagań i ich analiza,
– modelowanie architektury,
– projektowanie
Dlaczego Agile Modeling?
• Obecnie:
– Nadmiar niepotrzebnej dokumentacji, której nikt nie
czyta/wykorzystuje
– Często to strata czasu
– Dokumentacja/modelowanie staje się celem samym w
sobie
Dlaczego Agile Modeling?
• Agile Modeling:
– Tylko tyle dokumentacji, ile jest niezbędne
– Tylko te modele, które są przydatne
– Narzędzia, które są najmniej pracochłonne
Wartości Agile Modeling
• Komunikacja
• Prostota
• Informacja zwrotna
• Odwaga
• Pokora
Zasady Agile Modeling
• Modelowanie z nastawieniem na cel (Dlaczego? Po
co? Dla kogo?)
• Maksymalizacja zwrotu z inwestycji
• „Lekki bagaż”
• Znajomość wielu modeli, wykorzystanie wybranych
• Szybka informacja zwrotna
• Prostota
• Zmiany są naturalne
Zasady Agile Modeling
• Przyrostowe wprowadzanie zmian (w tym w
modelach)
• Wysoka jakość modeli
• Główny cel: działające oprogramowanie
• Cel drugoplanowy: Kolejne zadania (Następny
release? Utrzymanie?)
• Treść jest ważniejsza niż forma
• Otwarta i uczciwa komunikacja
Jak zastosować zasady
Agile Modeling?
• Wdrożyć je w obecnej metodologii
• Wykorzystać metodologię Agile Model Driven
Development
Agile Model Driven Development
• Wersja zwinna Model Driven Development
• MDD – tworzenie oprogramowania poprzedzone
modelowaniem (m.in. UML)
AMDD – cykl życia
AMDD – iteracja 0
• Cel:
Określenie zakresu systemu
i najlepszej jego architektury
• Celem nie jest:
Szczegółowa specyfikacja -> duże ryzyko
• TO DO:
• Wysokopoziomowy model wymagań
• Wysokopoziomowy model architektoniczny
• Timebox:
• Kilka godzin (projekty <= kilka tygodni) do 2 tygodni
(projekty >= rok)
AMDD – inicjalna wizja wymagań
• Cel:
• Uzyskanie dobrego poczucia,
czego dotyczy projekt
• Zidentyfikowanie wysokopoziomowych wymagań i
zakresu releasu (co system powinien robić w tym zakresie)
• Celem nie jest:
Wytworzenie szczegółowej dokumentacji. Ważniejsze jest
zbudowanie wspólnego rozumienia zakresu z klientem
AMDD – inicjalna wizja wymagań
• TO DO:
• Model użycia systemu
przez użytkowników
• Inicjalny model domenowy z podstawowymi encjami
biznesowymi
• Inicjalny model interfejsu użytkownika i kwestie dotyczące
użyteczności
• Krytyczne: użycie takich technik, które aktywnie angażują
interesariuszy
AMDD – inicjalna wizja
architektury
• Cel:
• Zaproponowanie architektury,
która ma duże szanse spełnienia wymagań
• Określenie kierunku technicznego dla projektu
• Skupienie zespołu na wybranym kierunku technicznym
• Celem nie jest:
Wytworzenie szczegółowej architektury
AMDD – inicjalna wizja
architektury
• TO DO:
• Diagram pokazujący
infrastrukturę techniczną (w nieformalnej formie)
• Inicjalny model domenowy z podstawowymi encjami
biznesowymi
• Opcjonalnie: możliwe zmiany, które architektura będzie
być może będzie musiała w przyszłości uwzględnić
• Krytyczne: Modele muszą być proste, doprecyzowane tylko na
tyle, by móc ruszyć z pracami. Zalecane jest modelowanie na
tablicy
AMDD – iteracja n
• Modelowanie iteracji
• Dyskusja nad modelem
(burza mózgów)
• Test Driven Development
• Opcjonalnie:
Przegląd (review)
AMDD – modelowanie iteracji
• Cel:
– Przemyślenie, co zostanie
zrobione w iteracji
• Analiza i projekt realizacji
wymagań dla iteracji
• Plan prac i ich oszacowanie
AMDD – dyskusja nad modelem
• Cel:
– Modelowanie wybranego
aspektu
• Mała grupa osób (2-3)
• Krótki czas dyskusji (5-10,
maks. 30 min.)
• Wspólne modelowanie na tablicy
i dyskusja kwestii spornych
• Ad-hoc, bez przygotowania
AMDD – implementacja TDD
• Cel:
– Implementacja wymagania
zgodnie z TDD
• Napisanie wykonywalnego
testu
• Implementacja aż test
zacznie przechodzić
pozytywnie
• Częsty refactoring
• Zajmuje największą część iteracji
AMDD – przegląd
• Cel:
– Podsumowanie i sprawdzenie
wyników iteracji
• W małych projektach/zespołach
raczej niepotrzebne
• Może być przydatne
w dużych zespołach
• Najważniejsza jest informacja zwrotna uzyskana
podczas przeglądu
AMDD – podsumowanie
• Mało modelowania na początku, dużo implementacji
• Iterowanie: modelowanie <-> implementacja, z
częstym kontaktem z klientem
• Przeplatanie się roli analityka i dewelopera
• Specjaliści z wieloma umiejętnościami
(analiza/projektowanie/implementacja)
Najlepsze praktyki AMDD
• Aktywne uczestnictwo interesariuszy
• Wizja architektury
• Wizja wymagań
• Ciągłe dokumentowanie
• Późne dokumentowanie
• Wykonywalne specyfikacje wymagań (np.
Specification by Example, Acceptance Test-Driven
Development)
Najlepsze praktyki AMDD
• Modelowanie iteracji
• Dokumentacja aktualna na czas tworzenia
• Modelowanie „patrzące wprzód”
• Dyskusja nad modelem
• Wiele modeli, wykorzystanie wybranych
• Priorytetyzacja wymagań
• Pojedyncze źródło informacji
• Test-Driven Development
Wdrażanie Agile Modeling
• Jako kierownik projektu:
– Zaplanuj sesję inicjalnej wizji na początku projektu
– Zorganizuj prace w krótkich iteracjach. W pierwszej
kolejności realizuj wymagania o najwyższym priorytecie
– Nie planuj zbyt daleko – priorytety i wymagania będą się
zmieniać
– Najlepsze oszacowanie prac zrobią te osoby, które będą je
realizować. Ale potrzebują trochę modelowania
– Modelowania nie planujemy w harmonogramie. To jest
część iteracji
Wdrażanie Agile Modeling
• Jako analityk (1):
– Wizja architektury i wymagań trwa dni, nie tygodnie/
miesiące. Celem jest zrozumienie zakresu, nie szczegółów
– Szczegóły są analizowane i modelowane podczas iteracji
(m.in. dyskusja modelu)
– Nie ma „fazy analizy wymagań” – jest analiza w iteracji
– Wymagania się zmieniają – to jest OK. Priorytetyzuj je.
– Zaangażuj interesariuszy do modelowania – użyj
odpowiednich technik
Wdrażanie Agile Modeling
• Jako analityk (2):
– Użyj wybranych, pasujących modeli, odpowiednich do
projektu. Znaj wiele różnych technik modelowania
– Celem jest rozumienie wymagań, nie ich dokumentowanie.
Jeśli dokumentujesz, zastanów się, czy to ma cel i do kogo
jest skierowane
– Modeluj razem z deweloperami. Oni lepiej rozumieją
wymagania, ty – co zostanie zbudowane
– Rozszerzaj swoje umiejętności, nie tylko typowo
analityczne
Podsumowanie
• Agile Modeling
– Stosujmy od zaraz 
• Agile Model Driven Development
– Jedna z możliwych technik
– Dobre praktyki
do wykorzystania wszędzie
Podsumowanie
• Dalsze materiały:
– Agile Modeling
http://www.agilemodeling.com
– DAD, Disciplined Agile Delivery
http://www.disciplinedagiledelivery.com
Dyskusja
Dziękuję za uwagę
pawel.jarosinski@pentacomp.pl
Pentacomp Systemy Informatyczne S.A.
www.pentacomp.pl

More Related Content

What's hot

Slajdy z wykładu o Agile
Slajdy z wykładu o AgileSlajdy z wykładu o Agile
Slajdy z wykładu o Agileinfrared
 
Jak pracuje Product Owner? Spotkanie LubLean and Agile
Jak pracuje Product Owner? Spotkanie LubLean and AgileJak pracuje Product Owner? Spotkanie LubLean and Agile
Jak pracuje Product Owner? Spotkanie LubLean and AgileKrystian Kaczor
 
Zwinne metodyki w zarządzaniu
Zwinne metodyki w zarządzaniuZwinne metodyki w zarządzaniu
Zwinne metodyki w zarządzaniuAndy Brandt
 
Szkolenie zarządzanie projektami wersja
Szkolenie zarządzanie projektami wersjaSzkolenie zarządzanie projektami wersja
Szkolenie zarządzanie projektami wersjaRoman Morawski-Jagram
 
Skuteczne Zarządzanie Projektami Internetowymi 2015
Skuteczne Zarządzanie Projektami Internetowymi 2015Skuteczne Zarządzanie Projektami Internetowymi 2015
Skuteczne Zarządzanie Projektami Internetowymi 2015GoTechnologies sp. z o.o.
 
Just in time and kanban
Just in time and kanbanJust in time and kanban
Just in time and kanbanandzi18
 
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i PlanowanieWiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i PlanowanieMichał Parkoła
 
Agile Tester - Czy to w ogóle ma sens?
Agile Tester  - Czy to w ogóle ma sens?Agile Tester  - Czy to w ogóle ma sens?
Agile Tester - Czy to w ogóle ma sens?Krystian Kaczor
 
Zwinność w praktyce, Jarek Potiuk
Zwinność w praktyce, Jarek PotiukZwinność w praktyce, Jarek Potiuk
Zwinność w praktyce, Jarek PotiukMamStartup
 
Dlaczego developerzy nie lubią scrum Zwinna Łódź
Dlaczego developerzy nie lubią scrum Zwinna ŁódźDlaczego developerzy nie lubią scrum Zwinna Łódź
Dlaczego developerzy nie lubią scrum Zwinna ŁódźKrystian Kaczor
 
Sprint retrospective wartości scrum
Sprint retrospective   wartości scrumSprint retrospective   wartości scrum
Sprint retrospective wartości scrumKrystian Kaczor
 
Jak (nie) zabić agile przy użyciu jira
Jak (nie) zabić agile przy użyciu jiraJak (nie) zabić agile przy użyciu jira
Jak (nie) zabić agile przy użyciu jiraKrystian Kaczor
 
Agile Project Manager - na serio?
Agile Project Manager - na serio?Agile Project Manager - na serio?
Agile Project Manager - na serio?Michal Raczka
 

What's hot (20)

Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Slajdy z wykładu o Agile
Slajdy z wykładu o AgileSlajdy z wykładu o Agile
Slajdy z wykładu o Agile
 
Agile fakty i mity
Agile fakty i mityAgile fakty i mity
Agile fakty i mity
 
SCRUM w pigułce
SCRUM w pigułceSCRUM w pigułce
SCRUM w pigułce
 
Jak pracuje Product Owner? Spotkanie LubLean and Agile
Jak pracuje Product Owner? Spotkanie LubLean and AgileJak pracuje Product Owner? Spotkanie LubLean and Agile
Jak pracuje Product Owner? Spotkanie LubLean and Agile
 
Zwinne metodyki w zarządzaniu
Zwinne metodyki w zarządzaniuZwinne metodyki w zarządzaniu
Zwinne metodyki w zarządzaniu
 
Szkolenie zarządzanie projektami wersja
Szkolenie zarządzanie projektami wersjaSzkolenie zarządzanie projektami wersja
Szkolenie zarządzanie projektami wersja
 
Skuteczne Zarządzanie Projektami Internetowymi 2015
Skuteczne Zarządzanie Projektami Internetowymi 2015Skuteczne Zarządzanie Projektami Internetowymi 2015
Skuteczne Zarządzanie Projektami Internetowymi 2015
 
Just in time and kanban
Just in time and kanbanJust in time and kanban
Just in time and kanban
 
Zarządzanie projektami - logicznie, skutecznie, niełatwo - Manage or Die Insp...
Zarządzanie projektami - logicznie, skutecznie, niełatwo - Manage or Die Insp...Zarządzanie projektami - logicznie, skutecznie, niełatwo - Manage or Die Insp...
Zarządzanie projektami - logicznie, skutecznie, niełatwo - Manage or Die Insp...
 
Dlaczego nie powinniśmy zapominać o metodologii Waterfall?
 Dlaczego nie powinniśmy zapominać o metodologii Waterfall? Dlaczego nie powinniśmy zapominać o metodologii Waterfall?
Dlaczego nie powinniśmy zapominać o metodologii Waterfall?
 
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i PlanowanieWiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
 
Wymagania w Agile
Wymagania w AgileWymagania w Agile
Wymagania w Agile
 
Agile Tester - Czy to w ogóle ma sens?
Agile Tester  - Czy to w ogóle ma sens?Agile Tester  - Czy to w ogóle ma sens?
Agile Tester - Czy to w ogóle ma sens?
 
Zwinność w praktyce, Jarek Potiuk
Zwinność w praktyce, Jarek PotiukZwinność w praktyce, Jarek Potiuk
Zwinność w praktyce, Jarek Potiuk
 
Dlaczego developerzy nie lubią scrum Zwinna Łódź
Dlaczego developerzy nie lubią scrum Zwinna ŁódźDlaczego developerzy nie lubią scrum Zwinna Łódź
Dlaczego developerzy nie lubią scrum Zwinna Łódź
 
User Story
User StoryUser Story
User Story
 
Sprint retrospective wartości scrum
Sprint retrospective   wartości scrumSprint retrospective   wartości scrum
Sprint retrospective wartości scrum
 
Jak (nie) zabić agile przy użyciu jira
Jak (nie) zabić agile przy użyciu jiraJak (nie) zabić agile przy użyciu jira
Jak (nie) zabić agile przy użyciu jira
 
Agile Project Manager - na serio?
Agile Project Manager - na serio?Agile Project Manager - na serio?
Agile Project Manager - na serio?
 

Viewers also liked

Umowy agile - zakres, zasoby, pieniądze - jak tworzyć zwinne kontrakty
Umowy agile - zakres, zasoby, pieniądze - jak tworzyć zwinne kontraktyUmowy agile - zakres, zasoby, pieniądze - jak tworzyć zwinne kontrakty
Umowy agile - zakres, zasoby, pieniądze - jak tworzyć zwinne kontraktyŁukasz Węgrzyn
 
Eksploracja procesów z wykorzystaniem narzędzia ProM
Eksploracja procesów z wykorzystaniem narzędzia ProMEksploracja procesów z wykorzystaniem narzędzia ProM
Eksploracja procesów z wykorzystaniem narzędzia ProMZbigniew Paszkiewicz
 
Activiti - BPMN 2.0 nadchodzi
Activiti - BPMN 2.0 nadchodziActiviti - BPMN 2.0 nadchodzi
Activiti - BPMN 2.0 nadchodziMaciek Próchniak
 
Sztuka wojny wg analityka IT - jak współpracować z trudnym klientem
Sztuka wojny wg analityka IT - jak współpracować z trudnym klientemSztuka wojny wg analityka IT - jak współpracować z trudnym klientem
Sztuka wojny wg analityka IT - jak współpracować z trudnym klientemKatarzyna Mrowca
 
Oracle BPMN 2.0 Poster
Oracle BPMN 2.0 PosterOracle BPMN 2.0 Poster
Oracle BPMN 2.0 PosterVijay Reddy
 
Scrum Stories - 2016.06.29, Agile3M meeting
Scrum Stories - 2016.06.29, Agile3M meetingScrum Stories - 2016.06.29, Agile3M meeting
Scrum Stories - 2016.06.29, Agile3M meetingStanislaw Matczak
 
Bpmn poster a4_ver_1.0.10
Bpmn poster a4_ver_1.0.10Bpmn poster a4_ver_1.0.10
Bpmn poster a4_ver_1.0.10primulah
 
Scrum 500+ - 2016.09.14, Agile3M meeting
Scrum 500+ - 2016.09.14, Agile3M meetingScrum 500+ - 2016.09.14, Agile3M meeting
Scrum 500+ - 2016.09.14, Agile3M meetingStanislaw Matczak
 
Bpmn poster a2_ver_1.0.10
Bpmn poster a2_ver_1.0.10Bpmn poster a2_ver_1.0.10
Bpmn poster a2_ver_1.0.10jlaznik
 
Modele i metodyki wdrażania i zarządzania projektami eai
Modele i metodyki wdrażania i zarządzania projektami eaiModele i metodyki wdrażania i zarządzania projektami eai
Modele i metodyki wdrażania i zarządzania projektami eaiJaroslaw Zelinski
 
The BA role in Agile Development
The BA role in Agile Development The BA role in Agile Development
The BA role in Agile Development Agileee
 
The Role of a BA on a Scrum Team IIBA Presentation 2010
The Role of a BA on a Scrum Team IIBA Presentation 2010The Role of a BA on a Scrum Team IIBA Presentation 2010
The Role of a BA on a Scrum Team IIBA Presentation 2010scrummasternz
 
BPMN for delivery company.docx
BPMN for delivery company.docxBPMN for delivery company.docx
BPMN for delivery company.docxAlex Kosior
 
AP CodeWeek 2016
AP CodeWeek 2016AP CodeWeek 2016
AP CodeWeek 2016EwaB
 
BPMN wprowadzenie
BPMN wprowadzenieBPMN wprowadzenie
BPMN wprowadzenieEwaB
 
Omg bpmn tutorial
Omg bpmn tutorialOmg bpmn tutorial
Omg bpmn tutorialuhuru1973
 

Viewers also liked (17)

Umowy agile - zakres, zasoby, pieniądze - jak tworzyć zwinne kontrakty
Umowy agile - zakres, zasoby, pieniądze - jak tworzyć zwinne kontraktyUmowy agile - zakres, zasoby, pieniądze - jak tworzyć zwinne kontrakty
Umowy agile - zakres, zasoby, pieniądze - jak tworzyć zwinne kontrakty
 
Eksploracja procesów z wykorzystaniem narzędzia ProM
Eksploracja procesów z wykorzystaniem narzędzia ProMEksploracja procesów z wykorzystaniem narzędzia ProM
Eksploracja procesów z wykorzystaniem narzędzia ProM
 
Activiti - BPMN 2.0 nadchodzi
Activiti - BPMN 2.0 nadchodziActiviti - BPMN 2.0 nadchodzi
Activiti - BPMN 2.0 nadchodzi
 
Sztuka wojny wg analityka IT - jak współpracować z trudnym klientem
Sztuka wojny wg analityka IT - jak współpracować z trudnym klientemSztuka wojny wg analityka IT - jak współpracować z trudnym klientem
Sztuka wojny wg analityka IT - jak współpracować z trudnym klientem
 
Oracle BPMN 2.0 Poster
Oracle BPMN 2.0 PosterOracle BPMN 2.0 Poster
Oracle BPMN 2.0 Poster
 
Scrum Stories - 2016.06.29, Agile3M meeting
Scrum Stories - 2016.06.29, Agile3M meetingScrum Stories - 2016.06.29, Agile3M meeting
Scrum Stories - 2016.06.29, Agile3M meeting
 
Bpmn poster a4_ver_1.0.10
Bpmn poster a4_ver_1.0.10Bpmn poster a4_ver_1.0.10
Bpmn poster a4_ver_1.0.10
 
Scrum 500+ - 2016.09.14, Agile3M meeting
Scrum 500+ - 2016.09.14, Agile3M meetingScrum 500+ - 2016.09.14, Agile3M meeting
Scrum 500+ - 2016.09.14, Agile3M meeting
 
Bpmn poster a2_ver_1.0.10
Bpmn poster a2_ver_1.0.10Bpmn poster a2_ver_1.0.10
Bpmn poster a2_ver_1.0.10
 
Modele i metodyki wdrażania i zarządzania projektami eai
Modele i metodyki wdrażania i zarządzania projektami eaiModele i metodyki wdrażania i zarządzania projektami eai
Modele i metodyki wdrażania i zarządzania projektami eai
 
The BA role in Agile Development
The BA role in Agile Development The BA role in Agile Development
The BA role in Agile Development
 
The Role of a BA on a Scrum Team IIBA Presentation 2010
The Role of a BA on a Scrum Team IIBA Presentation 2010The Role of a BA on a Scrum Team IIBA Presentation 2010
The Role of a BA on a Scrum Team IIBA Presentation 2010
 
BPMN for delivery company.docx
BPMN for delivery company.docxBPMN for delivery company.docx
BPMN for delivery company.docx
 
BPMN 2.0 Poster EN
BPMN 2.0 Poster ENBPMN 2.0 Poster EN
BPMN 2.0 Poster EN
 
AP CodeWeek 2016
AP CodeWeek 2016AP CodeWeek 2016
AP CodeWeek 2016
 
BPMN wprowadzenie
BPMN wprowadzenieBPMN wprowadzenie
BPMN wprowadzenie
 
Omg bpmn tutorial
Omg bpmn tutorialOmg bpmn tutorial
Omg bpmn tutorial
 

Similar to Pomysł na analizę w Agile: Agile Modeling

Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówMichal Lukaszewski
 
Metoda analizy i specyfikowania wymagań na oprogramowanie
Metoda analizy i specyfikowania wymagań na oprogramowanieMetoda analizy i specyfikowania wymagań na oprogramowanie
Metoda analizy i specyfikowania wymagań na oprogramowanieJaroslaw Zelinski
 
Context Driven School of testing w prostych przykładach
Context Driven School of testing w prostych przykładachContext Driven School of testing w prostych przykładach
Context Driven School of testing w prostych przykładachRadoslaw Smilgin
 
Cykl zycia projektu w metodologii User Centered Design
Cykl zycia projektu w metodologii User Centered DesignCykl zycia projektu w metodologii User Centered Design
Cykl zycia projektu w metodologii User Centered DesignMagdalena Ostoja-Chyżyńska
 
Projekt Getin Challenge
Projekt Getin ChallengeProjekt Getin Challenge
Projekt Getin Challengeknaparty
 
Projekt getin bank
Projekt getin bank Projekt getin bank
Projekt getin bank knaparty
 
Projekt
ProjektProjekt
ProjektJSz
 
Head First Object-Oriented Analysis and Design. Edycja polska
Head First Object-Oriented Analysis and Design. Edycja polskaHead First Object-Oriented Analysis and Design. Edycja polska
Head First Object-Oriented Analysis and Design. Edycja polskaWydawnictwo Helion
 
Zarzadzanie portfelem projektow
Zarzadzanie portfelem projektowZarzadzanie portfelem projektow
Zarzadzanie portfelem projektowRyszard Dałkowski
 
Praktyczne metody realizacji Projektów
Praktyczne metody realizacji ProjektówPraktyczne metody realizacji Projektów
Praktyczne metody realizacji ProjektówASAP24
 
Design Thinking vs Lean UX Startup
Design Thinking vs Lean UX StartupDesign Thinking vs Lean UX Startup
Design Thinking vs Lean UX StartupMarcin Cichoń
 
Agile Silesia - Scrum w zespołach rozproszonych - Łukasz Kempny
Agile Silesia - Scrum w zespołach rozproszonych - Łukasz KempnyAgile Silesia - Scrum w zespołach rozproszonych - Łukasz Kempny
Agile Silesia - Scrum w zespołach rozproszonych - Łukasz KempnyAgile Silesia
 
Scrum (Polish version) - wprowadzenie do frameworka
Scrum (Polish version) - wprowadzenie do frameworkaScrum (Polish version) - wprowadzenie do frameworka
Scrum (Polish version) - wprowadzenie do frameworkaalbrzykowski
 
Klasyfikacja wymagań jako sposób zarządzania nimi
Klasyfikacja wymagań jako sposób zarządzania nimiKlasyfikacja wymagań jako sposób zarządzania nimi
Klasyfikacja wymagań jako sposób zarządzania nimiJaroslaw Zelinski
 
Projektowanie zorientowane obiektowo. Wzorce projektowe. Wydanie II
Projektowanie zorientowane obiektowo. Wzorce projektowe. Wydanie IIProjektowanie zorientowane obiektowo. Wzorce projektowe. Wydanie II
Projektowanie zorientowane obiektowo. Wzorce projektowe. Wydanie IIWydawnictwo Helion
 
Podejście “cały zespół” a rola QA/BA
Podejście “cały zespół” a rola QA/BAPodejście “cały zespół” a rola QA/BA
Podejście “cały zespół” a rola QA/BAThe Software House
 
Lean UX vs Design Thinking (lang: PL)
Lean UX vs Design Thinking (lang: PL)Lean UX vs Design Thinking (lang: PL)
Lean UX vs Design Thinking (lang: PL)Ideacto
 
Jak wykorzystać Scrum i metodyki Agile do projektowania dużych systemów SaaS?
Jak wykorzystać Scrum i metodyki Agile do projektowania dużych systemów SaaS?Jak wykorzystać Scrum i metodyki Agile do projektowania dużych systemów SaaS?
Jak wykorzystać Scrum i metodyki Agile do projektowania dużych systemów SaaS?Przemek Basiak
 

Similar to Pomysł na analizę w Agile: Agile Modeling (20)

Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędów
 
Metoda analizy i specyfikowania wymagań na oprogramowanie
Metoda analizy i specyfikowania wymagań na oprogramowanieMetoda analizy i specyfikowania wymagań na oprogramowanie
Metoda analizy i specyfikowania wymagań na oprogramowanie
 
Context Driven School of testing w prostych przykładach
Context Driven School of testing w prostych przykładachContext Driven School of testing w prostych przykładach
Context Driven School of testing w prostych przykładach
 
Cykl zycia projektu w metodologii User Centered Design
Cykl zycia projektu w metodologii User Centered DesignCykl zycia projektu w metodologii User Centered Design
Cykl zycia projektu w metodologii User Centered Design
 
Projekt Getin Challenge
Projekt Getin ChallengeProjekt Getin Challenge
Projekt Getin Challenge
 
Projekt getin bank
Projekt getin bank Projekt getin bank
Projekt getin bank
 
Projekt
ProjektProjekt
Projekt
 
Head First Object-Oriented Analysis and Design. Edycja polska
Head First Object-Oriented Analysis and Design. Edycja polskaHead First Object-Oriented Analysis and Design. Edycja polska
Head First Object-Oriented Analysis and Design. Edycja polska
 
Zarzadzanie portfelem projektow
Zarzadzanie portfelem projektowZarzadzanie portfelem projektow
Zarzadzanie portfelem projektow
 
Praktyczne metody realizacji Projektów
Praktyczne metody realizacji ProjektówPraktyczne metody realizacji Projektów
Praktyczne metody realizacji Projektów
 
Design Thinking vs Lean UX Startup
Design Thinking vs Lean UX StartupDesign Thinking vs Lean UX Startup
Design Thinking vs Lean UX Startup
 
Wstęp do Agile
Wstęp do AgileWstęp do Agile
Wstęp do Agile
 
Agile Silesia - Scrum w zespołach rozproszonych - Łukasz Kempny
Agile Silesia - Scrum w zespołach rozproszonych - Łukasz KempnyAgile Silesia - Scrum w zespołach rozproszonych - Łukasz Kempny
Agile Silesia - Scrum w zespołach rozproszonych - Łukasz Kempny
 
Scrum (Polish version) - wprowadzenie do frameworka
Scrum (Polish version) - wprowadzenie do frameworkaScrum (Polish version) - wprowadzenie do frameworka
Scrum (Polish version) - wprowadzenie do frameworka
 
Klasyfikacja wymagań jako sposób zarządzania nimi
Klasyfikacja wymagań jako sposób zarządzania nimiKlasyfikacja wymagań jako sposób zarządzania nimi
Klasyfikacja wymagań jako sposób zarządzania nimi
 
Projektowanie zorientowane obiektowo. Wzorce projektowe. Wydanie II
Projektowanie zorientowane obiektowo. Wzorce projektowe. Wydanie IIProjektowanie zorientowane obiektowo. Wzorce projektowe. Wydanie II
Projektowanie zorientowane obiektowo. Wzorce projektowe. Wydanie II
 
Agile LEGO Game
Agile LEGO GameAgile LEGO Game
Agile LEGO Game
 
Podejście “cały zespół” a rola QA/BA
Podejście “cały zespół” a rola QA/BAPodejście “cały zespół” a rola QA/BA
Podejście “cały zespół” a rola QA/BA
 
Lean UX vs Design Thinking (lang: PL)
Lean UX vs Design Thinking (lang: PL)Lean UX vs Design Thinking (lang: PL)
Lean UX vs Design Thinking (lang: PL)
 
Jak wykorzystać Scrum i metodyki Agile do projektowania dużych systemów SaaS?
Jak wykorzystać Scrum i metodyki Agile do projektowania dużych systemów SaaS?Jak wykorzystać Scrum i metodyki Agile do projektowania dużych systemów SaaS?
Jak wykorzystać Scrum i metodyki Agile do projektowania dużych systemów SaaS?
 

Pomysł na analizę w Agile: Agile Modeling

  • 1. Pomysł na analizę w Agile: Agile Modeling Paweł Jarosiński 2015-06-10
  • 2. Analiza w Agile? • Kiedy jest czas na analizę w Agile? • Jak dokładny powinien być wynik analizy? • Kto powinien prowadzić analizę? • Jakie modele utworzyć? • … ?
  • 3. Agile Modeling? • Czy Agile Modeling może tu pomóc?
  • 4. O czym będzie? • Agile Modeling – Wartości – Zasady • Agile Model Driven Development – Metoda – Dobre praktyki • Wdrażanie Agile Modeling • Dyskusja
  • 5. Agile Modeling • 2001/2002 Scott Ambler • Metodologia efektywnego modelowania i dokumentowania systemów informatycznych • Kolekcja wartości, zasad i praktyk – nie jest procesem typu „instrukcja działania” • Kluczem modelowania nie są same techniki modelowania, ale sposób ich zastosowania
  • 6. Agile Modeling • Zastosowanie: – zbieranie wymagań i ich analiza, – modelowanie architektury, – projektowanie
  • 7. Dlaczego Agile Modeling? • Obecnie: – Nadmiar niepotrzebnej dokumentacji, której nikt nie czyta/wykorzystuje – Często to strata czasu – Dokumentacja/modelowanie staje się celem samym w sobie
  • 8. Dlaczego Agile Modeling? • Agile Modeling: – Tylko tyle dokumentacji, ile jest niezbędne – Tylko te modele, które są przydatne – Narzędzia, które są najmniej pracochłonne
  • 9. Wartości Agile Modeling • Komunikacja • Prostota • Informacja zwrotna • Odwaga • Pokora
  • 10. Zasady Agile Modeling • Modelowanie z nastawieniem na cel (Dlaczego? Po co? Dla kogo?) • Maksymalizacja zwrotu z inwestycji • „Lekki bagaż” • Znajomość wielu modeli, wykorzystanie wybranych • Szybka informacja zwrotna • Prostota • Zmiany są naturalne
  • 11. Zasady Agile Modeling • Przyrostowe wprowadzanie zmian (w tym w modelach) • Wysoka jakość modeli • Główny cel: działające oprogramowanie • Cel drugoplanowy: Kolejne zadania (Następny release? Utrzymanie?) • Treść jest ważniejsza niż forma • Otwarta i uczciwa komunikacja
  • 12. Jak zastosować zasady Agile Modeling? • Wdrożyć je w obecnej metodologii • Wykorzystać metodologię Agile Model Driven Development
  • 13. Agile Model Driven Development • Wersja zwinna Model Driven Development • MDD – tworzenie oprogramowania poprzedzone modelowaniem (m.in. UML)
  • 14. AMDD – cykl życia
  • 15. AMDD – iteracja 0 • Cel: Określenie zakresu systemu i najlepszej jego architektury • Celem nie jest: Szczegółowa specyfikacja -> duże ryzyko • TO DO: • Wysokopoziomowy model wymagań • Wysokopoziomowy model architektoniczny • Timebox: • Kilka godzin (projekty <= kilka tygodni) do 2 tygodni (projekty >= rok)
  • 16. AMDD – inicjalna wizja wymagań • Cel: • Uzyskanie dobrego poczucia, czego dotyczy projekt • Zidentyfikowanie wysokopoziomowych wymagań i zakresu releasu (co system powinien robić w tym zakresie) • Celem nie jest: Wytworzenie szczegółowej dokumentacji. Ważniejsze jest zbudowanie wspólnego rozumienia zakresu z klientem
  • 17. AMDD – inicjalna wizja wymagań • TO DO: • Model użycia systemu przez użytkowników • Inicjalny model domenowy z podstawowymi encjami biznesowymi • Inicjalny model interfejsu użytkownika i kwestie dotyczące użyteczności • Krytyczne: użycie takich technik, które aktywnie angażują interesariuszy
  • 18. AMDD – inicjalna wizja architektury • Cel: • Zaproponowanie architektury, która ma duże szanse spełnienia wymagań • Określenie kierunku technicznego dla projektu • Skupienie zespołu na wybranym kierunku technicznym • Celem nie jest: Wytworzenie szczegółowej architektury
  • 19. AMDD – inicjalna wizja architektury • TO DO: • Diagram pokazujący infrastrukturę techniczną (w nieformalnej formie) • Inicjalny model domenowy z podstawowymi encjami biznesowymi • Opcjonalnie: możliwe zmiany, które architektura będzie być może będzie musiała w przyszłości uwzględnić • Krytyczne: Modele muszą być proste, doprecyzowane tylko na tyle, by móc ruszyć z pracami. Zalecane jest modelowanie na tablicy
  • 20. AMDD – iteracja n • Modelowanie iteracji • Dyskusja nad modelem (burza mózgów) • Test Driven Development • Opcjonalnie: Przegląd (review)
  • 21. AMDD – modelowanie iteracji • Cel: – Przemyślenie, co zostanie zrobione w iteracji • Analiza i projekt realizacji wymagań dla iteracji • Plan prac i ich oszacowanie
  • 22. AMDD – dyskusja nad modelem • Cel: – Modelowanie wybranego aspektu • Mała grupa osób (2-3) • Krótki czas dyskusji (5-10, maks. 30 min.) • Wspólne modelowanie na tablicy i dyskusja kwestii spornych • Ad-hoc, bez przygotowania
  • 23. AMDD – implementacja TDD • Cel: – Implementacja wymagania zgodnie z TDD • Napisanie wykonywalnego testu • Implementacja aż test zacznie przechodzić pozytywnie • Częsty refactoring • Zajmuje największą część iteracji
  • 24. AMDD – przegląd • Cel: – Podsumowanie i sprawdzenie wyników iteracji • W małych projektach/zespołach raczej niepotrzebne • Może być przydatne w dużych zespołach • Najważniejsza jest informacja zwrotna uzyskana podczas przeglądu
  • 25. AMDD – podsumowanie • Mało modelowania na początku, dużo implementacji • Iterowanie: modelowanie <-> implementacja, z częstym kontaktem z klientem • Przeplatanie się roli analityka i dewelopera • Specjaliści z wieloma umiejętnościami (analiza/projektowanie/implementacja)
  • 26. Najlepsze praktyki AMDD • Aktywne uczestnictwo interesariuszy • Wizja architektury • Wizja wymagań • Ciągłe dokumentowanie • Późne dokumentowanie • Wykonywalne specyfikacje wymagań (np. Specification by Example, Acceptance Test-Driven Development)
  • 27. Najlepsze praktyki AMDD • Modelowanie iteracji • Dokumentacja aktualna na czas tworzenia • Modelowanie „patrzące wprzód” • Dyskusja nad modelem • Wiele modeli, wykorzystanie wybranych • Priorytetyzacja wymagań • Pojedyncze źródło informacji • Test-Driven Development
  • 28. Wdrażanie Agile Modeling • Jako kierownik projektu: – Zaplanuj sesję inicjalnej wizji na początku projektu – Zorganizuj prace w krótkich iteracjach. W pierwszej kolejności realizuj wymagania o najwyższym priorytecie – Nie planuj zbyt daleko – priorytety i wymagania będą się zmieniać – Najlepsze oszacowanie prac zrobią te osoby, które będą je realizować. Ale potrzebują trochę modelowania – Modelowania nie planujemy w harmonogramie. To jest część iteracji
  • 29. Wdrażanie Agile Modeling • Jako analityk (1): – Wizja architektury i wymagań trwa dni, nie tygodnie/ miesiące. Celem jest zrozumienie zakresu, nie szczegółów – Szczegóły są analizowane i modelowane podczas iteracji (m.in. dyskusja modelu) – Nie ma „fazy analizy wymagań” – jest analiza w iteracji – Wymagania się zmieniają – to jest OK. Priorytetyzuj je. – Zaangażuj interesariuszy do modelowania – użyj odpowiednich technik
  • 30. Wdrażanie Agile Modeling • Jako analityk (2): – Użyj wybranych, pasujących modeli, odpowiednich do projektu. Znaj wiele różnych technik modelowania – Celem jest rozumienie wymagań, nie ich dokumentowanie. Jeśli dokumentujesz, zastanów się, czy to ma cel i do kogo jest skierowane – Modeluj razem z deweloperami. Oni lepiej rozumieją wymagania, ty – co zostanie zbudowane – Rozszerzaj swoje umiejętności, nie tylko typowo analityczne
  • 31. Podsumowanie • Agile Modeling – Stosujmy od zaraz  • Agile Model Driven Development – Jedna z możliwych technik – Dobre praktyki do wykorzystania wszędzie
  • 32. Podsumowanie • Dalsze materiały: – Agile Modeling http://www.agilemodeling.com – DAD, Disciplined Agile Delivery http://www.disciplinedagiledelivery.com
  • 34. Dziękuję za uwagę pawel.jarosinski@pentacomp.pl Pentacomp Systemy Informatyczne S.A. www.pentacomp.pl

Editor's Notes

  1. Kluczowe w modelowaniu jest: - Efektywna komunikacja pomiędzy analitykami i interesariuszami oraz między analitykami i deweloperami Dążenie do wytworzenia najprostszego rozwiązania, które realizuje wszystkie potrzeby – w tym prostych modeli, dokumentów Otrzymywanie informacji zwrotnej (zarówno od interesariuszy jak i deweloperów) często i szybko, (Kent Beck, XP: Optymizm to ryzyko zawodowe programowania, informacja zwrotna jest lekarstwem) Odwaga w podejmowaniu decyzji i trzymaniu się ich Pokora, żeby przyznać, że nie wiem wszystkiego i że inni też są wartościowi.