Metodyka Agile: znaczenie, zalety, wady i nie tylko

Opublikowany: 2021-03-20

Metodologia zwinna to filozofia tworzenia oprogramowania, której celem jest dostarczanie klientom lepszej wartości poprzez stosowanie krótszych cykli rozwojowych przy jednoczesnym uwzględnieniu ciągłych poprawek.

Rozwój oprogramowania wyrósł z dziedzin matematyki i nauk ścisłych. Tak więc pierwotnie zawierała metody naukowe z tych dziedzin.

Metody te przekształciły się w podejście kaskadowe w latach 70. XX wieku, aby sprostać wymaganiom dnia. Komputery i ich oprogramowanie w tamtych czasach były duże, złożone i zaprojektowane tak, aby przetrwać dziesięciolecia. Tak więc metoda kaskadowa była odpowiednia.

Jednak pod koniec lat 90. Internet radykalnie zmieniał świat i konieczne stało się nowe podejście. Tak powstała zwinna metodologia.

Poniżej znajduje się bliższe spojrzenie na ten ruch tworzenia oprogramowania i jak może on pomóc Tobie i Twojemu zespołowi.

Spis treści

Historia metody rozwoju Agile

Zwinny rozwój oprogramowania wyrósł z Internetu i jego nienasyconego zapotrzebowania na aplikacje w latach boomu lat 90. i początku XXI wieku.

Był to również okres, w którym wielu programistów bez wykształcenia informatycznego przeszło na tworzenie stron internetowych ze względu na ogromne zapotrzebowanie na strony internetowe przeznaczone dla różnych grup i branż.

Oczywiście większość startupów była niewielka. Tak więc większość zmian miała miejsce w małych zespołach, a ostatecznym celem jest często szybki czas wprowadzenia produktu na rynek. Spóźnienie oznaczało utratę udziału w rynku.

Aby przeciwdziałać ograniczeniom, jakie nakładał model kaskadowy na jak najszybsze wprowadzanie produktów na rynek, różni deweloperzy wymyślili różne metody w latach 90-tych. Należą do nich Rapid Application Development (RAD), Scrum, Extreme Programming (XP), Kanban i inne.

Potem, gdzieś w 2001 roku, 17 programistów, którzy praktykowali jedną lub drugą formę wczesnego programowania zwinnego, zebrało się razem w Utah w USA. Następnie zakończyli spotkanie, publikując „Manifest Agile Software Development”.

Manifest ten opiera się na 4 wartościach i 12 zasadach.

4 wartości i 12 zasad rozwoju Agile

Na podstawie doświadczeń, które zebrali podczas spotkania, 17 programistów osiągnęło porozumienie w sprawie zestawu wartości, aby efektywniej tworzyć oprogramowanie.

Te cztery wartości są następujące:

  1. Jednostki i interakcje nad procesami i narzędziami. Oznacza to, że ważne jest tworzenie oprogramowania za pomocą narzędzi przy jednoczesnym przestrzeganiu określonego procesu. Ale ważniejsze jest posiadanie kompetentnych ludzi pracujących razem bardziej efektywnie.

  2. Działające oprogramowanie nad obszerną dokumentacją. Ta metoda atakuje metodę kaskadową polegającą na pierwszym projektowaniu oprogramowania i pisaniu dla niego dokumentacji przed faktycznym procesem tworzenia oprogramowania.

  3. Współpraca z klientem przy negocjacjach umowy. Tylko dzięki ścisłej współpracy z klientem lub użytkownikiem możesz nauczyć się i rozwijać dokładnie to, czego potrzebuje klient. To tworzy większą wartość.

  4. Reagowanie na zmianę na przestrzeganie planu. Ważne jest przestrzeganie planu projektu. Ale plan nie może być zbyt sztywny. Musi uwzględniać zmiany, aby sprostać oczekiwaniom interesariuszy.

