Zwinne metodyki programowania

Slides:



Advertisements
Podobne prezentacje
Agile w praktyce, czyli jak to robimy naprawdę
Advertisements

Programowanie Ekstemalne
Inżynieria Oprogramowania
Wprowadzenie do informatyki Wykład 6
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Opis metodyki i procesu produkcji oprogramowania
Programowanie Ekstremalne
Role w zespole projektowym
Zarządzanie przedsięwzięciami i PRINCE2
EXtreme Programming » Magdalena Tchorzewska.
Jerzy Nawrocki Piotr Pawałowski Krzysztof Pospiech
Próba eksperymentalnej oceny metody PROBE
Na Etapie Inżynierii Wymagań
Lekkie metodyki programowania: Szansa czy zagrożenie?
Maciej Gabor, SCR 2002 Testowanie eXtremalne i narzędzia xUnit M. Gabor, J. Nawrocki, B. Walter Instytut Informatyki Politechnika Poznańska.
ISO 9001:2000 z perspektywy CMMI a poznańska rzeczywistość
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Inżynieria oprogramowania II Wykład 5 Standardy serii ISO 9000
Inżynieria oprogramowania II Wykład 4 Normy serii ISO 9000
Inżynieria oprogramowania Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Szacowanie rozmiaru i pracochłonności
Inżynieria oprogramowania II Wykład 12 Projekty dyplomowe
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Wprowadzenie do przedmiotu
Model dojrzałości CMMI
Copyright © Jerzy R. Nawrocki Standardy serii ISO Inżynieria oprogramowania II Wykład.
Zwinne metodyki programowania Copyright, 2006 © Jerzy R. Nawrocki Inżynieria oprogramowania.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
Wykład 1 Inżynieria oprogramowania II Wykład 1 Wprowadzenie
Inżynieria Oprogramowania Copyright, 2002 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Szacowanie rozmiaru i pracochłonności
Personal Software Process
XPrince: Równoważenie zwinności i dyscypliny
J. Nawrocki, Inżynieria oprog. Plan wykładu Praktyki XP Wcześniejsze badania Personal Software Process eXtremme Programming Opis eksperymentu WynikiPodsumowanie.
Analiza i walidacja wymagań
Copyright © Jerzy R. Nawrocki Zbieranie wymagań Analiza systemów informatycznych Wykład.
Copyright © Jerzy R. Nawrocki Wprowadzenie Analiza systemów informatycznych Wykład.
Inżynieria oprogramowania II Wykład 10 PRINCE2 i TSP
Testy akceptacyjne Analiza systemów informatycznych Wykład 9
Modelowanie i język UML
Dokument specyfikacji wymagań
Dyscyplina i zwinność w projektach informatycznych
Dyscyplina i zwinność w projektach informatycznych (cz. 2)
Informatyka jako dziedzina wiedzy Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Copyright © Jerzy R. Nawrocki Personal Software Process Inżynieria oprogramowania II Wykład.
Testowanie oprogramowania
Copyright © Jerzy R. Nawrocki Szacowanie rozmiaru i pracochłonności Inżynieria oprogramowania.
Zarządzanie przedsięwzięciami i PRINCE2
Metodyki Lekkie Agile Methodologies
Continuous Integration
Inżynieria Oprogramowania Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Jakość w projektach studenckich Paweł Polaczyk. Paweł Polaczyk, Jakość w projektach studenckich 2/12 Plan prezentacji Informacje ogólne Jakość Zagrożenia.
ŁUKASZ DZWONKOWSKI Modele zwinne i ekstremalne. Podejście tradycyjne
(c) Jerzy Nawrocki Jerzy Nawrocki
(c) Jerzy Nawrocki Jerzy Nawrocki
Agile Manifesto Manifest Zwinnego Wytwarzania Oprogramowania
Wprowadzenie do teoretycznych podstaw informatyki Copyright, 2004 © Jerzy R. Nawrocki
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
Inżynieria oprogramowania
Zarządzanie projektami informatycznymi
Zarządzanie projektami
Jerzy Nawrocki Adam Wojciechowski
Inżynieria oprogramowania II Wykład 5 Model CMMI
Zapis prezentacji:

Zwinne metodyki programowania Inżynieria oprogramowania II Wykład 11 Zwinne metodyki programowania Jerzy.Nawrocki@put.poznan.pl www.cs.put.poznan.pl/jnawrocki/io

Crazy is my life! Syndrom LOOP Loop L ate (późno) O oor quality (kiepska jakość) ver budget (przekroczony budżet) vertime (nadgodziny) Crazy is my life! J.Nawrocki, Zwinne metodyki programowania

