Model zwinny
Elastyczna (Agile) metodologia pomaga zmniejszyć ryzyko w tworzeniu oprogramowania poprzez rozłożenie przepływu pracy na kilka małych cykli. Cykle te nazywane są iteracjami i zwykle trwają od dwóch do trzech tygodni.
Iteracja jest jak mały projekt oprogramowania, który składa się z zadań, z których każde poprawia funkcjonalność. Należą do nich: sporządzenie planu, ocena wymagań, uzgodnienie projektu, napisanie kodu, przetestowanie, stworzenie dokumentacji technicznej.
Jedna iteracja zwykle nie wystarcza do wydania pełnego oprogramowania. Jednak dobrą rzeczą w Agile jest to, że małe części projektu są gotowe do oceny na końcu każdej iteracji. Pozwala to członkom zespołu na zmianę priorytetów dla dalszej pracy bez czekania na ostateczną wersję.
Stosując „zwinną” metodologię programowania, możesz zobaczyć konkretny wynik po każdej iteracji. Oznacza to, że programista może zrozumieć, czy wynik jego pracy spełnia wymagania, czy nie. Jest to jedna z ważnych zalet modelu elastycznego.
Jeśli chodzi o wady, przy stosowaniu Agile czasami trudno jest oszacować koszt zasobów pracy i budżet projektu. Jeśli weźmiemy pod uwagę opcje praktycznego zastosowania modelu elastycznego, to najbardziej znanym z nich jest programowanie ekstremalne (XP).
XP opiera się na krótkich spotkaniach członków zespołu, które odbywają się codziennie, oraz na regularnych spotkaniach (raz w tygodniu lub rzadziej). Na codziennych wiecach (codzienne stójki) omawiane są zazwyczaj:
- aktualne wyniki pracy;
- listę zadań do wykonania przez każdego członka zespołu;
- napotkanych trudności i sposobów ich rozwiązania.
Manifest
Agile to cały kierunek rozwoju, dlatego zasady pracy nad nim deklaruje specjalny dokument – Manifest Agile. Obejmuje to zarówno praktyki, jak i zasady, według których zespół powinien pracować.
Manifest Agile składa się z 4 fundamentalnych idei i 12 zasad.
Kluczowe pomysły:
- współpraca między programistami jest ważniejsza niż narzędzia;
- wersja robocza produktu ma pierwszeństwo przed dokumentacją;
- wzajemne zrozumienie między zespołem a klientem jest ważniejsze niż warunki umowy;
- Pierwotny plan zawsze można zmienić w razie potrzeby.
Jeśli chodzi o 12 zasad Agile, oto one:
- głównym priorytetem jest zgodność gotowego programu z oczekiwaniami klienta;
- zmiana warunków jest dozwolona na każdym etapie, nawet w końcowej fazie rozwoju (jeśli może to poprawić jakość i konkurencyjność oprogramowania);
- regularne dostarczanie działających wersji oprogramowania (co 14 dni, co miesiąc lub co kwartał);
- kluczem do sukcesu jest regularna interakcja między klientem a programistami (najlepiej codziennie);
- projekty powinny być budowane wśród tych, którzy są nimi zainteresowani, takim osobom należy zapewnić niezbędne warunki do pracy i wszelkiego rodzaju wsparcie;
- najlepszym sposobem wymiany informacji w zespole jest osobiste spotkanie;
- działająca wersja oprogramowania jest najlepszym wskaźnikiem postępu;
- wszyscy interesariusze muszą być w stanie utrzymać pożądane tempo pracy w całym procesie wytwarzania oprogramowania;
- ulepszenia techniczne i dobry projekt poprawiają elastyczność;
- ważne jest, aby było proste i nie tworzyło zbyt wiele;
- najlepsze wyniki osiągają te zespoły, które potrafią się samoorganizować;
- członkowie zespołu powinni regularnie zastanawiać się nad sposobami poprawy swojej efektywności poprzez zmianę przepływu pracy.
Zgodnie z manifestem Agile, dobry proces tworzenia oprogramowania zależy bezpośrednio od ludzi, którzy są w ten proces zaangażowani. Aby to zrobić, musisz zorganizować ich interakcję tak efektywnie, jak to możliwe, stworzyć najbardziej zorganizowany zespół.
Metodologie
W Manifeście Agile znajduje się również kilka metodologii, które wyjaśniają wartości i zasady:
- Zwinne modelowanie;
- Zwinny, ujednolicony proces;
- Zwinna metoda danych
- Szybkie tworzenie aplikacji (DSDM);
- Niezbędny ujednolicony proces;
- ekstremalne programowanie;
- rozwój oparty na funkcjach;
- Stawanie się prawdziwym;
- Otworzyć;
- Scrum.
Agile Modeling to zbiór zasad, terminów i praktyk, które przyspieszają i upraszczają tworzenie modeli oprogramowania i dokumentacji.
Celem Agile Modeling jest doskonalenie modelowania i dokumentacji. Należy zauważyć, że nie obejmuje to kodowania, testowania ani problemów związanych z kontrolą projektu, wdrażaniem i wsparciem. Jednak ta metodologia obejmuje przegląd kodu.
Agile Unified Process to metodologia, która ułatwia użytkownikom przybliżenie (modelowanie). Zwykle używany do tworzenia oprogramowania komercyjnego.
Agile Data Method – kilka podobnych metodyk, w których warunki klienta są osiągane dzięki współpracy kilku zespołów.
DSDM - to podejście różni się od innych tym, że wraz z programistami użytkownicy przyszłego produktu biorą w nim aktywny udział.
Programowanie oparte na funkcjach to metodologia rozwoju, która ma limit czasowy: „każda funkcja musi zostać wdrożona nie dłużej niż dwa tygodnie”.
Warto wziąć pod uwagę, że jeśli przypadek użycia jest mały, można go uznać za funkcję. Jeśli jest znacząca, to musi być podzielona na kilka funkcji.
Getting Real to metodologia iteracyjna, w której najpierw rozwijany jest interfejs programu, a dopiero potem rozwijana jest jego funkcjonalność.
OpenUP to metoda programistyczna, która dzieli cykl projektu na cztery etapy: początek, udoskonalenie, budowa i przekazanie.
Zgodnie z zasadami Agile, niezależnie od czasu trwania pracy, konieczne jest zapewnienie wszystkim interesariuszom i członkom zespołu możliwości zapoznania się i podejmowania decyzji. Dzięki temu możliwe jest skuteczne kontrolowanie sytuacji i ocena wyników pośrednich w czasie. Plan projektu określa cykl życia, a za efekt końcowy należy uznać stabilne wydanie aplikacji.
Jeśli chodzi o Scrum, to reguluje on zasady zarządzania procesem deweloperskim i pozwala na zastosowanie istniejących praktyk kodowania z możliwością dostosowania warunków lub wprowadzenia zmian. Zastosowanie tej metodyki pozwala dostrzec i wyeliminować odchylenia od oczekiwanego rezultatu we wczesnych stadiach rozwoju.
Przyjrzyjmy się temu nieco dokładniej...
GO TO FULL VERSION