Kroki i fazy metodologii Agile: Pełne wyjaśnienie [2022]

Opublikowany: 2021-01-04

Załóżmy, że firma Google nie aktualizowała regularnie swoich aplikacji. Co by było, gdyby twoja ulubiona gra mobilna nie otrzymała żadnych aktualizacji? Co by było, gdyby na nową wersję aplikacji trzeba było czekać miesiącami, a nawet latami?

Byłoby to dość irytujące i rozczarowujące. Jednak dzięki metodologii tworzenia oprogramowania Agile, firmy regularnie publikują aktualizacje, usuwają błędy w swoich aplikacjach i sprawiają, że użytkownik jest zadowolony.

Możesz się zastanawiać: „Czym jest metodologia Agile?”. Wyjaśnimy to szczegółowo w tym przewodniku. Więc zacznijmy.

Spis treści

Czym jest metodologia Agile – wyjaśniona

Jak sama nazwa wskazuje, metodologia zwinna skupia się na częstym wypuszczaniu produktów i dostosowywaniu się do zmian. Według słownika oksfordzkiego termin „zwinność” odnosi się do zdolności do szybkiego lub szybkiego poruszania się. Metodologia Agile stała się dość popularna w ciągu ostatnich kilku lat ze względu na jej skuteczność i podejście zorientowane na wyniki.

Jest to filozofia zarządzania projektami, która koncentruje się na tworzeniu takiego oprogramowania, które opiera się na informacjach zwrotnych i zmianach przyrostowych. To, jak rozumiesz otaczające Cię środowisko i jakiego rodzaju niewiadome napotykasz, to podstawowe elementy tego podejścia.

Rozwój zwinny koncentruje się na zespole, a nie na produkcie. Rozwiązania w tym podejściu zależą od współpracy zespołu i funkcji międzyfunkcyjnych. Zespół zwinny to zespół samoorganizujący się.

Nie oznacza to, że menedżerowie nie są niezbędni w zwinnym rozwoju. Menedżerowie są odpowiedzialni za zapewnienie, że każdy członek zespołu posiada wymagane umiejętności. Są odpowiedzialni za zapewnienie członkom wspaniałego środowiska, aby mogli odnieść sukces w swojej pracy.

Przeczytaj: Pytania do wywiadu na temat metodologii Agile

Historia rozwoju zwinnego

Zanim rozwój zwinny stał się popularny, najpopularniejsza była metoda Waterfall. Metodologia Wodospadu była powszechna przed kilkoma dziesięcioleciami. Ale pokolenie programistów pod koniec lat 90. było niezadowolone z tej metodologii. Chcieli bardziej elastycznego podejścia.

Podejście Waterfall jest sztywne, a metodologia Agile jest elastyczna. W 2001 roku 17 programistów stworzyło Manifest Agile. Chcieli opracować alternatywę dla ciężkich, opartych na dokumentach procesów tworzenia oprogramowania. Cztery podstawowe wartości rozwoju Agile to:

  • Powinieneś nadać priorytet ludziom i ich interakcjom przed narzędziami i procesami
  • Powinieneś nadać pierwszeństwo działającemu oprogramowaniu nad szczegółową dokumentacją
  • Współpraca z klientami powinna być ważniejsza niż negocjacje umów
  • Powinieneś nadać priorytet swojej reakcji na zmianę nad zdolnością do trzymania się planu

Nie oznacza to, że powinieneś ignorować dokumentację i terminy. Oznacza to, że powinieneś bardziej skupić się na iteracji, prototypach, ludziach i współpracy.

Zwinny sposób myślenia