Powyższe wartości Manifestu Agile są oparte na 12 zasadach i są następujące:

  1. Zadowolenie klienta dzięki wczesnemu i ciągłemu dostarczaniu wartościowego oprogramowania.
  2. Witamy zmieniające się wymagania, nawet w późnym rozwoju.
  3. Dostarczaj działające oprogramowanie często (tygodnie zamiast miesięcy)
  4. Ścisła, codzienna współpraca ludzi biznesu z deweloperami
  5. Projekty budowane są wokół zmotywowanych osób, którym należy zaufać
  6. Rozmowa twarzą w twarz to najlepsza forma komunikacji (kolokacja)
  7. Działające oprogramowanie jest podstawową miarą postępu
  8. Zrównoważony rozwój, zdolny do utrzymania stałego tempa
  9. Ciągła dbałość o doskonałość techniczną i dobry design
  10. Prostota — sztuka maksymalizacji ilości niewykonanej pracy — jest niezbędna
  11. Najlepsze architektury, wymagania i projekty powstają dzięki samoorganizującym się zespołom
  12. Zespół regularnie zastanawia się, jak stać się bardziej efektywnym i odpowiednio się do niego dostosowuje

Iteracje lub sprinty

Iteracje lub sprinty w zwinnym tworzeniu oprogramowania to krótkie okresy, zwykle od 1 do 4 tygodni, na które rozbijana jest praca programistyczna. Ułatwia to zarządzanie, ponieważ wymaga mniej planowania.

Każdy zespół zazwyczaj składa się również z członków pełniących różne funkcje, które mogą obejmować planowanie, analizę, projektowanie, kodowanie i testowanie.

Zespół pracuje wspólnie nad oprogramowaniem przy każdej iteracji lub sprincie. I na końcu wytwarzają działający produkt. To działające oprogramowanie jest miarą prawdziwego postępu, zgodnie z Manifestem Agile.

W zależności od produktu i potrzeb klienta, produkt w iteracji może zostać wprowadzony na rynek lub nie. Tak więc często potrzeba wielu iteracji na jedno wydanie.

Zalety rozwoju Agile

Jak możesz sobie wyobrazić, metodologia zwinna niesie ze sobą wiele korzyści. Są to:

  1. Szybsza realizacja pomysłów
  2. Większa elastyczność niż podejście kaskadowe
  3. Większa produktywność dzięki zarządzanym iteracjom
  4. Lepsze produkty dzięki interakcjom użytkownika
  5. Błędy są szybko identyfikowane i eliminowane

Wady metodyki Agile

Istnieją również pewne wady pracy ze zwinną metodą programowania. Mogą to być:

  1. Oszacowanie całkowitych kosztów na początku może być trudne
  2. Potrzebuje dużo wkładu klienta
  3. Wiąże się z dużą ilością nieplanowanej pracy
  4. Brak jasno określonego końca projektu

Kiedy używać metod zwinnych

  1. Kiedy nie możesz oszacować, czego wymaga oprogramowanie
  2. Masz wystarczający dostęp do klientów
  3. Tworzysz aplikację internetową lub łatwy do aktualizacji system
  4. Musisz szybko zdobyć udział w rynku dzięki wczesnej wersji

Popularne frameworki programistyczne Agile

Istnieje wiele popularnych zwinnych frameworków programistycznych. Niektóre zaczęły się na długo przed Manifestem Agile z 2001 roku, inne pojawiły się później.

Celem frameworku jest po prostu zdefiniowanie zasad metody. Tak więc, chociaż najpopularniejsze frameworki są wymienione poniżej w celach informacyjnych, jest ich znacznie więcej. Możesz też dowolnie tworzyć własne lub modyfikować istniejące ramy, aby pasowały do ​​Twojego zespołu.

  1. Scrum : ten framework jest przeznaczony dla zespołów liczących 10 lub mniej członków. Praca podzielona jest na sprinty trwające 2-4 tygodnie z codziennymi 15-minutowymi spotkaniami.

  2. Kanban : Pochodzące z Toyoty słowo Kanban to japońskie słowo, które oznacza billboard i jest bardzo pomocne dla zespołów, które cenią pomoce wizualne. Zadania są przenoszone z jednego etapu na drugi za pomocą reprezentacji wizualnych, takich jak karteczki samoprzylepne lub aplikacje.

  3. Rapid Application Development RAD : To zdanie może odnosić się zarówno do zwinnego tworzenia oprogramowania w ogóle, jak i metody Jamesa Martina. RAD skupia się na wymaganiach interfejsu użytkownika i w dużym stopniu opiera się na prototypowaniu.

  4. Lean Startup : te ramy są przeznaczone dla tych, którzy muszą opracować produkt lub usługę, ale najpierw muszą określić ich rentowność rynkową. Wiąże się z eksperymentowaniem, aby zobaczyć, co działa, a co nie.