Zwinne metodyki programowania Plan 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

Manifest zwinności Plan wykładu Wstęp 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

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

Jednostki i interakcje niż procesy i narzędzia Manifest zwinności Ważniejsze: Jednostki i interakcje niż procesy i narzędzia J.Nawrocki, Zwinne metodyki programowania

Główne części normy ISO 9001:2000 4 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

Zbyt dużo dokumentacji Brak elastyczności działania ISO Problemy z ISO 9001 Udokumentowane = lepsze Zbyt dużo dokumentacji Brak elastyczności działania ISO J.Nawrocki, Zwinne metodyki programowania

Jednostki i interakcje niż procesy i narzędzia Manifest 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

Programowanie Ekstremalne Gra Extreme 89 Matryca projektów Plan 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

Zwinne metodyki programowania Programowanie Ekstremalne (XP) = lekka (zwinna) metodyka tworzenia oprogramowania Tom DeMarco „XP jest dzisiaj najważniejszym ruchem w IO." J.Nawrocki, Zwinne metodyki programowania

Wprowadzenie Wybrane praktyki XP: Klient na miejscu J.Nawrocki, Zwinne metodyki programowania

Krótkie przyrosty i wydania Wprowadzenie Wybrane praktyki XP: Klient na miejscu Krótkie przyrosty i wydania Termin Koszty Niezawodność Zakres Defekty Niekompletność J.Nawrocki, Zwinne metodyki programowania

Termodynamiczny model projektu Termin Koszt Defekty Niekomplet-ność J.Nawrocki, Zwinne metodyki programowania

Termodynamiczny model projektu Termin Koszt Defekty Niekomplet-ność J.Nawrocki, Zwinne metodyki programowania

Termodynamiczny model projektu Termin Koszt Defekty Niekomplet-ność J.Nawrocki, Zwinne metodyki programowania

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 J.Nawrocki, Zwinne metodyki programowania

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

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

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

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

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

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

Frederick P. Brooks OS/360 Manager (IBM), 1964-65 350 mln USD ($1’63 = $6’01) J.Nawrocki, Zwinne metodyki programowania

Mityczny osobomiesiąc 1. wydanie: 1975 Jubileuszowe wydanie: 1995 Polskie wydanie: Mityczny osobomiesiąc. Eseje o inżynierii oprogramowania, WNT, Warszawa, 2000. J.Nawrocki, Zwinne metodyki programowania

Raport Sackmana, Eriksona i Granta Sackman, 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

Raport Sackmana, Eriksona i Granta Sackman, 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

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

Programowanie Ekstremalne Gra Extreme 89 Matryca projektów Plan 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

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

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

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

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

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

Uczestnicy gry Extreme89 Moderator Programiści Klient J.Nawrocki, Zwinne metodyki programowania

Akcesoria do gry Extreme89 J.Nawrocki, Zwinne metodyki programowania

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

Wiedza klienta Wartość rynkowa Parametr Punkty Oprawa 4 Wkład 3 toner 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 170..190 Wkład 150..450 Pióro 12500..12800 ... ... Komputer 5400..5700 J.Nawrocki, Zwinne metodyki programowania

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 10 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

Przebieg gry Extreme89 Zaczynamy J.Nawrocki, Zwinne metodyki programowania

Przebieg gry Extreme89 Planowanie Czy pióro jest komponentem innego obiektu? Planowanie Brakuje danych!!! Za pióro dają 24 J.Nawrocki, Zwinne metodyki programowania

Przebieg gry Extreme89 Kończymy przyrost I.1 J.Nawrocki, Zwinne metodyki programowania

Przebieg gry Extreme89 Zmiany... J.Nawrocki, Zwinne metodyki programowania

Przebieg gry Extreme89 J.Nawrocki, Zwinne metodyki programowania Użytkownik końcowy J.Nawrocki, Zwinne metodyki programowania

Przebieg gry Extreme89 oprawa 170  wkład 400  laser 565  J.Nawrocki, Zwinne metodyki programowania

Pierwsze doświadczenia Politechnika 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

Programowanie Ekstremalne Gra Extreme 89 Matryca projektów Plan 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

Liczba zaangażowanych osób Matryca 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

Rodzina metodyk Cristal Clear Yellow Orange Red Alistair Cockburn J.Nawrocki, Zwinne metodyki programowania

Koniec! Podsumowanie Manifest zwinności Termodynamiczny model projektu Gra Extreme 89 Matryca projektów J.Nawrocki, Zwinne metodyki programowania

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

Plan wykładu Wstęp Procesy TSP TSP a PSP Role w TSP 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