XPrince: Równoważenie zwinności i dyscypliny

Slides:



Advertisements
Podobne prezentacje
Kamil Markuszewski Mateusz Mikłuszka
Advertisements

Programowanie Ekstemalne
Inżynieria Oprogramowania
Część 2 OiZPI Iteracyjny przyrostowy model cyklu życiowego Rational Unified Process™ w materiałach wykorzystano: K.Subieta: Budowa i integracja systemów.
Opis metodyki i procesu produkcji oprogramowania
Programowanie Ekstremalne
Role w zespole projektowym
Projektowanie i zarządzanie projektami MPA
Zarządzanie przedsięwzięciami i PRINCE2
EXtreme Programming » Magdalena Tchorzewska.
Jerzy Nawrocki Piotr Pawałowski Krzysztof Pospiech
Na Etapie Inżynierii Wymagań
Lekkie metodyki programowania: Szansa czy zagrożenie?
Organizacja Przedsięwzięć Programistycznych Wykład 7, 27.II.03
Maciej Gabor, SCR 2002 Testowanie eXtremalne i narzędzia xUnit M. Gabor, J. Nawrocki, B. Walter Instytut Informatyki Politechnika Poznańska.
Dokumentowanie wymagań w języku XML
Inżynieria oprogramowania II Wykład 5 Standardy serii ISO 9000
Inżynieria oprogramowania II Wykład 4 Normy serii ISO 9000
Zwinne metodyki programowania
Szacowanie rozmiaru i pracochłonności
(c) Jerzy Nawrocki Jerzy Nawrocki
Inżynieria oprogramowania II Wykład 12 Projekty dyplomowe
Wprowadzenie do przedmiotu
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.
Personal Software Process
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
Dyscyplina i zwinność w projektach informatycznych
Dyscyplina i zwinność w projektach informatycznych (cz. 2)
Informatyka jako dziedzina wiedzy Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Copyright © Jerzy R. Nawrocki Personal Software Process Inżynieria oprogramowania II Wykład.
Testowanie oprogramowania
Zarządzanie przedsięwzięciami i PRINCE2
Szacowanie rozmiaru oprogramowania
Jakość systemów informacyjnych (aspekt eksploatacyjny)
Metodyki Lekkie Agile Methodologies
Rational Unified Process
Zarządzanie projektem systemu informatycznego
Specjalista do spraw odnawialnych źródeł energii
Projekt i implementacja aplikacji wspomagającej testowanie oprogramowania, zgodne z metodologią Unified Software Development Process (RUP). Włodzimierz.
Continuous Integration
Inżynieria Oprogramowania Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Metodologia CASE. Przyczyny użycia narzędzi CASE Główną przesłanką użycia narzędzi CASE jest zwiększenie produktywności i jakości produkowanych systemów.
ŁUKASZ DZWONKOWSKI Modele zwinne i ekstremalne. Podejście tradycyjne
(c) Jerzy Nawrocki Jerzy Nawrocki
PROINFO System zarządzania informacją o przedsięwzięciu informatycznym Seminarium dyplomowe 2004 WIiZ Politechnika Poznańska.
(c) Jerzy Nawrocki Jerzy Nawrocki
Wprowadzenie do teoretycznych podstaw informatyki Copyright, 2004 © Jerzy R. Nawrocki
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
Innowacyjne metody zarządzania jakością oprogramowania, Zarządzanie ryzykiem w metodyce PRINCE2 Jerzy Nawrocki
Od badań uczelnianych do innowacyjności w firmach Instytut Informatyki, Politechnika Poznańska Seminarium projektu InMoST 28 października 2005 Instytut.
Projekt InMoST Podsumowanie dotychczasowych działań oraz plany na kolejny rok Projekt InMoST Podsumowanie dotychczasowych działań oraz plany na kolejny.
POLITECHNIKA POZNAŃSKA, WYDZIAŁ INŻYNIERII ZARZĄDZANIA
Wprowadzenie do teoretycznych podstaw informatyki
Metodyka PRINCE 2 w zarządzaniu projektami informatycznymi administracji publicznej – inicjowanie projektu dr inż. Stefan Rozmus PRINCE2 Registered Practitioner.
Wojskowa Akademia Techniczna, Wydział Cybernetyki
POLITECHNIKA POZNAŃSKA, WYDZIAŁ INŻYNIERII ZARZĄDZANIA
IEEE SPMP Autor : Tomasz Czwarno
Jerzy Nawrocki Adam Wojciechowski
Zapis prezentacji:

