Extreme Programming

background image

Extreme

Extreme

Programming

Programming

Nowoczesne metody zespołowego

Nowoczesne metody zespołowego

tworzenia aplikacji

tworzenia aplikacji

Krzysztof Chłosta s1644

Krzysztof Chłosta s1644

background image

Extreme Programming

Extreme Programming

Extreme Programming czyli Wydajne

Extreme Programming czyli Wydajne

Programowanie, w skrócie XP

Programowanie, w skrócie XP

(bez skojarzeń!)

(bez skojarzeń!)

Nowe techniki tworzenia aplikacji

Nowe techniki tworzenia aplikacji

Powstawały i były rozwijane przez kilka

Powstawały i były rozwijane przez kilka

niezależnych grup

niezależnych grup

Tylko projekty IT

Tylko projekty IT

W ostatnich latach tysiące firm i

W ostatnich latach tysiące firm i

programistów przekonało się o

programistów przekonało się o

skuteczności tej metody

skuteczności tej metody

background image

Extreme Programming

Extreme Programming

Podejście do zmian

Podejście do zmian

w projektach:

w projektach:

Klasyczne: zmiany

Klasyczne: zmiany

są trudne i

są trudne i

kosztowne

kosztowne

XP: zmiany są

XP: zmiany są

nieuniknione więc

nieuniknione więc

trzeba być na nie

trzeba być na nie

przygotowanym

przygotowanym

background image

Extreme Programming

Extreme Programming

Równanie XP

Równanie XP

Projektami można zarządzać w czterech

Projektami można zarządzać w czterech

kategoriach:

kategoriach:

Czas

Czas

Możliwości

Możliwości

Zasoby

Zasoby

Jakość

Jakość

background image

Extreme Programming

Extreme Programming

Przykład teoretyczny:

Przykład teoretyczny:

Zasoby wody na stacji

Zasoby wody na stacji

kosmicznej są stałe

kosmicznej są stałe

W systemie zamkniętym

W systemie zamkniętym

czysta woda trafia na

czysta woda trafia na

stronę brudnej

stronę brudnej

Urządzenie zawiera panel

Urządzenie zawiera panel

sterujący z czterema

sterujący z czterema

pokrętłami: Czas, Zasoby,

pokrętłami: Czas, Zasoby,

Możliwości, Jakość

Możliwości, Jakość

Każde z pokręteł steruje

Każde z pokręteł steruje

aspektami filtrowania

aspektami filtrowania

Klienci

Woda

niezdatn

a do

picia

Woda

zdatna

do

picia

Urządzenie do

filtrowania

background image

Extreme Programming

Extreme Programming

Ten sam schemat przy

Ten sam schemat przy

tworzeniu oprogramowania:

tworzeniu oprogramowania:

Klient składa zamówienie –

Klient składa zamówienie –

niedokończone zadanie lub

niedokończone zadanie lub

problem biznesowy.

problem biznesowy.

Zamówienie jest

Zamówienie jest

realizowane przez

realizowane przez

programistów

programistów

Zrealizowane zamówienie

Zrealizowane zamówienie

trafia do klienta

trafia do klienta

Na podstawie wyników

Na podstawie wyników

klient podejmuje decyzję o

klient podejmuje decyzję o

złożeniu ponownego

złożeniu ponownego

zamówienia i cały cykl się

zamówienia i cały cykl się

powtarza.

powtarza.

Klient

Rozwiązani

e w postaci

kodu

Proces

tworzenia

Problem

biznesow

y

background image

Extreme Programming

Extreme Programming

Wartości XP

Wartości XP

Wydajne Programowanie składa się z

Wydajne Programowanie składa się z

czterech podstawowych wartości:

czterech podstawowych wartości:

Komunikacja

Komunikacja

Odpowiedzi na pytania

Odpowiedzi na pytania

Prostota

Prostota

Odwaga

Odwaga

background image

Extreme Programming

Extreme Programming

Dobra

Dobra

komunikacja

komunikacja

do podstawa każdego

do podstawa każdego

projektu.

projektu.

Ignorowanie bądź ukrywanie informacji potrafi

Ignorowanie bądź ukrywanie informacji potrafi

pogrążyć dowolny projekt

pogrążyć dowolny projekt

Klient odpowiada na pytania co powinno być

Klient odpowiada na pytania co powinno być

zrobione i jakie są priorytety

zrobione i jakie są priorytety

Programiści i analitycy mówią w jaki sposób

