• Nie Znaleziono Wyników

Extreme Programming Extreme Programming

N/A
N/A
Protected

Academic year: 2021

Share "Extreme Programming Extreme Programming"

Copied!
30
0
0

Pełen tekst

(1)

Extreme Programming Extreme Programming

Nowoczesne metody zespołowego Nowoczesne metody zespołowego

tworzenia aplikacji tworzenia aplikacji

Krzysztof Chłosta s1644 Krzysztof Chłosta s1644

(2)

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 aplikacjiNowe 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 ITTylko projekty IT

W ostatnich latach tysiące firm i programistów W ostatnich latach tysiące firm i programistów przekonało się o skuteczności tej metody

przekonało się o skuteczności tej metody

(3)

Extreme Programming Extreme Programming

Podejście do zmian w Podejście do zmian w projektach:

projektach:

Klasyczne: zmiany są Klasyczne: zmiany są trudne i kosztowne trudne i kosztowne XP: zmiany są XP: zmiany są

nieuniknione więc nieuniknione więc trzeba być na nie trzeba być na nie

przygotowanym przygotowanym

(4)

Extreme Programming Extreme Programming

Równanie XPRównanie XP

Projektami można zarządzać w czterech Projektami można zarządzać w czterech kategoriach:

kategoriach:

CzasCzas

MożliwościMożliwości

ZasobyZasoby

JakośćJakość

(5)

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

Klienci Woda

niezdatna do picia

Woda zdatna do

picia

(6)

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 realizowane Zamówienie jest realizowane przez programistów

przez programistów

Zrealizowane zamówienie Zrealizowane zamówienie trafia do klienta

trafia do klienta

Na podstawie wyników klient Na podstawie wyników klient podejmuje decyzję o złożeniu podejmuje decyzję o złożeniu ponownego zamówienia i cały ponownego zamówienia i cały

cykl się powtarza.

cykl się powtarza.

Klient

Rozwiązanie w postaci

kodu Proces

tworzenia Problem

biznesowy

(7)

Extreme Programming Extreme Programming

Wartości XPWartości XP

Wydajne Programowanie składa się z Wydajne Programowanie składa się z czterech podstawowych wartości:

czterech podstawowych wartości:

KomunikacjaKomunikacja

Odpowiedzi na pytaniaOdpowiedzi na pytania ProstotaProstota

OdwagaOdwaga

(8)

Extreme Programming Extreme Programming

Dobra Dobra komunikacjakomunikacja do podstawa każdego projektu. do podstawa każdego projektu.

Ignorowanie bądź ukrywanie informacji potrafi pogrążyć Ignorowanie bądź ukrywanie informacji potrafi pogrążyć dowolny projekt

dowolny projekt

Klient odpowiada na pytania co powinno być zrobione i Klient odpowiada na pytania co powinno być zrobione i jakie są priorytety

jakie są priorytety

Programiści i analitycy mówią w jaki sposób zadanie Programiści i analitycy mówią w jaki sposób zadanie zostanie wykonane, ile potrwa to czasu oraz określają zostanie wykonane, ile potrwa to czasu oraz określają

ryzyko.

ryzyko.

Dobra, częsta i szczera komunikacja z klientem to jedno Dobra, częsta i szczera komunikacja z klientem to jedno z kluczowych założeń XP

z kluczowych założeń XP

(klient członkiem zespołu) (klient członkiem zespołu)

(9)

Extreme Programming Extreme Programming

Zadawanie pytańZadawanie pytań jest jedynym sposobem jest jedynym sposobem poznawania zdania klienta.

poznawania zdania klienta.

Jedynym sposobem zaakceptowania kodu przez Jedynym sposobem zaakceptowania kodu przez klienta jest przetestowanie.

klienta jest przetestowanie.

Im wcześniej uzyskamy odpowiedzi na pytania Im wcześniej uzyskamy odpowiedzi na pytania tym więcej mamy czasu na reakcję.

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

(10)

Extreme Programming Extreme Programming

ProstotaProstota oznacza wykonywanie tylko tej oznacza wykonywanie tylko tej części systemu która rzeczywiście musi części systemu która rzeczywiście musi

być wykonana.

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 zgadywać. Wystarczy zapytać, nie trzeba zgadywać.

Koszt dodania funkcji później będzie taki Koszt dodania funkcji później będzie taki sam jak dzisiaj.

sam jak dzisiaj.

(11)

Extreme Programming Extreme Programming

OdwagaOdwaga oznacza podejmowanie trudnych oznacza podejmowanie trudnych decyzji gdy jest to konieczne.

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ć wszystkich Gdy nie uda nam się dostarczyć wszystkich funkcji w zaplanowanym terminie należy

funkcji w zaplanowanym terminie należy od razu powiadomić klienta. To on

od razu powiadomić klienta. To on

zdecyduje którymi funkcjami należy się zdecyduje którymi funkcjami należy się

zająć najpierw.

zająć najpierw.

(12)

Extreme Programming Extreme Programming

Zakładanie dostateczności rozwiązaniaZakładanie dostateczności rozwiązania

