Artykuły
Samouczki
Interaktywne przewodniki
Porównanie DevOps i Agile
Jakie są różnice i podobieństwa między Agile i DevOps?
Tom Hall
Specjalista i praktyk DevOps
Kiedy metodyka Agile upowszechniła się na początku lat 2000., zmieniła sposób tworzenia oprogramowania i innych produktów. Jednak po kilku latach od kiedy stała się ona standardem w branży, uwidoczniła się kluczowa luka: rewolucja ominęła procesy i wymagania zespołu operacyjnego, który wdraża i zarządza oprogramowaniem.
W efekcie powstało DevOps — podejście, które umożliwiło koordynację pracy zespołów programistycznych i operacyjnych. Czy więc DevOps zastąpiło Agile? A może podejścia te się uzupełniają? Okazuje się, że istnieją zarówno różnice, jak i podobieństwa między nimi. Agile i DevOps mogą być zarówno ekskluzywne, jak i inkluzywne, a także funkcjonować równolegle w organizacji.
Czym jest Agile?
Agile to iteracyjne podejście do zarządzania projektami i tworzenia oprogramowania, które koncentruje się na współpracy, informacjach zwrotnych od klientów i szybkich wydaniach. Metodyka ta powstała na początku lat 2000. i wywodzi się z branży programistycznej, gdyż jej celem było pomaganie zespołom programistycznym reagować i dostosowywać się do zmieniających się warunków rynkowych oraz wymagań klientów.
W podejściu Agile część planowania i projektowania ma miejsce z wyprzedzeniem, ale tworzenie oprogramowania przebiega w małych partiach i wymaga ścisłej współpracy z interesariuszami. Zmiany są wprowadzane w sposób ciągły, a użyteczna wersja produktu jest często wydawana szybciej w porównaniu z produktami opracowanymi zgodnie z metodyką wodospadu. Ma to liczne zalety, z których być może najważniejsza jest taka, że jeśli oprogramowanie nie spełnia potrzeb lub oczekiwań klienta, może być poprawiane na bieżąco.
Agile jest zbiorem metod, a nie jednym podejściem do tworzenia oprogramowania. Jest to zbiór praktyk scrum, eXxtreme Programming (XP) i innych systemów, z których programiści korzystali już wcześniej. Metodyka ta powstała, bo praktycy ci postanowili połączyć te podejścia w jeden zestaw zasad. Efektem tego wysiłku był Manifest Agile, który obejmuje 12 zasad bazujących na czterech podstawowych wartościach.
Materiały pokrewne
Dowiedz się więcej o modelu CALMS
Materiały pokrewne
Dowiedz się więcej o historii DevOps
Cztery podstawowe wartości Manifestu Agile. Agile przedkłada:
ludzi i interakcje
ponad procesy i narzędzia
działające oprogramowanie
ponad szczegółową dokumentację
współpracę z klientem
ponad negocjacje umów
reagowanie na zmiany
ponad realizację założonego planu
Przedstawiamy DevOps
DevOps to podejście do tworzenia oprogramowania, które umożliwia zespołom szybsze i bardziej niezawodne pisanie, testowanie i wydawanie oprogramowania dzięki zastosowaniu zwinnych zasad i praktyk, takich jak zwiększona automatyzacja i lepsza współpraca między zespołami programistycznymi i operacyjnymi. Programowanie, testowanie i wdrażanie ma miejsce zarówno w przypadku Agile, jak i DevOps. Jednak tradycyjna metodyka Agile nie obejmuje operacji, co jest integralną częścią DevOps.
Celem DevOps jest utworzenie warunków do współpracy między programistami, którzy piszą oprogramowanie, i pracownikami operacyjnymi, którzy uruchamiają oprogramowanie w fazie produkcyjnej. Ponadto praktyka ta pozwala budować i utrzymywać infrastrukturę tam, gdzie działa. DevOps zastępuje stare podejście, w ramach którego zespoły programistyczne pisały aplikacje, a następnie „przerzucały je przez mur” do zespołu operacyjnego, który wdrażał je i zarządzał nim, mając minimalną wiedzę na temat sposobu, w jaki zostało opracowane. W środowisku DevOps programiści i zespoły operacyjne pracują ramię w ramię w całym procesie tworzenia, wdrażania i zarządzania aplikacjami.
Dwoma modelami niezbędnymi do zrozumienia DevOps są „Trzy sposoby” oraz „CALMS”, będący akronimem od Culture, Automation, Lean, Measurement i Sharing (kultura, automatyzacja, lean, pomiar i dzielenie się). Kultura odnosi się do zmiany kulturowej, dzięki której działy programistyczne i operacyjne pracują bardziej spójnie. Automatyzacja zwiększa prędkość i pozwala uzyskać lepszą jakość. Zasady lean związane z ciągłym doskonaleniem i otwartością na błędy są podstawą eksperymentalnego myślenia. Pomiar odnosi się do praktyki mierzenia wyników w celu ulepszania procesów. Dzielenie się podkreśla z kolei znaczenie DevOps jako wysiłku grupowego i stosowania najlepszych praktyk.
Trzy sposoby w ramach DevOps
Myślenie systemowe
Zrozumienie, że aplikacje są systemami złożonymi
Wzmacnianie pętli informacji zwrotnych
Poprawa dwustronnej komunikacji między członkami zespołów
Zmiana kulturowa
Kultura ciągłego eksperymentowania i uczenia się
Kiedy Agile i DevOps współpracują ze sobą?
DevOps można traktować jako ewolucję praktyk Agile lub jako brakującą część Agile. Jest to wysiłek mający na celu wykorzystanie innowacji w podejściu Agile i zastosowanie ich do procesów operacyjnych. Jednocześnie jest to brakujący element metodyki Agile, ponieważ pewne zasady Agile mogą być realizowane w swojej najbardziej kompletnej formie tylko wówczas, gdy zastosuje się praktyki DevOps. Na przykład w dokumentach Agile często przywołuje się ciągłe dostarczanie oprogramowania, ale ponieważ pipeline'y dostarczania obejmują kwestie operacyjne, ciągłe dostarczanie jest zwykle traktowane jako praktyka DevOps. Wzmacnianie pętli informacji zwrotnych wymaga lepszej komunikacji w ramach zespołów i między nimi. Agile, w tym zwłaszcza scrum, usprawnia tę komunikację poprzez różne rytuały, takie jak codzienne stand-upy, spotkania dotyczące planowania i retrospektywy.
Jakie są podobieństwa i różnice między agile i DevOps?
- Agile kładzie nacisk na współpracę między programistami a pracownikami odpowiedzialnymi za zarządzanie produktami — DevOps obejmuje zespół operacyjny
- Agile koncentruje się na przepływie oprogramowania od opracowania pomysłu do ukończenia kodu — DevOps koncentruje się na dostarczaniu i konserwacji
- Agile kładzie nacisk na iteracyjny rozwój i małe partie — DevOps skupia się bardziej na automatyzacji testowania i dostarczania
- Agile nadaje strukturę planowanej pracy dla programistów — DevOps obejmuje niezaplanowaną pracę częstą w przypadku zespołów operacyjnych
Manifest Agile wyraźnie nadaje priorytet ludziom i interakcjom, działającemu oprogramowaniu, współpracy z klientami i reagowaniu na zmiany. DevOps ma oczywiście te same priorytety, w przypadku tej metodyki wykraczają one jednak poza proces programowania oraz zarządzanie systemami i uruchomionymi aplikacjami.
Ponadto Dwanaście zasad oprogramowania Agile zawiera odniesienia do zasad DevOps. Wymieniają one na przykład ciągłą integrację i dostarczanie, pracę w małych partiach z częstymi wydaniami i wykorzystanie automatyzacji.
Podsumowując… Agile ORAZ DevOps
W ostatecznym rozrachunku cele Agile i DevOps są takie same: poprawa szybkości i jakości tworzenia oprogramowania, i w praktyce trudno mówić o jednym bez drugiego. Dla wielu zespołów metodyka Agile okazuje się niezwykle pomocna, podczas gdy inne mają trudności z wykorzystaniem jej potencjału. Może to wynikać z wielu powodów, na przykład braku zrozumienia praktyk Agile przez zespoły lub ich nieprawidłowego wdrażania. Może się również zdarzyć, że zastosowanie podejścia DevOps pomoże wypełnić luki organizacjom, które mają trudności z Agile, i pozwoli im osiągnąć sukces, na który liczyły.
Atlassian łączy zespoły programistyczne, operacji IT oraz Agile dzięki otwartemu łańcuchowi narzędzi, który obejmuje nie tylko produkty Atlassian, ale także narzędzia zewnętrzne. Atlassian DevOps zapewnia zespołom wszystko, czego potrzebują do opracowywania i obsługi oprogramowania. Wypróbuj teraz.
Udostępnij ten artykuł
Następny temat
Zalecane lektury
Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat rodzajów zespołów DevOps lub otrzymywać aktualności na temat metodyki DevOps w Atlassian.