Programiści i analitycy mówią w jaki sposób

zadanie zostanie wykonane, ile potrwa to czasu

zadanie zostanie wykonane, ile potrwa to czasu

oraz określają ryzyko.

oraz określają ryzyko.

Dobra, częsta i szczera komunikacja z klientem to

Dobra, częsta i szczera komunikacja z klientem to

jedno z kluczowych założeń XP

jedno z kluczowych założeń XP

(klient członkiem zespołu)

(klient członkiem zespołu)

background image

Extreme Programming

Extreme Programming

Zadawanie pytań

Zadawanie pytań

jest jedynym sposobem

jest jedynym sposobem

poznawania zdania klienta.

poznawania zdania klienta.

Jedynym sposobem zaakceptowania kodu

Jedynym sposobem zaakceptowania kodu

przez klienta jest przetestowanie.

przez klienta jest przetestowanie.

Im wcześniej uzyskamy odpowiedzi na

Im wcześniej uzyskamy odpowiedzi na

pytania tym więcej mamy czasu na reakcję.

pytania tym więcej mamy czasu na reakcję.

Częste uzyskiwanie odpowiedzi pozwala na

Częste uzyskiwanie odpowiedzi pozwala na

częste wprowadzanie zmian i poprawek

częste wprowadzanie zmian i poprawek

background image

Extreme Programming

Extreme Programming

Prostota

Prostota

oznacza wykonywanie tylko

oznacza wykonywanie tylko

tej części systemu która rzeczywiście

tej części systemu która rzeczywiście

musi być wykonana.

musi być wykonana.

Koszta złożoności są duże a

Koszta złożoności są duże a

przewidywanie przyszłości trudne.

przewidywanie przyszłości trudne.

Wystarczy zapytać, nie trzeba

Wystarczy zapytać, nie trzeba

zgadywać.

zgadywać.

Koszt dodania funkcji później będzie taki

Koszt dodania funkcji później będzie taki

sam jak dzisiaj.

sam jak dzisiaj.

background image

Extreme Programming

Extreme Programming

Odwaga

Odwaga

oznacza podejmowanie

oznacza podejmowanie

trudnych decyzji gdy jest to konieczne.

trudnych decyzji gdy jest to konieczne.

Jeżeli funkcja nie działa, naprawia się ją.

Jeżeli funkcja nie działa, naprawia się ją.

Gdy nie uda nam się dostarczyć

Gdy nie uda nam się dostarczyć

wszystkich funkcji w zaplanowanym

wszystkich funkcji w zaplanowanym

terminie należy od razu powiadomić

terminie należy od razu powiadomić

klienta. To on zdecyduje którymi

klienta. To on zdecyduje którymi

funkcjami należy się zająć najpierw.

funkcjami należy się zająć najpierw.

background image

Extreme Programming

Extreme Programming

Zakładanie dostateczności rozwiązania

Zakładanie dostateczności rozwiązania

Wystarczająca ilość czasu zakłada niski

Wystarczająca ilość czasu zakłada niski

koszt zmian w dowolnym etapie projektu.

koszt zmian w dowolnym etapie projektu.

XP stara się stworzyć najlepsze

XP stara się stworzyć najlepsze

oprogramowanie w dostępnym czasie i

oprogramowanie w dostępnym czasie i

zasobach. Oznacza to, iż w najgorszym

zasobach. Oznacza to, iż w najgorszym

przypadku projekt zostanie dokończony w

przypadku projekt zostanie dokończony w

określonym czasie jednak niektóre mniej

określonym czasie jednak niektóre mniej

ważne funkcje nie zostaną dodane.

ważne funkcje nie zostaną dodane.

background image

Extreme Programming

Extreme Programming

Techniki XP

Techniki XP

Istnieje 12 technik Extreme Programming.

Istnieje 12 technik Extreme Programming.

Wspierają się one nawzajem i ułatwiają

Wspierają się one nawzajem i ułatwiają

podejmowanie decyzji.

podejmowanie decyzji.

Praktykowanie XP wymaga dyscypliny ponieważ

Praktykowanie XP wymaga dyscypliny ponieważ

wykorzystywanie kilku technik bez znajomości

wykorzystywanie kilku technik bez znajomości

interakcji może doprowadzić do poważnych

interakcji może doprowadzić do poważnych

błędów.

błędów.

Można używać tylko kliku technik ale zaleca się

Można używać tylko kliku technik ale zaleca się