XPrince: Równoważenie zwinności i dyscypliny Inżynieria oprogramowania, Wykład 15 XPrince: Równoważenie zwinności i dyscypliny „Trabrennen” w Austrii

Kryzys oprogramowania Syndrom LOOP Loop Loop is dangerous. L O P ate oor quality ver budget vertime J.Nawrocki, XPrince

Podejście bazujące na dyscyplinie Więcej dyscypliny! Wymag. Projekt Kod Testy 1 2 3 4 5 CMM IEEE Std ISO 9000 J.Nawrocki, XPrince

Dyscyplina w zarządzaniu projektami Managing Successful Projects with PRINCE 2 1975: PROMPT, Simpact Systems Ltd 1979: PROMPT staje się standardem CCTA CCTA = the Central Computer and Telecommunications Agency, UK 1989: CCTA wprowadza PRINCE PRINCE = PRojects IN Controlled Environments 1996: CCTA publikuje PRINCE2 J.Nawrocki, XPrince

Nadmierna dyscyplina zabija inicjatywę i elastyczność J.Nawrocki, XPrince

Zwinne wytwarzanie oprogramowania – lata 90-te O K Działające oprogr. Ludzie i komunikacja Współpracujący klient Reagowanie na zmiany Tommorow or never! J.Nawrocki, XPrince

"XP jest dzisiaj najważniejszym ruchem w IO." Extreme Programming (XP) = lekka (zwinna) metodyka rozwoju oprogramowania "XP jest dzisiaj najważniejszym ruchem w IO." Tom DeMarco J.Nawrocki, XPrince

Silna orientacja na klienta Przyrosty i krótkie wydania XP Cenne praktyki XP: Silna orientacja na klienta Przyrosty i krótkie wydania Testy przed kodowaniem Refaktoryzacja Gra planistyczna etc. J.Nawrocki, XPrince

XP No silver bullet! Frederick P. Brooks IBM OS/360 Manager (1964-65) J.Nawrocki, XPrince

Założenie „on-site customer” Brak spisanej dokumentacji Słabości Dyscyplina (Celebra ) Zwinność (XP) Nadmiar papierów Powolny proces decyz. Mała elastyczność Opór przed zmianą Założenie „on-site customer” Brak spisanej dokumentacji Zbyt krótka perspektywa planu J.Nawrocki, XPrince

Rozwiązanie Barry Boehm Richard Turner Balancing Agility and Discipline A Guide for the Perplexed „każde skuteczne przedsięwzięcie w zmieniającym się świecie wymaga zarówno zwinności, jak i dyscypliny” Addison-Wesley, 2004. J.Nawrocki, XPrince

Studio Rozwoju Oprogramowania Politechnika Poznańska Wydział Informatyki i Zarządzania Studio Rozwoju Oprogramowania (od 1998) Produkty programist. Transfer technologii: Dobre praktyki Metody i narzędzia Wzorce dokumentów J.Nawrocki, XPrince

Rational Unified Process Źródła XPrince PRINCE 2 Rational Unified Process XPrince eXtreme Programming in controlled environments XP J.Nawrocki, XPrince

