Co to jest DevOps?
DevOps to metodyka pracy stawiająca w centrum zainteresowania umożliwienie ludziom współpracy ze sobą w celu osiągnięcia wspólnego celu biznesowego. czytaj dalej
Gdy bliżej przyjrzymy się szybko rozwijającym się, innowacyjnym branżom, dostrzeżemy, że zagrożeniem dla firm stają się nie konkurenci, ale przede wszystkim organizacje, które w pewien sposób zakłócają rynek. Zmieniają tym samym zasady gry i zaburzają status quo przedsiębiorstw, które do tej pory czuły się stabilnie. Dlatego tak istotna w dzisiejszych czasach jest umiejętność elastycznego reagowania na zmiany, do czego doskonałą drogą jest DevOps. Celem tego podejścia jest budowanie wysoce wydajnych organizacji o wysokiej przepustowości (high-performing organizations).
Zacznijmy od porównania modelu tradycyjnego z podejściem DevOps. W dużych firmach o ugruntowanej pozycji rynkowej wciąż dominuje model silosowy, w skład którego wchodzą różne grupy pracowników:
W wielu przypadkach tradycyjne podejście oznacza brak elastyczności. Projekty i wdrożenia przeciągają się na długie miesiące – często zdarza się, że nawet gdy developerzy szybciej skończą pisanie danego rozwiązania, wciąż potrzebne są tygodnie testów i poprawek. W rezultacie wynik mocno odbiega od pierwotnej wizji architektów. Każde przekazanie procesu do innego zespołu oznacza utratę informacji i wymaga osobnego planowania, priorytetyzowania, koordynowania i weryfikacji. Prowadzi to do opóźnień i nierzadko konfliktów między zespołami.
High-performing organizations, czyli wydajne organizacje o wysokiej przepustowości, to zupełne przeciwieństwo modelu tradycyjnego. Zamiast przekazywania projektu między zespołami, całość procesów realizowana jest w obrębie jednego teamu, który jest w stanie szybko i elastycznie reagować na zmiany. Oczywiście zespół DevOps wciąż kieruje się wizją architektury rozwiązania, wynikającą z celów biznesowych projektu, nie ma jednak odrębnego teamu, który tę wizję projektuje. Rola architekta istnieje po prostu w zespole DevOps. Architektem może być jeden z najbardziej doświadczonych developerów, który dba o to, aby projektowane rozwiązanie było zgodne z tym, co ustalono z osobami o podobnej roli. W zespole nie ma też odrębnej grupy testerów. Zamiast tego w teamie znajdują się osoby realizujące inne role, ale również potrafiące testować funkcjonalności. Mogą one na każdym etapie pokazywać innym, jak testować rozwiązanie zanim jeszcze ono powstanie. W takim zespole naturalnie wybrana zostaje osoba ponosząca odpowiedzialność za poprawne wdrożenie usługi. Podsumowując, cały zespół DevOps tworzy i jest odpowiedzialny za tzw. pipeline, czyli wszystkie czynności prowadzące do zrealizowania wdrożenia. Zazwyczaj elementem wspierającym pracę zespołu DevOps jest środowisko chmurowe.
Większość organizacji, które wdrożyły DevOps w swoich strukturach, zdecydowanie potwierdza, że zmiana podejścia skróciła czas wdrożenia nowych usług i funkcjonalności. To, co w strukturze silosowej trwa miesiące, DevOps jest w stanie skrócić do nawet kilku czy kilkunastu godzin przede wszystkim dlatego, że w dużej mierze wyeliminowany jest etap przekazywania prac do innych zespołów.
Aby w pełni wykorzystać możliwości, które daje podejście DevOps, kluczowe jest zbudowanie zespołu posiadającego odpowiednie kompetencje. Najczęściej pożądane to:
Często organizacje zakładają, że to twarde umiejętności decydują o sukcesie zespołu DevOps. Oczywiście są one istotne, aby osiągnąć maksymalną wydajność. Im jednak bardziej dojrzała organizacja, tym większą uwagę zwraca na umiejętności miękkie. To one są trudniejsze do przyswojenia i to one nierzadko decydują o sukcesie bądź porażce projektu.
Organizacja, która podejście DevOps wdrożyła poprawnie, to zwykle organizacja o wysokim poziomie dojrzałości. Gdy mówimy, że zespół DevOps jest skuteczny i działa efektywnie, oznacza to, że:
Jak już wspomniano, są różne poziomy dojrzałości organizacji. Każda organizacja, która chce się rozwijać, prędzej czy później napotyka problemy. Im bardziej rozwinięta organizacja, tym problemy są bardziej złożone i trudniejsze do rozwiązania. Zaczyna się zwykle od stosunkowo prostych kwestii – np. tworzenie środowisk zajmuje zespołowi zbyt dużo czasu. Gdy ten problem uda się rozwiązać, okazuje się, że problematyczny jest sprawny deployment kodu, który zespół wcześniej przeprowadzał manualnie, a wraz z rozwojem firmy chce możliwie najbardziej go zautomatyzować. Na kolejnych etapach pojawiają się trudności z wdrożeniem i utrzymaniem testów czy tzw. zabetonowana architektura – przez to, że zespoły pracują w silosach niezależnie od siebie, większe zmiany nie mogą być wdrażane zwinnie, tylko zbiorczo, w sposób monolityczny. Im bardziej zaawansowane problemy dotykają organizację, tym szybciej rośnie świadomość potrzeby zmiany. Zmienia się kultura organizacji i coraz bardziej dostrzegana jest potrzeba wprowadzenia wysokiej przepustowości, czyli wdrożenia podejścia DevOps. Dodatkowo im problemy są bardziej zaawansowane, tym szybciej leaderzy zauważają potrzebę kształtowania kompetencji miękkich – najczęściej problemy wymagające zmiany mindsetu są znacznie trudniejsze do rozwiązania, niż problemy wynikające z technicznych braków.
Pamiętajmy przede wszystkim, że wbrew powszechnym opiniom, DevOps to nie nazwa zespołu. To podejście, sposób prowadzenia firmy, który zakłada, że zespoły składają się z ludzi mających szerokie kompetencje we wszystkich wymaganych obszarach, a jednocześnie będących ekspertami w swojej dziedzinie. Tylko takie zespoły są w stanie zwinnie tworzyć dopasowane rozwiązania. W przeciwieństwie do rozwiązań silosowych, organizacje DevOps nie zamykają się na zmiany, są elastyczne i potrafią zagospodarować procesy na najwyższym poziomie i bez opóźnień. Rolą leaderów jest więc albo znalezienie odpowiednich osób, albo próba przeorganizowania struktury z silosowej do DevOps.
Wpis został zrealizowany na podstawie webinaru "Model kompetencyjny ludzi i budowanie zespołów w DevOps".
Kategorie: DevOps
Zostaw swój email, a będziemy regularnie informować Cię o nowych artykułach.
DevOps to metodyka pracy stawiająca w centrum zainteresowania umożliwienie ludziom współpracy ze sobą w celu osiągnięcia wspólnego celu biznesowego. czytaj dalej
DevOps - trudno, ale warto czytaj dalej
U podstaw kultury DevOps leży zwiększona przejrzystość, komunikacja i współpraca pomiędzy zespołami, które tradycyjnie pracowały w silosach. czytaj dalej
Na czym polegają różnice i podobieństwa ITIL i DevOps? Jak wykorzystać te dwie metodyki, aby osiągać lepsze wyniki biznesowe? czytaj dalej