W istocie Agile to sposób myślenia. Twórcy Manifestu Agile określili 12 zasad tworzenia oprogramowania Agile, aby lepiej to wyjaśnić:

  1. Zadowolenie klientów poprzez ciągłą i wczesną dostawę produktów powinno być Twoim najwyższym priorytetem.
  2. Jeśli wymagania twojego projektu zmienią się nawet na późniejszych etapach rozwoju, powinieneś je powitać.
  3. Powinieneś często dostarczać działający produkt (oprogramowanie), niezależnie od tego, czy uruchomisz go za kilka tygodni, czy za kilka miesięcy.
  4. Niezbędna jest codzienna współpraca pomiędzy interesariuszami projektu a deweloperami.
  5. Twój projekt powinien być zbudowany wokół zmotywowanych ludzi. Musisz zapewnić im środowisko i wsparcie, którego potrzebują, i musisz im ufać, że wykonają swoją pracę.
  6. Rozmowa twarzą w twarz to najbardziej efektywna i wydajna metoda przekazywania informacji do zespołu programistów i wewnątrz niego.
  7. Działający produkt (oprogramowanie) jest krytyczną miarą Twoich postępów.
  8. Powinieneś promować zrównoważony rozwój. Twój zespół, interesariusze, użytkownicy i programiści powinni być w stanie utrzymać stały przepływ bez przeszkód.
  9. Należy stale zwracać uwagę na doskonałość techniczną, a dobry projekt poprawia zwinność
  10. Utrzymanie prostych procesów, na przykład zmniejszenie ilości pracy, którą musisz wykonać, ma kluczowe znaczenie.
  11. Samoorganizujące się zespoły generują najlepsze projekty, wymagania i architektury.
  12. Twój zespół powinien zastanowić się nad zwiększeniem aktywności, a następnie odpowiednio dostosować swoje zachowanie.

Można zauważyć, że podstawowe zasady rozwoju Agile skupiają się najbardziej na zadowoleniu użytkownika. Od częstego wypuszczania działającego produktu po dobry projekt, wszystkie podstawowe wartości tego podejścia koncentrują się na zadowoleniu użytkowników.

Przeczytaj: DevOps a Agile

I to prawda. Twoi użytkownicy (lub klienci) nie dbają o dokumentację oprogramowania ani przyszłe strategie. Dbają o to, jak szybko otrzymają produkt, jak szybko dostaną poprawki błędów i jaką wartość oferują im produkty.

Różnice między Agile a Waterfall

Wiesz więc, że przed powstaniem Agile najpopularniejszym modelem był Waterfall. Model Waterfall stracił na popularności, ale to nie znaczy, że jest przestarzały. Wiele zespołów nadal korzysta z tej metody. Istnieje wiele różnic między tymi dwoma podejściami, które je wyróżniają.

  • Model zwinny koncentruje się na iteracyjnym i przyrostowym podejściu do tworzenia oprogramowania, podczas gdy w modelu Waterfall tworzenie oprogramowania odbywa się sekwencyjnie od początku do końca.
  • Musiałbyś rozbić zwinny projekt na poszczególne modele. Ale nie będziesz musiał tego robić w podejściu do Wodospadu.
  • Twoi klienci uzyskują wczesny i częsty dostęp do działającego produktu w podejściu zwinnym. Mogą udzielić odpowiedniej informacji zwrotnej i zmienić przyszły plan pracy. Z drugiej strony Twoi klienci uzyskają dostęp do produktu dopiero po jego zakończeniu, jeśli zastosujesz podejście Waterfall.
  • Model zwinny jest nieustrukturyzowany, podczas gdy model Waterfall jest ustrukturyzowany, dlatego wielu uważa go za bezpieczniejszy.
  • Programowanie zwinne jest doskonałe w przypadku małych projektów, ponieważ można je szybko ukończyć. Metoda Wodospadu doskonale sprawdza się w przypadku dużych projektów, ponieważ umożliwia dokładniejsze oszacowanie i odpowiednie wykonanie planu.
  • W rozwoju Agile jest mniej planowania w porównaniu z rozwojem Waterfall.
  • Realizujesz proces rozwoju w iteracjach trwających kilka tygodni, gdy stosujesz podejście zwinne. Z drugiej strony, dzięki podejściu Waterfall, ukończysz proces rozwoju etapami, a etap jest większy niż iteracja.
  • Dzięki zwinnemu podejściu możesz naprawić błędy w trakcie procesu, ponieważ często otrzymujesz informacje zwrotne. Dzięki podejściu Waterfall przetestujesz produkt końcowy na końcu i nigdy wcześniej. Jeśli znajdziesz błąd w produkcie końcowym, będziesz musiał ponownie uruchomić projekt od samego początku.
  • Dokumentacja ma mniejszy priorytet w rozwoju zwinnym w porównaniu z rozwojem wodospadu. W rzeczywistości w tym drugim przypadku można również wykorzystać dokumentację do szkolenia personelu.
  • Gdy iteracja zakończy się tworzeniem zwinnym, wysyłasz funkcje nadające się do wysyłki bezpośrednio do swoich klientów. Klienci mogą korzystać z tych funkcji zaraz po ich otrzymaniu. W podejściu Waterfall wyślesz wszystkie funkcje swojego produktu razem, gdy zakończysz projekt po fazie.
  • W podejściu zwinnym testerzy i programiści współpracują, podczas gdy w podejściu Waterfall nie.
  • Przeprowadziłbyś akceptację użytkownika na koniec każdego sprintu w Agile. W metodzie Waterfall akceptację użytkownika przeprowadzasz na końcu projektu.
  • Programowanie zwinne wymaga od programistów ścisłej i regularnej komunikacji w celu planowania i analizy. W rozwoju Waterfall deweloperzy nie biorą udziału w procesie planowania i zajmują się tylko fazą kodowania.

