Ten rozdział zawiera przegląd programowania ekstremalnego.
Co To jest Agile?
słowo „zwinny” oznacza −
-
zdolny do szybkiego i łatwego poruszania ciałem.
-
potrafi myśleć szybko i jasno.,
w biznesie, „zwinny” jest używany do opisywania sposobów planowania i wykonywania pracy, w którym rozumie się, że wprowadzanie zmian w razie potrzeby jest ważną częścią pracy. Biznes „agililty” oznacza, że firma jest zawsze w stanie uwzględnić zmiany rynkowe.
Ref: Cambridge słowniki online.
w tworzeniu oprogramowania termin „zwinny” jest dostosowany do ” zdolności reagowania na zmiany − zmiany związane z wymaganiami, technologią i ludźmi.,”
Manifest Agile
w 2001 roku zespół programistów opublikował Manifest Agile, podkreślający znaczenie zespołu programistów, uwzględniający zmieniające się wymagania i zaangażowanie klientów.
Manifest Agile stwierdza, że −
odkrywamy lepsze sposoby tworzenia oprogramowania, robiąc to i pomagając innym. Dzięki tej pracy osiągnęliśmy wartość –
-
jednostki i interakcje nad procesami i narzędziami.
-
oprogramowanie pracujące nad obszerną dokumentacją.,
-
współpraca z klientem przy negocjowaniu umów.
oznacza to, że o ile w elementach po prawej stronie znajduje się wartość, to wartościujemy elementy po lewej stronie bardziej.
charakterystyka zwinności
poniżej przedstawiono charakterystykę zwinności −
-
zwinność w tworzeniu zwinnego oprogramowania koncentruje się na kulturze całego zespołu z Wielobranżowymi, wielofunkcyjnymi zespołami, które są wzmocnione i samozorganizowane.
-
sprzyja współodpowiedzialności i odpowiedzialności.,
-
ułatwia skuteczną komunikację i ciągłą współpracę.
-
podejście całego zespołu pozwala uniknąć opóźnień i czasu oczekiwania.
-
częste i ciągłe dostawy zapewniają szybką informację zwrotną, która z kolei umożliwia zespołowi dostosowanie się do wymagań.
-
Współpraca ułatwia łączenie różnych perspektyw w czasie wdrażania, naprawianie usterek i dostosowywanie zmian.
-
postęp jest stały, trwały i przewidywalny.,
Trendy Inżynierii Oprogramowania
w inżynierii oprogramowania obserwuje się następujące trendy −
-
gromadzą wymagania przed rozpoczęciem rozwoju. Jeśli jednak wymagania mają zostać zmienione później, to zwykle obserwuje się następujące −
-
odporność na zmiany na późniejszym etapie rozwoju.
-
istnieje wymóg rygorystycznego procesu zmian, który obejmuje tablicę kontrolną zmian, która może nawet przesunąć zmiany do późniejszych wydań.,
-
dostawa produktu o przestarzałych wymaganiach, nie spełniającego oczekiwań klienta.
-
-
wykrywanie i eliminowanie wad na wczesnym etapie cyklu rozwoju, aby obniżyć koszty naprawy usterek.
-
testowanie rozpoczyna się dopiero po zakończeniu kodowania, a testowanie jest uważane za odpowiedzialność testera, chociaż tester nie jest zaangażowany w rozwój.
-
Zmierz i śledź sam proces., Staje się to kosztowne z powodu −
-
monitorowania i śledzenia na poziomie zadań i zasobów.
-
Definiowanie pomiarów kierujących rozwojem i mierzenie każdej aktywności w rozwoju.
-
interwencja zarządcza.
-
-
opracowuj, analizuj i weryfikuj modele przed ich rozwojem.
-
model ma być używany jako framework. Jednak skupienie się na modelu, a nie na rozwoju, który jest kluczowy, nie przyniesie oczekiwanych rezultatów.,
-
-
kodowanie, które jest sercem rozwoju, nie jest wystarczająco podkreślone. Powody są takie-
-
deweloperzy, którzy są odpowiedzialni za produkcję, zazwyczaj nie są w ciągłej komunikacji z klientami.
-
kodowanie jest postrzegane jako tłumaczenie projektu, a skuteczna implementacja w kodzie prawie nigdy nie jest zapętlona z powrotem do projektu.
-
testowanie jest uważane za bramę do sprawdzenia wad przed dostawą.,
-
powoduje to przekroczenie kosztów naprawy wad po dostawie.
-
testerzy są odpowiedzialni I odpowiedzialni za jakość produktu, chociaż nie byli zaangażowani w cały proces rozwoju.
ograniczanie zasobów (głównie zespołu) w celu dostosowania budżetu prowadzi do −
-
zasobów nad alokacją
-
wypalenie zespołu.,
-
utrata efektywnego wykorzystania kompetencji zespołu.
Programowanie Ekstremalne − sposób radzenia sobie z powszechnymi niedociągnięciami
Inżynieria oprogramowania obejmuje −
-
kreatywność
-
Nauka i doskonalenie poprzez próby i błędy
-
iteracje
Programowanie Ekstremalne opiera się na tych czynnościach i kodowaniu. Jest to Szczegółowe (nie jedyne) działanie projektowe z wieloma ciasnymi pętlami sprzężenia zwrotnego poprzez skuteczne wdrażanie, Testowanie i refaktoryzację w sposób ciągły.,
Programowanie Ekstremalne opiera się na następujących wartościach −
-
Komunikacja
-
prostota
-
Feedback
-
Odwaga
-
szacunek
Co to jest programowanie Ekstremalne?
XP to lekki, wydajny, mało ryzykowny, elastyczny, przewidywalny, naukowy i zabawny sposób tworzenia oprogramowania.
eXtreme Programming (XP) zostało stworzone i opracowane, aby sprostać specyficznym potrzebom tworzenia oprogramowania przez małe zespoły w obliczu niejasnych i zmieniających się wymagań.,
Extreme Programming jest jedną z metod programowania zwinnego. Zapewnia wartości i zasady, które kierują zachowaniem zespołu. Zespół ma się samoorganizować. Programowanie ekstremalne dostarcza konkretnych podstawowych praktyk, w których −
-
każda praktyka jest prosta i samo-kompletna.
-
połączenie praktyk powoduje bardziej złożone i wschodzące zachowanie.
Zmiana
kluczowym założeniem programowania ekstremalnego jest to, że koszt zmiany programu może być utrzymywany głównie na stałym poziomie w czasie.,>Można to osiągnąć dzięki −
-
nacisk na ciągłe informacje zwrotne od klienta
-
krótkie iteracje
-
Projektowanie i redesign
-
częste kodowanie i testowanie
-
wczesne eliminowanie defektów, co zmniejsza koszty
-
utrzymywanie zaangażowania klienta w całym procesie rozwoju
p>
-
dostarczenie działającego produktu do klienta
programowanie ekstremalne w skrócie
programowanie ekstremalne polega na −
-
pisaniu testów jednostkowych przed zaprogramowaniem i utrzymywaniu wszystkich testów przez cały czas., Testy jednostkowe są zautomatyzowane i wcześnie eliminują usterki, zmniejszając w ten sposób koszty.
-
zaczynając od prostego projektu, wystarczającego do zakodowania dostępnych funkcji i przeprojektowania w razie potrzeby.
-
Programowanie w parach (zwane programowaniem w parach), z dwoma programistami na jednym ekranie, na zmianę używającymi klawiatury. Podczas gdy jeden z nich jest przy klawiaturze, drugi stale przegląda i dostarcza dane wejściowe.
-
integrowanie i testowanie całego systemu kilka razy dziennie.,
-
wprowadzenie minimalnego systemu roboczego do produkcji szybko i modernizacja go w razie potrzeby.
-
ciągłe angażowanie klienta i uzyskiwanie stałej informacji zwrotnej.
iteracja ułatwia dostosowywanie zmian w miarę rozwoju oprogramowania wraz ze zmieniającymi się wymaganiami.
dlaczego nazywa się „Extreme?”
Programowanie Ekstremalne przenosi skuteczne zasady i praktyki na ekstremalne poziomy.
-
recenzje kodu są skuteczne, ponieważ kod jest sprawdzany przez cały czas.,
-
testowanie jest skuteczne, ponieważ istnieje ciągła regresja i testowanie.
-
projektowanie jest skuteczne, ponieważ każdy musi codziennie wykonywać refaktoryzację.
-
testowanie integracji jest ważne, ponieważ integruje się i testuje kilka razy dziennie.
-
krótkie iteracje są skuteczne jako gra planowa do planowania wydań i planowania iteracji.
Historia programowania ekstremalnego
Kent Beck, Ward Cunningham i Ron Jeffries sformułowali programowanie ekstremalne w 1999 roku. Pozostali współpracownicy to Robert Martin i Martin Fowler.,
W połowie lat 80.Kent Beck i Ward Cunningham rozpoczęli Programowanie par w Tektronix. W latach 80. i 90. Kultura Smalltalk produkowała Refaktoryzację, ciągłą integrację, ciągłe testowanie i bliskie zaangażowanie klientów. Kultura ta została później uogólniona na inne środowiska.
na początku lat 90.Podstawowe wartości zostały opracowane w ramach społeczności Patterns, Hillside Group. W 1995 roku Kent podsumował je w Smalltalk Best Practices, a w 1996 roku Ward podsumował je w odcinkach.
w 1996 roku Kent dodał testy jednostkowe i metafory w Hewitt., W 1996 roku Kent przejął projekt Chryslera C3, do którego jako trener dołączył Ron Jeffries. Praktyki zostały dopracowane na C3 i opublikowane na Wiki.
praktyki Scrum zostały włączone i zaadaptowane jako gra planszowa. W 1999 roku Kent opublikował swoją książkę „Extreme Programming Explained”. W tym samym roku Fowler opublikował swoją książkę refaktoring.
Programowanie Ekstremalne ewoluuje od tego czasu, a ewolucja trwa do dziś.
sukces w branży
sukces projektów, które podążają za ekstremalnymi praktykami programistycznymi, zawdzięczamy −
-
szybkiemu rozwojowi.,
-
natychmiastowa reakcja na zmieniające się wymagania klienta.
-
System zwracający klientowi stałą i spójną wartość.
-
wysokie zadowolenie klienta.
-
obniżone koszty.
-
spójność zespołu i zadowolenie pracowników.
Extreme Programming Advantages
Extreme Programming rozwiązuje następujące problemy często napotykane w projektach programistycznych −
-
poślizg harmonogramów − a osiągalne cykle programistyczne zapewniają terminowość dostaw.,
-
anulowane projekty − skupienie się na ciągłym zaangażowaniu klienta zapewnia przejrzystość z klientem i natychmiastowe rozwiązywanie wszelkich problemów.
-
koszty związane ze zmianami − rozbudowane i trwające testy sprawiają, że zmiany nie łamią istniejącej funkcjonalności. Działający system zawsze zapewnia wystarczającą ilość czasu na dostosowanie zmian, tak aby nie wpływały na bieżące operacje.
-
wady produkcyjne i po dostawie: nacisk kładziony jest na-testy jednostkowe, aby wcześnie wykryć i naprawić wady.,
-
zmiany w biznesie-zmiany są uważane za nieuniknione i są uwzględniane w dowolnym momencie.
-
rotacja pracowników − intensywna współpraca w zespole zapewnia entuzjazm i dobrą wolę. Spójność wielobranżowych dyscyplin sprzyja zespołowemu duchowi.