Wystarczająca ilość czasu zakłada niski koszt Wystarczająca ilość czasu zakłada niski koszt zmian w dowolnym etapie projektu.

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.

(13)

Extreme Programming Extreme Programming

Techniki XPTechniki 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 błędów.

interakcji może doprowadzić do poważnych 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.

(14)

Extreme Programming Extreme Programming

Techniki kodowania:Techniki kodowania:

Proste projektowanie i kodowanieProste projektowanie i kodowanie

Cel: wykonanie oprogramowania łatwego w modyfikacjiCel: wykonanie oprogramowania łatwego w modyfikacji

Bezlitosna refaktoryzacjaBezlitosna refaktoryzacja

Cel: Znalezienie optymalnego projektu koduCel: Znalezienie optymalnego projektu kodu

Opracowanie standardów kodowaniaOpracowanie standardów kodowania

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

Stosowanie wspólnego słownictwaStosowanie wspólnego słownictwa

Cel: łatwe przekazywanie nowych pomysłówCel: łatwe przekazywanie nowych pomysłów

(15)

Extreme Programming Extreme Programming

Techniki tworzenia:Techniki tworzenia:

Kreowanie z nakierowaniem na testyKreowanie z nakierowaniem na testy

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

Programowanie w parachProgramowanie w parach

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

Stosowanie zasady wspólnej własności koduStosowanie zasady wspólnej własności kodu

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

Ciągła integracjaCiągła integracja

Cel: redukcja wpływu wprowadzenia nowych funkcjiCel: redukcja wpływu wprowadzenia nowych funkcji

(16)

Extreme Programming Extreme Programming

Techniki biznesowe:Techniki biznesowe:

Klient jest członkiem zespołuKlient jest członkiem zespołu

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

Zabawa w planowanieZabawa w planowanie

Cel: tworzenie harmonogramu dla najważniejszych zadańCel: tworzenie harmonogramu dla najważniejszych zadań

Regularne wydaniaRegularne 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 spokojuPraca we względnym spokoju

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

(17)

Extreme Programming Extreme Programming

Zdarzenia XPZdarzenia XP

Iteracje to bardzo ważny składnik XP.Iteracje to bardzo ważny składnik XP.

Są to mniejsze i szybsze wersje tradycyjnego Są to mniejsze i szybsze wersje tradycyjnego cyklu tworzenia oprogramowania.

cyklu tworzenia 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.

(18)

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 w dostosowanie harmonogramu do zmian w

projekcie.

projekcie.

Spotkania dotyczące planowania prowadzone Spotkania dotyczące planowania prowadzone są przez klienta.

są przez klienta.

Są na nich określane priorytety funkcji które Są na nich określane priorytety funkcji które mają być zaimplementowane i dostarczone w mają być zaimplementowane i dostarczone w

danej iteracji.

danej iteracji.

(19)

Extreme Programming Extreme Programming

Oszacowanie czasu pracy i harmonogramowanieOszacowanie czasu pracy i harmonogramowanie

Oszacowanie daje klientowi możliwość wybrania Oszacowanie daje klientowi możliwość wybrania priorytetów dla funkcji

priorytetów dla funkcji

Klient tworzy opisy funkcji (karty funkcji)Klient tworzy opisy funkcji (karty funkcji)

Programiści tworzą zadania dla każdej funkcji i Programiści tworzą zadania dla każdej funkcji i szacują czas

szacują czas

Klient umieszcza zadania w iteracji.Klient umieszcza zadania w iteracji.

Na końcu iteracji następuje Na końcu iteracji następuje WydanieWydanie czyli czyli

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

programistów.

programistów.

(20)

Extreme Programming Extreme Programming

Elementy XPElementy XP

Karty funkcjiKarty funkcji

Opis co zdaniem klienta co powinno być wykonaneOpis co zdaniem klienta co powinno być wykonane

Jest to informacja biznesowaJest 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.

(21)

Extreme Programming Extreme Programming

Karty zadańKarty zadań

Jest to główne narzędzie planowania programistówJest to główne narzędzie planowania 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ą funkcji i Każda karta zadań jest powiązana z kartą funkcji i powstaje na jej podstawie

powstaje na jej podstawie

Zadania powinny być niewielkie i zajmować klika Zadania powinny być niewielkie i zajmować klika idealnych godzin

idealnych godzin

(22)

Extreme Programming Extreme Programming

Pokój wojennyPokój wojenny

Jest to pomieszczenie pracy programistówJest 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 dwóch Stanowisko komputerowe przewidziane dla dwóch osób (programowanie parami)

osób (programowanie parami)

Na ścianach powinno znaleźć się miejsce dla kliku Na ścianach powinno znaleźć się miejsce dla kliku tablic

tablic

Klient powinien przebywać w pokoju wojennym Klient powinien przebywać w pokoju wojennym ponieważ ułatwia to zadawanie pytań

ponieważ ułatwia to zadawanie pytań

(23)

Extreme Programming Extreme Programming

Role w XPRole w XP

KlientKlient

Steruje projektem, definiuje goSteruje projektem, definiuje go