Kroki metodologii Agile

Istnieje wiele metodologii Agile. Pokrótce omówimy najważniejsze z nich. Możesz odnieść się do metodologii jako określonego zestawu konwencji, które Twój zespół zdecyduje się przestrzegać. Twoje różne zespoły mogą mieć różne metodologie. Metodologie Agile to te, które są zgodne z podstawowymi wartościami i zasadami rozwoju Agile, które omówiliśmy wcześniej. Istnieją następujące metodologie Agile:

  • Scrum
  • Kanban
  • DSDM (dynamiczna metoda tworzenia oprogramowania)
  • Metodologie kryształów
  • FDD (Rozwój oparty na funkcjach)
  • XP (programowanie ekstremalne)

Omówmy podstawowe z poniższych:

Metodologia 1: SCRUM

SCRUM to framework, który koncentruje się na umożliwieniu zespołom współpracy. To jest heurystyka. Koncentruje się na dostosowaniu do zmiennych czynników i ciągłym uczeniu się. Rozumie, że zespół niekoniecznie wie wszystko na początku zadania. Scrum opiera się na strategiach drużyn rugby.

Koncentruje się na wzmocnieniu współpracy w zespole, dzieląc ją na mniejsze, tak jak robi to drużyna rugby. Widzisz, drużyna rugby ma różne grupy graczy, którzy mają określone obowiązki. W Scrumie Twój zespół również zostaje podzielony na mniejsze grupy.

Scrum ma trzy podstawowe artefakty, którymi są przyrost, rejestr sprintu i rejestr produktu. Omówmy krótko każdy z nich, aby lepiej zrozumieć Scrum:

Rejestr produktów

Backlog produktu odnosi się do podstawowej listy zadań, które Twój zespół musi wykonać. Odpowiedzialność za prowadzenie tej listy spoczywa na menedżerze produktu lub właścicielu produktu. Jest to lista rzeczy do zrobienia dla grupy, ponieważ zawiera wymagania, poprawki, ulepszenia i funkcje, które są danymi wejściowymi dla następnego artefaktu, zaległości sprintu.

Backlog Sprintu

Ten artefakt zawiera listę poprawek błędów i elementów wybranych przez zespoły programistów do konkretnego cyklu sprintu. Backlog sprintu jest jednak dość elastyczny i w razie potrzeby masz możliwość jego modyfikacji podczas sprintu.

Przyrost

Inną nazwą przyrostu jest cel sprintu. Odnosi się do produktu końcowego, który otrzymujesz ze sprintu. Cel sprintu jest ostatecznym wynikiem Twojego zespołu programistów. I możesz powiedzieć, że osiągnąłeś ten cel dopiero po zakończeniu całego procesu.