Inne godne uwagi frameworki to Extreme Programming (XP), Adaptive Software Development, Agile Modeling, Dynamic Systems Development Method i Scaled Agile Framework.

Metodologia Agile vs Waterfall

Oto porównanie zwinnych i kaskadowych metod tworzenia oprogramowania. Pomocne może być poznanie, w jaki sposób każda metoda układa się w stosunku do drugiej. Dzięki temu możesz łatwo wybrać najlepsze narzędzia do swojej pracy.

Zręczny Wodospad
Podejście przyrostowe i iteracyjne Liniowy i sekwencyjny model cyklu życia
Elastyczny na zmianę Sztywne wdrożenia
Trwają testy i przeglądy Po zakończeniu jest tylko jedna faza testowania
Wymagania mogą się zmienić Wymagania są ustalane po zaplanowaniu
Zbiór wielu mniejszych projektów Jeden projekt
Większe zaangażowanie klienta Mniejsze zaangażowanie klienta

Adaptacyjny a predykcyjny rozwój

Celem zwinnego tworzenia oprogramowania jest dostosowanie się do zmian w świecie rzeczywistym. A te często wynikają z potrzeb klienta lub użytkownika. Adaptacja jest w wyraźnym kontraście z predykcyjną naturą modelu wodospadu.

Sensowne jest zatem stosowanie metod zwinnych przy tworzeniu systemów, w których nie masz pewności, jak się sprawy potoczą. Lub gdy w branży zachodzą ciągłe zmiany i ewolucja. Dobrym przykładem jest internet.

W przeciwnym razie, jeśli rozwijasz się dla systemu lub rynku, o którym wiesz wszystko i który prawie się nie zmienia lub jest odporny na zmiany. Wtedy pomocna może być predykcyjna natura filozofii wodospadu.

Rzemiosło oprogramowania

Software Craftsmanship to kolejna filozofia, która opiera się na zasadach zwinnego rozwoju i koncentruje się na podkreśleniu umiejętności programistów zaangażowanych w projekt.

Ruch Software Craftsmanship również ma swój manifest i stwierdza:

 Jako początkujący rzemieślnicy oprogramowania podnosimy poprzeczkę profesjonalnego tworzenia oprogramowania, ćwicząc je i pomagając innym w nauce rzemiosła. Dzięki tej pracy doceniliśmy:
 
 · Nie tylko działające oprogramowanie, ale także dobrze wykonane oprogramowanie
 · Nie tylko reagowanie na zmiany, ale także stałe dodawanie wartości
 · Nie tylko jednostki i interakcje, ale także społeczność profesjonalistów
 · Nie tylko współpraca z klientami, ale także owocne partnerstwa
 
 Oznacza to, że w pogoni za przedmiotami po lewej stronie stwierdziliśmy, że przedmioty po prawej są niezbędne.
 
  2009, niżej podpisany.
 Niniejsze oświadczenie może być dowolnie kopiowane w dowolnej formie, ale tylko w całości w ramach niniejszego ogłoszenia

Wniosek

Pod koniec naszego spojrzenia na zwinną metodologię i tworzenie oprogramowania widać, że istnieje tak wiele opcji.

Każdy zespół jest inny. I tak jak różne zespoły opracowały różne metody dostosowywania się do zmieniających się czasów. Ty również będziesz musiał się dostosować, albo korzystając z już ustalonych ram, albo dostosowując je do swojego zespołu.