1 Zwinne metodyki programowaniaInżynieria oprogramowania II Wykład 11 Zwinne metodyki programowania
2 Crazy is my life! Syndrom LOOP Loop L ate (późno) Ooor quality (kiepska jakość) ver budget (przekroczony budżet) vertime (nadgodziny) Crazy is my life! J.Nawrocki, Zwinne metodyki programowania
3 Zwinne metodyki programowaniaPlan wykładów Kontrola jakości oprogramowania Szacowanie rozmiaru i pracochłonności Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań i IEEE 830 Zarządzanie projektami i PRINCE 2 Personal Software Process Team Software Process Rational Unified Process Zwinne metodyki programowania Projekty dyplomowe Kontrola jakości Szacowanie rozmiaru i Standardy serii ISO 9000 Modele CMM/CMMI Inżynieria wymagań Zarządzanie projektami Personal Software Process Team Software Process Zwinne metodyki Rational Unified Process Projekty dyplomowe J.Nawrocki, Zwinne metodyki programowania
4 Manifest zwinności Plan wykładu Wstęp Programowanie EkstremalneGra Extreme 89 Matryca projektów Wstęp Organizacja zespołu Cykl życia projektu Wybrane praktyki i narzędzia XPrince a ISO 9001:2000 XPrince a CMMI Oferta dla Polsoftu J.Nawrocki, Zwinne metodyki programowania
5 Manifest zwinności (Agile Manifesto)Luty 2001, Snowbird, Utah, 17 osób Kent Beck (karty CRC, xUnit, XP) Alistair Cockburn (przypadki użycia, Crystal) Marin Fowler (refaktoryzacja, UML Distilled) Jim Highsmith (Adaptive Software Development) J.Nawrocki, Zwinne metodyki programowania
6 Jednostki i interakcje niż procesy i narzędziaManifest zwinności Ważniejsze: Jednostki i interakcje niż procesy i narzędzia J.Nawrocki, Zwinne metodyki programowania
7 Główne części normy ISO 9001:20004 System zarządzania jakością (dokumentacja) 5 Odpowiedzialność kierownictwa 6 Zarządzanie zasobami 7 Realizacja wyrobu 8 Pomiary, analiza i doskonalenie ISO 9001:2000 J.Nawrocki, Zwinne metodyki programowania
8 Zbyt dużo dokumentacji Brak elastyczności działania ISOProblemy z ISO 9001 Udokumentowane = lepsze Zbyt dużo dokumentacji Brak elastyczności działania ISO J.Nawrocki, Zwinne metodyki programowania
9 Jednostki i interakcje niż procesy i narzędziaManifest zwinności Ważniejsze: Jednostki i interakcje niż procesy i narzędzia Działające oprogramowanie niż obszerna dokumentacja Współpraca klienta niż negocjacja kontraktu Nadążanie za zmianami niż trzymanie się planu J.Nawrocki, Zwinne metodyki programowania
10 Programowanie Ekstremalne Gra Extreme 89 Matryca projektówPlan wykładu Wstęp Manifest zwinności Programowanie Ekstremalne Gra Extreme 89 Matryca projektów Wstęp Organizacja zespołu Cykl życia projektu Wybrane praktyki i narzędzia XPrince a ISO 9001:2000 XPrince a CMMI Oferta dla Polsoftu J.Nawrocki, Zwinne metodyki programowania
11 Zwinne metodyki programowaniaProgramowanie Ekstremalne (XP) = lekka (zwinna) metodyka tworzenia oprogramowania Tom DeMarco „XP jest dzisiaj najważniejszym ruchem w IO." J.Nawrocki, Zwinne metodyki programowania
12 Wprowadzenie Wybrane praktyki XP: Klient na miejscuJ.Nawrocki, Zwinne metodyki programowania
13 Krótkie przyrosty i wydaniaWprowadzenie Wybrane praktyki XP: Klient na miejscu Krótkie przyrosty i wydania Termin Koszty Niezawodność Zakres Defekty Niekompletność J.Nawrocki, Zwinne metodyki programowania
14 Termodynamiczny model projektuTermin Koszt Defekty Niekomplet-ność J.Nawrocki, Zwinne metodyki programowania
15 Termodynamiczny model projektuTermin Koszt Defekty Niekomplet-ność J.Nawrocki, Zwinne metodyki programowania
16 Termodynamiczny model projektuTermin Koszt Defekty Niekomplet-ność J.Nawrocki, Zwinne metodyki programowania
17 Krótkie przyrosty i wydania Najpierw przypadki testowe potem kodWprowadzenie Wybrane praktyki XP: Klient na miejscu Krótkie przyrosty i wydania Najpierw przypadki testowe potem kod J.Nawrocki, Zwinne metodyki programowania
18 Krótkie przyrosty i wydania Najpierw przypadki testowe potem kod Wprowadzenie Wybrane praktyki XP: Klient na miejscu Krótkie przyrosty i wydania Najpierw przypadki testowe potem kod Automatyzacja wykonywania testów J.Nawrocki, Zwinne metodyki programowania
19 Krótkie przyrosty i wydania Najpierw przypadki testowe potem kod Wprowadzenie Wybrane praktyki XP: Klient na miejscu Krótkie przyrosty i wydania Najpierw przypadki testowe potem kod Automatyzacja wykonywania testów Dokumentacja = Przypadki testowe + kod J.Nawrocki, Zwinne metodyki programowania
20 Zmieniłem zdanie. Chodźmy tędy!Dokumentacja Podróżuj z lekkim bagażem. Documen -tation Informatyk Zmieniłem zdanie. Chodźmy tędy! Klient J.Nawrocki, Zwinne metodyki programowania
21 Zmieniłem zdanie. No problem.Dokumentacja Podróżuj z lekkim bagażem. To czego potrzebujesz to tylko kod i testy. Zmieniłem zdanie. Klient code + tests No problem. IEEE Standard 830 UML J.Nawrocki, Zwinne metodyki programowania
22 Krótkie przyrosty i wydania Najpierw przypadki testowe potem kod Wprowadzenie Wybrane praktyki XP: Klient na miejscu Krótkie przyrosty i wydania Najpierw przypadki testowe potem kod Automatyzacja wykonywania testów Dokumentacja = Przypadki testowe + kod Programowanie parami J.Nawrocki, Zwinne metodyki programowania
23 Krótkie przyrosty i wydania Najpierw przypadki testowe potem kod Wprowadzenie Wybrane praktyki XP: Klient na miejscu Krótkie przyrosty i wydania Najpierw przypadki testowe potem kod Automatyzacja wykonywania testów Dokumentacja = Przypadki testowe + kod Programowanie parami Małe zespoły J.Nawrocki, Zwinne metodyki programowania
24 Frederick P. Brooks OS/360 Manager (IBM), 1964-65350 mln USD ($1’63 = $6’01) J.Nawrocki, Zwinne metodyki programowania
25 Mityczny osobomiesiąc1. wydanie: 1975 Jubileuszowe wydanie: 1995 Polskie wydanie: Mityczny osobomiesiąc. Eseje o inżynierii oprogramowania, WNT, Warszawa, 2000. J.Nawrocki, Zwinne metodyki programowania
26 Raport Sackmana, Eriksona i GrantaSackman, Erikson, Grant, Exploratory experimental studies ..., CACM, 1/68, 3-11. Różnice w wydajności programowania jak 10:1 Różnice w rozmiarze programu jak 5:1 25 kierowników . . . Error . . . 175 programistów J.Nawrocki, Zwinne metodyki programowania
27 Raport Sackmana, Eriksona i GrantaSackman, Erikson, Grant, Exploratory experimental studies ..., CACM, 1/68, 3-11. Różnice w wydajności programowania jak 10:1 Różnice w rozmiarze programu jak 5:1 25 kierowników programistów OK OK OK . . . 175 programistów . . . J.Nawrocki, Zwinne metodyki programowania
28 Jak zwinnie uporać się z tymi problemami?Słabe strony XP Brak dokumentacji Jeden klient (na miejscu) Zbyt krótka perspektywa planu Jak zwinnie uporać się z tymi problemami? J.Nawrocki, Zwinne metodyki programowania
29 Programowanie Ekstremalne Gra Extreme 89 Matryca projektówPlan wykładu Wstęp Manifest zwinności Programowanie Ekstremalne Gra Extreme 89 Matryca projektów Wstęp Organizacja zespołu Cykl życia projektu Wybrane praktyki i narzędzia XPrince a ISO 9001:2000 XPrince a CMMI Oferta dla Polsoftu J.Nawrocki, Zwinne metodyki programowania
30 Gra dydaktyczna ukierunkowana na rozwiązanie problemu Gra symulacyjna Gra dydaktyczna ukierunkowana na rozwiązanie problemu Model rzeczywistości Jasno określone role Gry symulacyjne są często stosowane w kształceniu specjalistów z innych branż (np. ekonomistów) J.Nawrocki, Zwinne metodyki programowania
31 Nauka poprzez grę symulacyjną„Miniatura” rzeczywistego procesu Emocjonalne zaangażowanie a pamięć Znikome konsekwencje porażki (nauka na błędach) Niski koszt J.Nawrocki, Zwinne metodyki programowania
32 Extreme Hour (Peter Merel) 60 minut Miniatury procesu XP Extreme Hour (Peter Merel) 60 minut Praca koncepcyjna (pułapka na myszy) Brak zróżnicowania wiedzy klienta i programistów Brak odpowiednika testów akceptacyjnych Brak zmian (charakterystycznych dla metodyk zwinnych) J.Nawrocki, Zwinne metodyki programowania
33 Extreme Hour (Peter Merel) 60 minut Miniatury procesu XP Extreme Hour (Peter Merel) 60 minut Praca koncepcyjna (pułapka na myszy++) Brak zróżnicowania wiedzy klienta i programistów Brak odpowiednika testów akceptacyjnych Brak zmian (charakterystycznych dla metodyk zwinnych) Wprowadzenie do XP (Alistair Cockburn) Praca programistyczna (licznik dostępny przez WWW) Dwa 40 min. wydania, czas gry - 90 min. Trudna w realizacji Gra Planistyczna Brak możliwości porównania wyników różnych zespołów J.Nawrocki, Zwinne metodyki programowania
34 Prezentacja głównych praktyk XP bez konieczności programowania Extreme89 Prezentacja głównych praktyk XP bez konieczności programowania Zróżnicowanie wiedzy klienta i programistów – potrzeba komunikacji w zespole Możliwość przeprowadzenia gry w czasie zajęć akademickich Możliwość współzawodnictwa Możliwość wielokrotnego uczestnictwa w grze J.Nawrocki, Zwinne metodyki programowania
35 Uczestnicy gry Extreme89Moderator Programiści Klient J.Nawrocki, Zwinne metodyki programowania
36 Akcesoria do gry Extreme89J.Nawrocki, Zwinne metodyki programowania
37 Scenariusz gry Czas gry 0 min. 5 min. 10 min. 15 min. 27 min. 32 min.Opis czynności Klient i programiści poznają swoją wiedzę dziedz. Planowanie wydania I Planowanie przyrostu I.1 Praca Planowanie przyrostu I.2 Przekazanie wydania do użytkownika - weryfikacja Planowanie wydania II Planowanie przyrostu II.1 Planowanie przyrostu II.2 Podsumowanie gry J.Nawrocki, Zwinne metodyki programowania
38 Wiedza klienta Wartość rynkowa Parametr Punkty Oprawa 4 Wkład 3toner sterowanie arytmometr oprawa wkład komputer procesor drukarka laser pióro Wartość rynkowa Parametr Punkty Oprawa 4 Wkład 3 Pióro 24 Komputer 100 Testy akceptacyjne Parametr Przedział Oprawa Wkład Pióro Komputer J.Nawrocki, Zwinne metodyki programowania
39 Wiedza programistów Formuły wkład= F(x3, x4, 18) oprawa= F(x5, x6, 18)F(a, b, 1)= a F(a, b, 2)= b F(a, b, n)= F(a, b, n-2) + F(a, b, n-1) div 2 dla n>2 G(a, b, 1)= a G(a, b, 2)= b G(a, b, n)= G(a, b, n-2) + G(a, b, n-1) div dla n>2 Formuły wkład= F(x3, x4, 18) oprawa= F(x5, x6, 18) pióro= wkład + F(x5, x6, 35) ... toner= F(x13, x14, 18) drukarka= laser + F(x13, ..., 35) Zestaw wartości xi x1 = 2 x26 = ... x2 = 3 x27 = 2 x3 = 2 x28 = 16 x4 = 4 x29 = ... ... X30 = 2 J.Nawrocki, Zwinne metodyki programowania
40 Przebieg gry Extreme89 ZaczynamyJ.Nawrocki, Zwinne metodyki programowania
41 Przebieg gry Extreme89 PlanowanieCzy pióro jest komponentem innego obiektu? Planowanie Brakuje danych!!! Za pióro dają 24 J.Nawrocki, Zwinne metodyki programowania
42 Przebieg gry Extreme89 Kończymy przyrost I.1J.Nawrocki, Zwinne metodyki programowania
43 Przebieg gry Extreme89 Zmiany...J.Nawrocki, Zwinne metodyki programowania
44 Przebieg gry Extreme89 J.Nawrocki, Zwinne metodyki programowaniaUżytkownik końcowy J.Nawrocki, Zwinne metodyki programowania
45 Przebieg gry Extreme89 oprawa 170 wkład 400 laser 565 J.Nawrocki, Zwinne metodyki programowania
46 Pierwsze doświadczeniaPolitechnika Poznańska, marzec 2003 120 studentów III, IV i V roku Informatyki Wysoka ocena ponad 90% studentów Mocne strony Extreme89 w ocenie studentów Intensywny kurs XP Obserwacja znaczenia komunikacji w zespole Świetna zabawa J.Nawrocki, Zwinne metodyki programowania
47 Programowanie Ekstremalne Gra Extreme 89 Matryca projektówPlan wykładu Wstęp Manifest zwinności Programowanie Ekstremalne Gra Extreme 89 Matryca projektów Wstęp Organizacja zespołu Cykl życia projektu Wybrane praktyki i narzędzia XPrince a ISO 9001:2000 XPrince a CMMI Oferta dla Polsoftu J.Nawrocki, Zwinne metodyki programowania
48 Liczba zaangażowanych osóbMatryca projektów Krytyczność Defekty skutkują utratą L6 L20 L40 L100 L200 L500 E6 E20 E40 E100 E200 E500 D6 D20 D40 D100 D200 D500 C6 C20 C40 C100 C200 C500 1-6 -20 -40 -100 -200 -500 Życia (L) Dużych pieniędzy (E) Małych pieniędzy (D) Komfortu (C) Liczba zaangażowanych osób J.Nawrocki, Zwinne metodyki programowania
49 Rodzina metodyk CristalClear Yellow Orange Red Alistair Cockburn J.Nawrocki, Zwinne metodyki programowania
50 Koniec! Podsumowanie Manifest zwinności Termodynamiczny model projektuGra Extreme 89 Matryca projektów J.Nawrocki, Zwinne metodyki programowania
51 3. Czy dowiedziałeś się czegoś ważnego? 4. Co i jak poprawić?Ocena wykładu 1. Wrażenie ogólne (1 - 6) 2. Za szybko czy za wolno? 3. Czy dowiedziałeś się czegoś ważnego? 4. Co i jak poprawić? J.Nawrocki, Zwinne metodyki programowania
52 Plan wykładu Wstęp Procesy TSP TSP a PSP Role w TSPOrganizacja zespołu Cykl życia projektu Wybrane praktyki i narzędzia XPrince a ISO 9001:2000 XPrince a CMMI Oferta dla Polsoftu J.Nawrocki, Zwinne metodyki programowania