Pomysł na analizę w Agile: Agile Modeling

34
Pomysł na analizę w Agile: Agile Modeling Paweł Jarosiński 2015-06-10

Transcript of Pomysł na analizę w Agile: Agile Modeling

Page 1: Pomysł na analizę w Agile: Agile Modeling

Pomysł na analizę w Agile: Agile Modeling

Paweł Jarosiński2015-06-10

Page 2: Pomysł na analizę w Agile: Agile Modeling

Analiza w Agile?

• Kiedy jest czas na analizę w Agile? • Jak dokładny powinien być wynik analizy?• Kto powinien prowadzić analizę?• Jakie modele utworzyć?• … ?

Page 3: Pomysł na analizę w Agile: Agile Modeling

Agile Modeling?

• Czy Agile Modeling może tu pomóc?

Page 4: Pomysł na analizę w Agile: Agile Modeling

O czym będzie?

• Agile Modeling– Wartości– Zasady

• Agile Model Driven Development– Metoda– Dobre praktyki

• Wdrażanie Agile Modeling• Dyskusja

Page 5: Pomysł na analizę w Agile: Agile Modeling

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

Page 6: Pomysł na analizę w Agile: Agile Modeling

Agile Modeling

• Zastosowanie: – zbieranie wymagań i ich analiza, – modelowanie architektury, – projektowanie

Page 7: Pomysł na analizę w Agile: Agile Modeling

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

Page 8: Pomysł na analizę w Agile: Agile Modeling

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

Page 9: Pomysł na analizę w Agile: Agile Modeling

Wartości Agile Modeling

• Komunikacja • Prostota• Informacja zwrotna• Odwaga• Pokora

Page 10: Pomysł na analizę w Agile: Agile Modeling

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

Page 11: Pomysł na analizę w Agile: Agile Modeling

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

Page 12: Pomysł na analizę w Agile: Agile Modeling

Jak zastosować zasady Agile Modeling?

• Wdrożyć je w obecnej metodologii• Wykorzystać metodologię Agile Model Driven

Development

Page 13: Pomysł na analizę w Agile: Agile Modeling

Agile Model Driven Development

• Wersja zwinna Model Driven Development• MDD – tworzenie oprogramowania poprzedzone

modelowaniem (m.in. UML)

Page 14: Pomysł na analizę w Agile: Agile Modeling

AMDD – cykl życia

Page 15: Pomysł na analizę w Agile: Agile Modeling

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)

Page 16: Pomysł na analizę w Agile: Agile Modeling

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

Page 17: Pomysł na analizę w Agile: Agile Modeling

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

Page 18: Pomysł na analizę w Agile: Agile Modeling

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

Page 19: Pomysł na analizę w Agile: Agile Modeling

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

Page 20: Pomysł na analizę w Agile: Agile Modeling

AMDD – iteracja n

• Modelowanie iteracji• Dyskusja nad modelem

(burza mózgów)• Test Driven Development• Opcjonalnie:

Przegląd (review)

Page 21: Pomysł na analizę w Agile: Agile Modeling

AMDD – modelowanie iteracji

• Cel:– Przemyślenie, co zostanie

zrobione w iteracji

• Analiza i projekt realizacjiwymagań dla iteracji

• Plan prac i ich oszacowanie

Page 22: Pomysł na analizę w Agile: Agile Modeling

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

Page 23: Pomysł na analizę w Agile: Agile Modeling

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

Page 24: Pomysł na analizę w Agile: Agile Modeling

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

Page 25: Pomysł na analizę w Agile: Agile Modeling

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)

Page 26: Pomysł na analizę w Agile: Agile Modeling

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)

Page 27: Pomysł na analizę w Agile: Agile Modeling

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

Page 28: Pomysł na analizę w Agile: Agile Modeling

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

Page 29: Pomysł na analizę w Agile: Agile Modeling

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

Page 30: Pomysł na analizę w Agile: Agile Modeling

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

Page 31: Pomysł na analizę w Agile: Agile Modeling

Podsumowanie

• Agile Modeling– Stosujmy od zaraz

• Agile Model Driven Development– Jedna z możliwych technik– Dobre praktyki

do wykorzystania wszędzie

Page 32: Pomysł na analizę w Agile: Agile Modeling

Podsumowanie

• Dalsze materiały:– Agile Modeling

http://www.agilemodeling.com– DAD, Disciplined Agile Delivery

http://www.disciplinedagiledelivery.com

Page 33: Pomysł na analizę w Agile: Agile Modeling

Dyskusja

Page 34: Pomysł na analizę w Agile: Agile Modeling

Dziękuję za uwagę

[email protected] Systemy Informatyczne S.A.

www.pentacomp.pl