„Trabrennen” w Austrii Plan prezentacji Wstęp Struktura zespołu Cykl życia projektu Inżynieria wymagań i UC Workbench Rozwój oprogramowania „Trabrennen” w Austrii J.Nawrocki, XPrince

„Trabrennen” w Austrii Plan prezentacji Wstęp Struktura zespołu Cykl życia projektu Inżynieria wymagań i UC Workbench Rozwój oprogramowania „Trabrennen” w Austrii J.Nawrocki, XPrince

Zespół XP Coach Tracker Tester Klient Programiści J.Nawrocki, XPrince

Zespół Zarządzania Projektem w PRINCE2 Komitet sterujący Główny użytkownik Przewodn. Główny dostawca J.Nawrocki, XPrince

Zespół Zarządzania Projektem w PRINCE2 Komitet sterujący Główny użytkownik Przewodn. Główny dostawca Raport Plan Kierownik projektu J.Nawrocki, XPrince

Zespół Zarządzania Projektem w PRINCE2 Komitet sterujący Główny użytkownik Przewodn. Główny dostawca Raport Nadzór projektu Plan Kierownik projektu J.Nawrocki, XPrince

Zespół Zarządzania Projektem w PRINCE2 Komitet sterujący Główny użytkownik Przewodn. Główny dostawca Raport Nadzór projektu Plan Kierownik projektu Grupa zad. Wsparcie projektu Raport Kierownik Zespołu Kierownik zesp. Kierownik Zespołu J.Nawrocki, XPrince

Role w RUP Kierownik projektu Tester Architekt Programista Analityk J.Nawrocki, XPrince

Zespół XPrince XP Prince 2 Komitet sterujący Główny użytkownik Przewodn. Główny dostawca Nadzór projektu Kierownik = Coach Analityk=Klient Architekt Kierownik Zespołu Programiści Kierownik Zespołu J.Nawrocki, XPrince

„Trabrennen” w Austrii Plan prezentacji Wstęp Struktura zespołu Cykl życia projektu Inżynieria wymagań i UC Workbench Rozwój oprogramowania „Trabrennen” w Austrii J.Nawrocki, XPrince

Cykl życia wg PRINCE2 16.10 27.11 23.01 8.04 27.05 17.06 1.07 Przyg. założ. proj. Inicjowanie projektu Etap 1 Etap 2 Etap 3 Etap 4 Zamk. Projektu J.Nawrocki, XPrince

Cykl życia wg XP Wydanie 1 Wydanie 2 Przyrost 1 Przyrost 2 Przyrost 1 J.Nawrocki, XPrince

Fazy wg RUP Rozpoczęcie Rozpracowanie Konstrukcja Wdrożenie J.Nawrocki, XPrince

Modelowanie biznesowe Cykl życia wg XPrince 16.10 27.11 23.01 8.04 27.05 17.06 8.07 Przyg. założ. proj. Cel i zakres Architek tura Wydanie 1 Wydanie 2 Wydanie 3 Zamkn. Projektu Modelowanie biznesowe Przyrost 1 Zakres Przyrost 2 Wdroż. J.Nawrocki, XPrince

„Trabrennen” w Austrii Plan prezentacji Wstęp Struktura zespołu Cykl życia projektu Inżynieria wymagań i UC Workbench Rozwój oprogramowania „Trabrennen” w Austrii J.Nawrocki, XPrince

Edycja przypadków użycia Generowanie prototypów typu mockup . . . Przypadek użycia Wstępna rejestracja artykułu Scenariusz główny 1. System presents a registration form. 2. Author fills the form in. 3. System validates the data and returns a login and password. Rozszerzenia 3a. The data are in wrong format. 3a1. System displays a message and returns to step 2. Edycja przypadków użycia Generowanie prototypów typu mockup . . . J.Nawrocki, XPrince

Ekran prototypu wygenerowanego przez UC Workbench J.Nawrocki, XPrince

