Programowanie Ekstremalne

Slides:



Advertisements
Podobne prezentacje
Programowanie Ekstemalne
Advertisements

Opis metodyki i procesu produkcji oprogramowania
Zarządzanie projektem informatycznym
Nowoczesne metody zespołowego tworzenia aplikacji
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?
Organizacja Przedsięwzięć Programistycznych Wykład 7, 27.II.03
ISO 9001:2000 z perspektywy CMMI a poznańska rzeczywistość
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.
Zwinne metodyki programowania
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
Informatyka jako dziedzina wiedzy
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.
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
Dyscyplina i zwinność w projektach informatycznych
Dyscyplina i zwinność w projektach informatycznych (cz. 2)
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Zasady skutecznego działania
Informatyka jako dziedzina wiedzy Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
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
Zarządzanie przedsięwzięciami i PRINCE2
Cykle życia oprogramowania
Agile Programming a jakość
Wymagania jakości w Agile Programming
Continuous Integration
Microsoft Solution Framework
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
Języki formalne i gramatyki Copyright, 2005 © Jerzy R. Nawrocki Teoretyczne podstawy.
Audyt wewnętrzny jako źródło oceny kontroli zarządczej w jednostce
(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.
Eksploatacja zasobów informatycznych przedsiębiorstwa.
Efektywne tworzenie oprogramowania 2008/2009 cvs.ii.uni.wroc.pl/eto2008.
Innowacyjne metody zarządzania jakością oprogramowania Przeglądy oprogramowania i standard IEEE 1028 Bartosz Michalik
Agile Programming a jakość
Inżynieria oprogramowania
Wprowadzenie do teoretycznych podstaw informatyki
[Nazwa projektu] Analiza zamknięcia
Kontrola jakości Inżynieria oprogramowania II
Jerzy Nawrocki Adam Wojciechowski
Zapis prezentacji:

Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Organizacja Procesów Programowych Wykład 1, 24.II.2003 Programowanie Ekstremalne Jerzy.Nawrocki@put.poznan.pl http://www.cs.put.poznan.pl/jnawrocki/opp Copyright, 2003 © Jerzy R. Nawrocki Organizacja Procesów Programowych, Wykład 1

J. Nawrocki, Programowanie Ekstremalne Wstęp Syndrom LOOP Loop L O P ate (późno) ver budget (przekroczony budżet) vertime (nadgodziny) oor quality (kiepska jakość) J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Wstęp ISO 9000 Kryte- ria Good guys Auditor Bad guys J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

CMM – Capability Maturity Model Wstęp CMM – Capability Maturity Model Departament Obrony USA SEI, Carnegie-Mellon Univ. 1989 - 93 CMMI: grudzień, 2000 CMM J. Nawrocki, Programowanie Ekstremalne

Procedury dla CMM Poziom 2 Wstęp Procedury dla CMM Poziom 2 przeglądy zobowiązań zewnętrznych opracowywanie planu przedsięwzięcia szacowanie rozmiaru, pracochłon-ności, kosztu, krytycznych zasobów obliczeniowych i harmonogramu dokonywanie zmian w planie przeglądy przedsięwzięcia przy kamieniach milowych planowanie zapewnienia jakości Proc x 13 J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne Wstęp J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Wstęp Problemy Za dużo papierów! Za dużo zebrań! J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

J. Nawrocki, Programowanie Ekstremalne Wstęp J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne Wstęp J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Wstęp XP Zbawca Zawsze to mówiłem! Najważniejsza komunikacja ustna. Jedyne artefakty: kod + testy IEEE/ANSI standard 830/1993? Zbędny! Inspekcje Fagana? Zbędne! Punkty funkcyjne? Zbędne! Żadnych nadgodzin! J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

Model dojrzałości dla XP Wstęp Model dojrzałości dla XP 4. Dojrzały Wydajność procesu 3. Zaawansowany Programowanie parami 2. Początkowy Relacje z klientem (CRM) Zapewnienie jakości produktu 1. Zupełnie niezgodny J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Plan wykładu Relacje z klientem Zapewnienie jakości Programowanie parami Minimalne pomiary J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

Zadbaj o efektywną współpracę Relacje z klientem Zadbaj o efektywną współpracę Nie musisz być wydajny, byleś był skuteczny Klient powinien cały czas pracować z zespołem Uczyń klienta swoim przywódcą („co robić” ważniejsze niż „jak robić”) J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne Role w XP Klient Programista Tester Tropiciel Trener J. Nawrocki, Programowanie Ekstremalne

Organizacja zespołu SDS Zarząd przedsięwzięcia Reprez. użytkow-nika Dyrektor przedsię-wzięcia Reprez. dostawcy AW | BW Promotor Zapewnianie jakości Studenci 5. roku Kierownik przedsięwzięcia Student 4. roku Kierownik produktu Student 4. roku Zespół Studenci 3. roku J. Nawrocki, Programowanie Ekstremalne

Opowieści użytkownika Relacje z klientem Opowieści użytkownika Muszę napisać opowieść. Opowieść: Jest wstępem do rozmowy. Jest krótka. Opisuje funkcję/cechę systemu. Ma wartość dla klienta. Musi być testowalna. It was not OK. J. Nawrocki, Programowanie Ekstremalne

Opowieści użytkownika (c) Jerzy Nawrocki 24 lutego 2003 Relacje z klientem Opowieści użytkownika Data: 6.11.01 Typ: Nowa: X Naprawa:__ Rozbudowa:__ Numer opowieści: 23 OPOWIEŚĆ: Dla każdego konta oblicz saldo dodając wszystkie wpłaty i odejmując wszystkie wypłaty. Rozmiar: J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

Stosuj częste krótkie wydania Relacje z klientem Stosuj częste krótkie wydania Pierwsze wydanie sterowca gotowe! Wydania SDS: 17.4: Wydanie I 19.6: Wydanie II Wydanie: Ma wartość użytkową. Trafia do użytkowników końcowych. J. Nawrocki, Programowanie Ekstremalne

Wydanie podziel na przyrosty Relacje z klientem Wydanie podziel na przyrosty Przyrost: Niepusty zbiór opowieści użytkownika. Charakter wewnętrzny (nie trafia do użytkownika końcowego). 2 – 3 tygodnie (70%). SDS: 3 tyg. Przyrost II Przyrost I J. Nawrocki, Programowanie Ekstremalne

Struktura przyrostu wg RUP (c) Jerzy Nawrocki 24 lutego 2003 Relacje z klientem Struktura przyrostu wg RUP Przyrost Analiza wymagań Projekt Elaboration iteration 2 Kodowanie, testy jednost. Testy systemu i podsys. J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

Znajdź metaforę dla systemu Relacje z klientem Znajdź metaforę dla systemu Sterowiec? To taka łódka, tyle, że pływa w powietrzu a nie po wodzie. Metafora: Wyjaśnia działanie systemu w terminach zrozumiałych dla klienta. J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne Relacje z klientem Stosuj grę planistyczną „Aby rzeczy pierwsze były pierwsze” – S. Covey J. Nawrocki, Programowanie Ekstremalne

Gra planistyczna - strategia J. Nawrocki, Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Relacje z klientem Gra planistyczna - strategia Minimalna inwestycja. Minimalny czas realizacji. Najbardziej wartościowe funkcje. J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

J. Nawrocki, Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Relacje z klientem Planowanie wydania Klient Informatycy Klient 6 h More colors 9 h More func. More colors 9 godz More colors Pisze opowieści użyt. Pracochł., ryzyko prędkość Wybiera zakres J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

J. Nawrocki, Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Relacje z klientem Planowanie wydania Szacują opowieść Informatycy It was not OK. Za duża! Dzieli opowieść Klient It was not OK. Klient It was not OK. Pisze opowieść J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

J. Nawrocki, Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Relacje z klientem Planowanie iteracji Głównymi decydentami są informatycy. 1. Podział zbioru opowieści na zadania (burza mózgów). 2. Podejmowanie się realizacji zadań ( < prędkość). Iteracja o zerowej funkcjonalności. .. jak informatyk z informatykiem. J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

J. Nawrocki, Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Relacje z klientem Faza realizacji Trudności (Informatycy) Nowe funkcje (Klient) Re-estymacja (Informatycy) J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

J. Nawrocki, Programowanie Ekstremalne Relacje z klientem Mierz prędkość projektu (pracochłonność/przyrost) - tropiciel Eksperymentuj by zmniejszyć ryzyko Nie poszerzaj funkcjonalności zbyt wcześnie Wciąż tworzę dzieła wiekopomne, O których jutro ... sam zapomnę. Czy nie widać jakiś zagrożeń? J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Plan wykładu Relacje z klientem Zapewnianie jakości Programowanie parami Minimalne pomiary J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

J. Nawrocki, Programowanie Ekstremalne Zapewnianie jakości Dbaj o prostotę Co pewien czas dokonuj refaktoryzacji Unikaj optymalizacji Dla każdej jednostki kodu opracuj NAJPIERW zestaw testów, potem pisz kod. J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne Zapewnianie jakości Kod musi przejść wszystkie testy jednostkowe zanim przekażesz go do eksploatacji Dla każdego wykrytego błędu utwórz zestaw testów Często integruj kod Często wykonuj testy akceptacyjne i publikuj ich wyniki J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Plan wykładu Relacje z klientem Zapewnianie jakości Programowanie parami Minimalne pomiary J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

J. Nawrocki, Programowanie Ekstremalne Programowanie parami Ma być x==y if (x=y) z=0; Autor Recenzent J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne Programowanie parami Po pewnym czasie.. Jak to testować? x-=y; else Recenzent Autor J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne Programowanie parami Cały produkt jest kodowany w parach. Standard kodowania. Częste integracje. Tylko jedna para integruje kod w danej chwili. Pary się zmieniają. Error J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne Programowanie parami Kod jest własnością całego zespołu. System zarządzania wersjami ! Automatyczne testowanie. Otwarta przestrzeń pracy dla zespołu. Error J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne (c) Jerzy Nawrocki 24 lutego 2003 Plan wykładu Relacje z klientem Zapewnianie jakości Programowanie parami Minimalne pomiary J. Nawrocki, Programowanie Ekstremalne Organizacja Procesów Programowych, Wykład 1

J. Nawrocki, Programowanie Ekstremalne Minimalne pomiary Kolekcjonowanie opowieści użytkownika. Prędkość projektu i poszczególnych osób w kolejnych tygodniach i przyrostach. Liczba próbnych rozwiązań. Obecność klienta na spotkaniach planistycznych i przy akceptacji. Data każdego testu akcept. Data i godzina każdej integracji. Wykryte błędy i ich testy identyfik. J. Nawrocki, Programowanie Ekstremalne

J. Nawrocki, Programowanie Ekstremalne Podsumowanie XP jest lekką metodyką programowania Małe przedsięwzięcia programistyczne (do 10 osób). Podstawowe czynniki ryzyka: brak dokumentacji – pielęgnacja produktu, problemy z dostępnością klienta, tylko 1 przedstawiciel klienta. Wreszcie! J. Nawrocki, Programowanie Ekstremalne