wdrożenie całego zestawu.

wdrożenie całego zestawu.

background image

Extreme Programming

Extreme Programming

Techniki kodowania:

Techniki kodowania:

Proste projektowanie i kodowanie

Proste projektowanie i kodowanie

Cel: wykonanie oprogramowania łatwego w

Cel: wykonanie oprogramowania łatwego w

modyfikacji

modyfikacji

Bezlitosna refaktoryzacja

Bezlitosna refaktoryzacja

Cel: Znalezienie optymalnego projektu kodu

Cel: Znalezienie optymalnego projektu kodu

Opracowanie standardów kodowania

Opracowanie standardów kodowania

Cel: łatwe przekazywanie pomysłów przy użyciu kodu

Cel: łatwe przekazywanie pomysłów przy użyciu kodu

Stosowanie wspólnego słownictwa

Stosowanie wspólnego słownictwa

Cel: łatwe przekazywanie nowych pomysłów

Cel: łatwe przekazywanie nowych pomysłów

background image

Extreme Programming

Extreme Programming

Techniki tworzenia:

Techniki tworzenia:

Kreowanie z nakierowaniem na testy

Kreowanie z nakierowaniem na testy

Cel: udowodnienie, że kod działa zgodnie z założeniami

Cel: udowodnienie, że kod działa zgodnie z założeniami

Programowanie w parach

Programowanie w parach

Cel: szerzenie wiedzy, doświadczenia i pomysłów

Cel: szerzenie wiedzy, doświadczenia i pomysłów

Stosowanie zasady wspólnej własności kodu

Stosowanie zasady wspólnej własności kodu

Cel: rozszerzenie odpowiedzialności za kod na cały

Cel: rozszerzenie odpowiedzialności za kod na cały

zespół

zespół

Ciągła integracja

Ciągła integracja

Cel: redukcja wpływu wprowadzenia nowych funkcji

Cel: redukcja wpływu wprowadzenia nowych funkcji

background image

Extreme Programming

Extreme Programming

Techniki biznesowe:

Techniki biznesowe:

Klient jest członkiem zespołu

Klient jest członkiem zespołu

Cel: aby dobrze spełnić założenia biznesowe

Cel: aby dobrze spełnić założenia biznesowe

Zabawa w planowanie

Zabawa w planowanie

Cel: tworzenie harmonogramu dla najważniejszych zadań

Cel: tworzenie harmonogramu dla najważniejszych zadań

Regularne wydania

Regularne wydania

Cel: częste zwracanie klientowi działającej wersji, by

Cel: częste zwracanie klientowi działającej wersji, by

zawierzył, że inwestycja nie idzie na marne

zawierzył, że inwestycja nie idzie na marne

Praca we względnym spokoju

Praca we względnym spokoju

Cel: pójście do domu zmęczonym a nie wykończonym

Cel: pójście do domu zmęczonym a nie wykończonym

background image

Extreme Programming

Extreme Programming

Zdarzenia XP

Zdarzenia XP

Iteracje to bardzo ważny składnik XP.

Iteracje to bardzo ważny składnik XP.

Są to mniejsze i szybsze wersje

Są to mniejsze i szybsze wersje

tradycyjnego cyklu tworzenia

tradycyjnego cyklu tworzenia

oprogramowania.

oprogramowania.

Są od siebie niezależne.

Są od siebie niezależne.

Zwiększają szybkość przepływu informacji.

Zwiększają szybkość przepływu informacji.

Praca odbywająca się małymi kroczkami

Praca odbywająca się małymi kroczkami

pozwala podejmować lepsze decyzje.

pozwala podejmować lepsze decyzje.

background image

Extreme Programming

Extreme Programming

Planowanie Iteracji:

Planowanie Iteracji:

Każda kolejna iteracja daje szanse na

Każda kolejna iteracja daje szanse na

dostosowanie harmonogramu do zmian

dostosowanie harmonogramu do zmian

w projekcie.

w projekcie.

Spotkania dotyczące planowania

Spotkania dotyczące planowania

prowadzone są przez klienta.

prowadzone są przez klienta.

Są na nich określane priorytety funkcji

Są na nich określane priorytety funkcji

które mają być zaimplementowane i

które mają być zaimplementowane i

dostarczone w danej iteracji.

dostarczone w danej iteracji.

background image

Extreme Programming

Extreme Programming

Oszacowanie czasu pracy i

Oszacowanie czasu pracy i