„Trabrennen” w Austrii Plan prezentacji Wstęp Struktura zespołu Cykl życia projektu Inżynieria wymagań i UC Workbench Rozwój oprogramowania „Trabrennen” w Austrii J.Nawrocki, XPrince

Programować parami czy indywidualnie? Programowanie indywidualne - Ind 1 osoba – 1 komputer – 1 zadanie Programowanie parami - XP 2 osoby – 1 komputer – 1 zadanie Programowanie Side-by-Side - SbS 2 osoby – 2 komputery – 1 zadanie J.Nawrocki, XPrince

Aplikacje internetowe System zarządzania artykułami konf. PapersOnLine Zadania i proces Aplikacje internetowe System zarządzania artykułami konf. PapersOnLine 6 dni, około 8 godz. dziennie: Dzień 0 „Praca domowa” Dzień 1 Sprawdzian znajomości technologii Dzień 2 Pomiar indywidualnej prędkości program. Dni 3-4 Zdobywanie dośw. w programowaniu parami Dni 5-6 Właściwy eksperyment i pomiar czasu J.Nawrocki, XPrince

Średni CZAS programowania SbS XP Ind Ind XP SbS J.Nawrocki, XPrince

Średnia PRACOCHŁONNOŚĆ programowania SbS XP Ind Ind XP SbS J.Nawrocki, XPrince

Programować parami czy indywidualnie? Wniosek: Elastyczna metodyka programowania powinna udostępniać wszystkie ‘tryby’ programowania: indywidualny, programowanie parami w stylu XP i programowanie Side-by-Side. XP SbS J.Nawrocki, XPrince

Integracja powtórnego użycia i test-first coding public void testStack(){ for (int k=0; k <10; k++){ call(„wloz", k, DONT_CARE); } for (int k = 0; k < 10; k++){ call(„zdejmij", 9 - k); Przykładowe zapytanie J.Nawrocki, XPrince

Integracja powtórnego użycia i test-first coding Wynik wyszukiwania java.util.Stack wloz = void push(Object) zdejmij = Object pop() J.Nawrocki, XPrince

Prosty eksperyment Opis w języku naturalnym 9 programistów public void testStack(){ for (int k=0; k <10; k++){ call(„wloz", k, DONT_CARE); } for (int k = 0; k < 10; k++){ call(„zdejmij", 9 - k); JUnit Przeprowadziliśmy także eksperyment: 9 programistom przedstawiliśmy tekstowy opis funkcjonalności 10 nieskomplikowanych jednostek programowych. Następnie poprosiliśmy, o dostarczenie podstawowych testów, których użyli by do znalezienia tych jednostek przy użyciu omawianej metody. 9 programistów 10 jednostek do znal. J.Nawrocki, XPrince

Prosty eksperyment - wyniki 9 z 10 jednostek – Poprawna i jednoznaczna charakterystyka ‘Trudna’ jednostka – klasa manipulująca łańcuchami Okazało się, że w 9/10 przypadków programiści jednoznacznie i poprawnie zidentyfikowali za pomocą swoich przypadków testowych poszukiwaną funkcję w testowym repozytorium. Jedynym problemem okazała się klasa reprezentująca łańcuch z możliwością dopasowywania do wyrażeń regularnych. 4 programistów założyło, że powinna ona mieć statyczną metodę biorąca dwa parametry: łańuch i wyrażenie regularne, podczas, gdy w rzeczywistej klasie łańcuch był ustawiany na etapie konstrukcji obiektu, a metoda match przyjmowała jeden argument. J.Nawrocki, XPrince

Podsumowanie Kombinacja zwinnej metodyki (XP) ze zdyscyplinowaną (PRINCE2 i RUP) jest możliwa Wsparcie narzędziowe (UC Workbench) jest ważne Elastyczne podejście do programowania parami Kombinacja powtórnego użycia z test-first coding. At last! J.Nawrocki, XPrince

Pytania? ? J.Nawrocki, XPrince