Określa celeOkreś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 testy Współpracuje z programistami, wykonuje testy adaptacyjne

adaptacyjne

Odpowiada za stronę finansową projektuOdpowiada za stronę finansową projektu

(24)

Extreme Programming Extreme Programming

ProgramistaProgramista

Pracuje nad kodem, zamienia opisy funkcji na Pracuje nad kodem, zamienia opisy funkcji na działające rozwiązania

działające rozwiązania

Współpracuje z klientem aby dobrze zrozumieć Współpracuje z klientem aby dobrze zrozumieć opis funkcji

opis funkcji

Tworzy karty zadańTworzy karty zadań

Określa czas potrzebny na wykonanie funkcjiOkreśla czas potrzebny na wykonanie funkcji

Unika decyzji biznesowychUnika decyzji biznesowych

(25)

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 oszacowanego do Mierzy szybkość prac, stosunek czasu oszacowanego do rzeczywistego

rzeczywistego

TrenerTrener

Potrzebny przy wdrażaniu technik XPPotrzebny przy wdrażaniu technik XP Pomaga i dopinguje zespółPomaga i dopinguje zespół

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

(26)

Extreme Programming Extreme Programming

Kodowanie, styl XPKodowanie, styl XP

Cele XP są proste: oprogramowanie powinno Cele XP są proste: oprogramowanie powinno być dobrze przetestowane i dobrze sprawdzać być dobrze przetestowane i dobrze sprawdzać

się w działaniu się w działaniu

Programiści XP używają trzech powiedzeń:Programiści XP używają trzech powiedzeń:

Wykonanie najprostszej rzeczy , jaka będzie Wykonanie najprostszej rzeczy , jaka będzie działała

działała

Nie będziemy tego potrzebowaliNie będziemy tego potrzebowali

Raz i tylko razRaz i tylko raz

(27)

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 funkcjonalnością i Zachowanie równowagi pomiędzy funkcjonalnością i prostotą

prostotą

Prosty nie oznacza najszybszy do napisania!Prosty nie oznacza najszybszy do napisania!

Znalezienie najprostszego rozwiązania jest trudneZnalezienie najprostszego rozwiązania jest trudne

Unikamy pytania „a jeśli…?”, piszemy tylko to co jest Unikamy pytania „a jeśli…?”, piszemy tylko to co jest potrzebne w danej chwili, trzymamy się kart zadań potrzebne w danej chwili, trzymamy się kart zadań

(28)

Extreme Programming Extreme Programming

Nie będziemy tego potrzebowaliNie będziemy tego potrzebowali

Dzisiejszą pracę wykonaj dzisiaj a jutrzejszą Dzisiejszą pracę wykonaj dzisiaj a jutrzejszą jutro

jutro

Nie przewiduj przyszłych funkcji ponieważ Nie przewiduj przyszłych funkcji ponieważ założenia mogą się zmieniać

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

(29)

Extreme Programming Extreme Programming

Raz i tylko razRaz i tylko raz

Unikanie powtórzeń w kodzieUnikanie powtórzeń w kodzie

Ponowne wykorzystanie fragmentów koduPonowne wykorzystanie fragmentów kodu Częste używanie refaktoryzacjiCzęste używanie refaktoryzacji

(30)

Extreme Programming Extreme Programming

KONIEC KONIEC

Dziękuję za uwagę.

Dziękuję za uwagę.

Cytaty

Powiązane dokumenty

przykładem jest relacja koloru zdefiniowana na zbiorze wszystkich samochodów, gdzie dwa samochody są w tej relacji, jeśli są tego samego koloru.. Jeszcze inny przykład to

nierozsądnie jest ustawić się dziobem żaglówki w stronę wiatru – wtedy na pewno nie popłyniemy we właściwą stronę – ale jak pokazuje teoria (i praktyka), rozwiązaniem

W przestrzeni dyskretnej w szczególności każdy jednopunktowy podzbiór jest otwarty – dla każdego punktu możemy więc znaleźć taką kulę, że nie ma w niej punktów innych niż

Spoglądając z różnych stron na przykład na boisko piłkarskie, możemy stwierdzić, że raz wydaje nam się bliżej nieokreślonym czworokątem, raz trapezem, a z lotu ptaka

Bywa, że każdy element zbioru A sparujemy z innym elementem zbioru B, ale być może w zbiorze B znajdują się dodatkowo elementy, które nie zostały dobrane w pary.. Jest to dobra

Następujące przestrzenie metryczne z metryką prostej euklidesowej są spójne dla dowolnych a, b ∈ R: odcinek otwarty (a, b), odcinek domknięty [a, b], domknięty jednostronnie [a,

nierozsądnie jest ustawić się dziobem żaglówki w stronę wiatru – wtedy na pewno nie popłyniemy we właściwą stronę – ale jak pokazuje teoria (i praktyka), rozwiązaniem

W przestrzeni dyskretnej w szczególności każdy jednopunktowy podzbiór jest otwarty – dla każdego punktu możemy więc znaleźć taką kulę, że nie ma w niej punktów innych niż