harmonogramowanie

harmonogramowanie

Oszacowanie daje klientowi możliwość

Oszacowanie daje klientowi możliwość

wybrania priorytetów dla funkcji

wybrania priorytetów dla funkcji

Klient tworzy opisy funkcji (karty funkcji)

Klient tworzy opisy funkcji (karty funkcji)

Programiści tworzą zadania dla każdej funkcji

Programiści tworzą zadania dla każdej funkcji

i szacują czas

i szacują czas

Klient umieszcza zadania w iteracji.

Klient umieszcza zadania w iteracji.

Na końcu iteracji następuje

Na końcu iteracji następuje

Wydanie

Wydanie

czyli

czyli

działająca wersję w pełni przetestowaną przez

działająca wersję w pełni przetestowaną przez

programistów.

programistów.

background image

Extreme Programming

Extreme Programming

Elementy XP

Elementy XP

Karty funkcji

Karty funkcji

Opis co zdaniem klienta co powinno być

Opis co zdaniem klienta co powinno być

wykonane

wykonane

Jest to informacja biznesowa

Jest to informacja biznesowa

Programiści szacują funkcje które następnie

Programiści szacują funkcje które następnie

zostają umieszczone przez klienta w

zostają umieszczone przez klienta w

harmonogramie

harmonogramie

Funkcje powinny być w miarę możliwości

Funkcje powinny być w miarę możliwości

niezależne od siebie.

niezależne od siebie.

background image

Extreme Programming

Extreme Programming

Karty zadań

Karty zadań

Jest to główne narzędzie planowania

Jest to główne narzędzie planowania

programistów

programistów

Odpowiadają na pytanie jak powinno być

Odpowiadają na pytanie jak powinno być

wykonane zadanie?

wykonane zadanie?

Zadanie reprezentują rzeczywiste kroki,

Zadanie reprezentują rzeczywiste kroki,

prowadzące do zaimplementowanie funkcji

prowadzące do zaimplementowanie funkcji

Każda karta zadań jest powiązana z kartą

Każda karta zadań jest powiązana z kartą

funkcji i powstaje na jej podstawie

funkcji i powstaje na jej podstawie

Zadania powinny być niewielkie i zajmować

Zadania powinny być niewielkie i zajmować

klika idealnych godzin

klika idealnych godzin

background image

Extreme Programming

Extreme Programming

Pokój wojenny

Pokój wojenny

Jest to pomieszczenie pracy programistów

Jest to pomieszczenie pracy programistów

Zaleca się by było to jedno dużo otwarte

Zaleca się by było to jedno dużo otwarte

pomieszczenie odizolowane od świata

pomieszczenie odizolowane od świata

Stanowisko komputerowe przewidziane dla

Stanowisko komputerowe przewidziane dla

dwóch osób (programowanie parami)

dwóch osób (programowanie parami)

Na ścianach powinno znaleźć się miejsce dla

Na ścianach powinno znaleźć się miejsce dla

kliku tablic

kliku tablic

Klient powinien przebywać w pokoju

Klient powinien przebywać w pokoju

wojennym ponieważ ułatwia to zadawanie

wojennym ponieważ ułatwia to zadawanie

pytań

pytań

background image

Extreme Programming

Extreme Programming

Role w XP

Role w XP

Klient

Klient

Steruje projektem, definiuje go

Steruje projektem, definiuje go

Określa cele

Określa cele

Im lepszy kontakt z klientem tym większe

Im lepszy kontakt z klientem tym większe

prawdopodobieństwo odniesienia sukcesu.

prawdopodobieństwo odniesienia sukcesu.

Współpracuje z programistami, wykonuje

Współpracuje z programistami, wykonuje

testy adaptacyjne

testy adaptacyjne

Odpowiada za stronę finansową projektu

Odpowiada za stronę finansową projektu

Określa priorytety

Określa priorytety

background image

Extreme Programming

Extreme Programming

Programista

Programista

Pracuje nad kodem, zamienia opisy funkcji

Pracuje nad kodem, zamienia opisy funkcji

na działające rozwiązania

na działające rozwiązania

Współpracuje z klientem aby dobrze

Współpracuje z klientem aby dobrze

zrozumieć opis funkcji

zrozumieć opis funkcji

Tworzy karty zadań

Tworzy karty zadań

Określa czas potrzebny na wykonanie funkcji

Określa czas potrzebny na wykonanie funkcji

Unika decyzji biznesowych