Załóżmy, że Twój zespół musiał opublikować aplikację w Sklepie Play. W tym przypadku możesz powiedzieć, że osiągnąłeś cel sprintu po naciśnięciu przycisku publikowania.

Jak wspomnieliśmy wcześniej, Scrum dzieli Twój zespół na mniejsze segmenty. Pierwszym segmentem byłby Scrum Master, który odpowiada za ukończenie konfiguracji zespołu i zarządzanie spotkaniami sprinterskimi. Drugi to Product Owner, który musi stworzyć backlog produktu i nadzorować dostawę na końcu każdej iteracji.

Ostatni to Scrum Team, który pracuje nad cyklem sprintu.

Metodologia 2: Kanban

Kanban skupia się na rozwoju oprogramowania w jednym długim cyklu. Różni się od SCRUM, metody zwinnej, o której mówiliśmy wcześniej. W procesach Kanban używałbyś kart, które przechodzą przez cały proces. Kanban jest przyrostowy, ale nie iteracyjny. Ponieważ nie ma iteracji, projekt Kanban nie ma określonego punktu początkowego i końcowego.

Jej projekty mają limity „Praca w toku”. Pomagają Twojemu zespołowi w skupieniu się na małym segmencie zadania na raz. Nowe funkcje w cyklu dodasz dopiero po wykonaniu poprzedniej. Kanban reprezentuje różne fazy procesu tworzenia na wielu etapach cyklu życia oprogramowania. Reprezentujesz funkcje za pomocą kart Kanban i zarządzasz ich przepływem w taki sposób, aby liczba wprowadzonych funkcji była taka sama, jak liczba wykonanych funkcji.

Metodologia 3: Rozwój oparty na funkcjach (FDD)

Programowanie oparte na funkcjach koncentruje się na budowaniu i projektowaniu funkcji. W FDD Twój zespół pracowałby w krótkich, bardzo specyficznych fazach i skupiał się na pracy nad elementem. Inspekcja projektu, przewodnik po domenie, inspekcja kodu i promocja budowania to tylko niektóre przykłady tego samego. Mówiąc prościej, FDD skupia się na rozwoju konkretnych funkcji.

Będziesz musiał pracować nad własnością komponentów, modelowaniem obiektów domeny, regularnymi kompilacjami, inspekcjami i zespołami funkcji. Musisz również dbać o odpowiednią widoczność wyników i bieżących postępów projektu.

Metodologia 4: Rozwój Lean

Iteracyjna metodologia rozwoju zwinnego jest zgodna z zasadami tworzenia oprogramowania Lean. Lean ma na celu zmniejszenie ilości pracy w procesie zarządzania przepływem. Pomaga to w zwiększeniu szybkości dostawy. Zespoły Lean funkcjonują jako systemy „Just In Time”. Oznacza to, że na podjęcie decyzji muszą czekać do ostatniego wymaganego momentu.

Lean skupia się na usuwaniu odpadów. A zgodnie z zasadami Lean wszystko, za co klient nie zapłaci, jest marnotrawstwem. Koncentruje się również na automatyzacji procesów, które są powtarzalne i bardzo podatne na błędy ludzkie.

Pobierz kurs rozwoju oprogramowania z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Końcowe przemyślenia

Metodologia Agile to szeroki temat. Możesz zobaczyć, jakie to skomplikowane. Jej wpływ na współczesne społeczeństwo jest widoczny wszędzie.

Ogólnie rzecz biorąc, praktyki/metody Agile pomagają tworzyć środowiska, w których wymagania stale ewoluują i zmieniają się. Dzięki zdyscyplinowanemu podejściu do zarządzania projektami metodologia Agile promuje i popycha dostarczanie wysokiej jakości oprogramowania, które jest dostosowane do potrzeb klientów. Dowiedz się więcej o tworzeniu oprogramowania Agile, sprawdź program Executive PG UpGrad w kursie programowania pełnego stosu.

Zostań programistą Full Stack

Aplikuj teraz na studia magisterskie z inżynierii oprogramowania