Unika decyzji biznesowych

background image

Extreme Programming

Extreme Programming

Dodatkowe role:

Dodatkowe role:

Organizator:

Organizator:

Śledzi zgodność prac z harmonogramem

Śledzi zgodność prac z harmonogramem

Mierzy szybkość prac, stosunek czasu

Mierzy szybkość prac, stosunek czasu

oszacowanego do rzeczywistego

oszacowanego do rzeczywistego

Trener

Trener

Potrzebny przy wdrażaniu technik XP

Potrzebny przy wdrażaniu technik XP

Pomaga i dopinguje zespół

Pomaga i dopinguje zespół

Powinien być osobą z autorytetem wśród zespołu

Powinien być osobą z autorytetem wśród zespołu

background image

Extreme Programming

Extreme Programming

Kodowanie, styl XP

Kodowanie, styl XP

Cele XP są proste: oprogramowanie

Cele XP są proste: oprogramowanie

powinno być dobrze przetestowane i

powinno być dobrze przetestowane i

dobrze sprawdzać się w działaniu

dobrze sprawdzać się w działaniu

Programiści XP używają trzech

Programiści XP używają trzech

powiedzeń:

powiedzeń:

Wykonanie najprostszej rzeczy , jaka będzie

Wykonanie najprostszej rzeczy , jaka będzie

działała

działała

Nie będziemy tego potrzebowali

Nie będziemy tego potrzebowali

Raz i tylko raz

Raz i tylko raz

background image

Extreme Programming

Extreme Programming

Wykonanie najprostszej rzeczy , jaka będzie

Wykonanie najprostszej rzeczy , jaka będzie

działała

działała

Zachowanie równowagi pomiędzy

Zachowanie równowagi pomiędzy

funkcjonalnością i prostotą

funkcjonalnością i prostotą

Prosty nie oznacza najszybszy do napisania!

Prosty nie oznacza najszybszy do napisania!

Znalezienie najprostszego rozwiązania jest

Znalezienie najprostszego rozwiązania jest

trudne

trudne

Unikamy pytania „a jeśli…?”, piszemy tylko to

Unikamy pytania „a jeśli…?”, piszemy tylko to

co jest potrzebne w danej chwili, trzymamy się

co jest potrzebne w danej chwili, trzymamy się

kart zadań

kart zadań

background image

Extreme Programming

Extreme Programming

Nie będziemy tego potrzebowali

Nie będziemy tego potrzebowali

Dzisiejszą pracę wykonaj dzisiaj a

Dzisiejszą pracę wykonaj dzisiaj a

jutrzejszą jutro

jutrzejszą jutro

Nie przewiduj przyszłych funkcji

Nie przewiduj przyszłych funkcji

ponieważ założenia mogą się zmieniać

ponieważ założenia mogą się zmieniać

Należy zaufać klientowi, że zidentyfikuje

Należy zaufać klientowi, że zidentyfikuje

właściwe funkcje

właściwe funkcje

background image

Extreme Programming

Extreme Programming

Raz i tylko raz

Raz i tylko raz

Unikanie powtórzeń w kodzie

Unikanie powtórzeń w kodzie

Ponowne wykorzystanie fragmentów

Ponowne wykorzystanie fragmentów

kodu

kodu

Częste używanie refaktoryzacji

Częste używanie refaktoryzacji

background image

Extreme Programming

Extreme Programming

KONIEC

KONIEC

Dziękuję za uwagę.

Dziękuję za uwagę.


Document Outline


Wyszukiwarka

Podobne podstrony:
Extreme Programming
An Introduction to Extreme Programming
2007 10 Extreme Programming (XP) i CMMI – Kreatywność, czy Dyscyplina [Inzynieria Oprogramowania]
2008 02 Extreme Programming i CMMI – kreatywność czy dyscyplina (Cz 3) [Inzynieria Oprogramowania]
2007 11 Extreme Programming i CMMI [Inzynieria Oprogramowania]
ZPR Extreme programming v1
eXtreme Programming Installed Ron Jeffries
Extreme Programming Leksykon kieszonkowy
Extreme Programming Leksykon kieszonkowy 2
Extreme Programming Leksykon kieszonkowy extplk
Extreme Programming Leksykon kieszonkowy
eXtreme programming proext
eXtreme programming
Auer Miller eXtreme Programming Applied Play to Win
eXtreme programming proext
eXtreme programming 2

więcej podobnych podstron