Na czym polega praca z DevOps? Wywiad z Aleksandrem Czarnołęskim i Michałem Piotrowiczem
Pojęcie DevOps kryje za sobą wiele różnych ról i praktyk, które nie sposób opisać jednym zdaniem. Jak wygląda praca z DevOps? O jej charakterystyce oraz drodze do zostania DevOps Engineerem rozmawialiśmy z Aleksandrem Czarnołęskim i Michałem Piotrowiczem z Sollers Consulting.
Spis treści
Co oznacza i jak wygląda praca z DevOps w projektach?
Aleksander: To wszystko zależy od tego, jak definiujemy DevOpsa. Najczęściej spotykamy się z rolą DevOps Engineera, którego celem jest automatyzacja procesu wytwórczego oprogramowania. I to jest częściowo zgodne z całym podejściem DevOpsowym, ale pomija bardzo istotny aspekt kulturowy i organizacji procesów – źle zaprojektowany proces manualny, po automatyzacji będzie źle zaprojektowanym procesem automatycznym.
Praca z DevOps jest bardzo szerokim pojęciem, pod które można podpiąć wiele praktyk – zazwyczaj sprowadzam je do następującej definicji: optymalizacja procesu wytwarzania i dostarczania oprogramowania poprzez zapewnienie odpowiedniej kultury organizacyjnej, procesów i, na samym końcu, narzędzi.
Biorąc pod uwagę postrzeganie rynkowe oraz nasze doświadczenie z podejściem DevOps, najczęściej wyróżniamy dwa typy projektów:
- Jeżeli działamy na pojedynczym projekcie u naszego klienta i nie mamy większego wpływu na działanie całej organizacji, skupiamy się na zbudowaniu jak najwyższego poziomu dojrzałości i automatyzacji procesu wytwórczego na poziomie projektu. Polega to na optymalizacji i automatyzacji procesu wytwarzania i dostarczania oprogramowania, jak również na budowaniu odpowiedniej świadomości u klienta na temat praktych DevOpsowych, takich jak bliska współpraca zespołów developerskich z biznesem, wczesnego testowania, zwiększania umocowania (empowerment) zespołu do podejmowania decyzji, zapewniania zespołowi narzędzi do tworzenia rozwiązania end-to-end, itd.
- W przypadku projektów, których celem jest zmiana organizacji po stronie klienta, mamy zdecydowanie większy wpływ na postawienie odpowiednich fundamentów prawidłowej kultury organizacyjnej i zaprojektowania procesów na poziomie całej firmy. Staramy się wtedy znaleźć złoty środek pomiędzy zapewnianiem zespołom odpowiednich narzędzi i swobody tworzenia, jak również wprowadzania pewnych ram, które pozwalają utrzymać spójne podejście technologiczne i wspomagają re-używanie przygotowanych rozwiązań oraz utrzymanie spójności wytwórczej na poziomie całej organizacji.
Czy już na początku swojej kariery wiedzieliście, że chcecie związać ją z DevOps? Jak wyglądała Wasza droga?
Ścieżka od pozycji Business Analyst do Senior Consultanta
Aleksander: U mnie ścieżka była dosyć nietypowa, ponieważ w Sollersie zaczynałem jako analityk biznesowy. Początkowo odpowiadałem za procesy zbierania i tworzenia wymagań funkcjonalnych, kontakt z ekspertami domenowymi, czasami przygotowywanie scenariuszy testowych i ich późniejsze testowanie. Z uwagi na to, że Sollers zapewnia dużo możliwości rozwoju poziomego – w ramach firmy, ale poza aktualnie wykonywanym projektem, dostałem propozycję koordynacji kompetencji DevOps wewnątrz firmy. Zadanie polegało bardziej na organizacji ludzi w ramach kompetencji niż tworzenie przeze mnie rozwiązań (na tamten moment ledwo rozumiałem pojęcie DevOps!). Początkowo nie widziałem miejsca, gdzie mógłbym dostarczać wartość, ponieważ nie byłem w żaden sposób osobą techniczną.
Dopiero z czasem zrozumiałem pełniejszą definicję DevOps i zorientowałem się, że jeżeli odpowiednio się doszkolę i lepiej zrozumiem proces wytwórczy oprogramowania, będę w stanie pomagać w budowaniu odpowiedniej kultury organizacyjnej oraz optymalizacji procesów. Zacząłem więc czytać dużo książek, prezentacji, szkoleń, a przede wszystkim rozmawiać więcej z developerami, architektami, inżynierami infrastruktury, żeby lepiej zrozumieć ich codzienność i problemy, z którymi się borykają. Wraz z nabywaniem wiedzy oraz decyzją strategiczną, by więcej inwestować w rozwój produktów DevOpsowych, moja kariera zaczęła coraz bardziej kręcić się wokół tego obszaru. Następnie pojawiły się projekty, gdzie pomagałem budować kulturę organizacyjną i optymalizować procesy wytwórcze u klientów. Tak trafiłem tu, gdzie jestem.
Ścieżka od pozycji IT admin do IT Manager/ Head of DevOps
Michał: Swoją karierę rozpoczynałem jako administrator systemów oraz infrastruktury. Z biegiem czasu angażowałem się coraz bardziej w zewnętrzne projekty dla klientów, ponieważ chciałem rozwiązywać problemy, z którymi mierzyli się moi koledzy z zespołów wytwórczych.
Wcześniej bardzo często spotykałem się z ironicznymi pytaniami kolegów z biznesu, którzy komentowali swoje bieżące zaangażowanie, mówiąc „czemu to nie może działać tak jak u nas?”. W tamtym czasie termin DevOps był jeszcze mocno raczkujący – sami nie wiedzieliśmy, jak nasze pomysły i inicjatywy definiować. Wówczas popularność zdobywała metodologia Agile, którą przekładaliśmy na pracę nad infrastrukturą. Realizując kolejne projekty, rozwiązując problemy – coraz częściej docieraliśmy do nowych narzędzi i materiałów, w których pojawiał się termin DevOps jako praktyka wspierająca efektywne dostarczanie oprogramowania. To wszystko ugruntowało to, czym teraz jest kompetencja DevOps w Sollersie.
Patrząc z perspektywy czasu, w moim przypadku dojście do roli IT Managera, to wypadkowa przede wszystkim dwóch rzeczy. Z jednej strony wiedza technicza połączona z pewnością siebie, dzięki którym często kwestionowałem standardowe „nie da się”, które w IT pada zaskakująco często. Z drugiej strony to chęć pracy zespołowej – dość szybko zrozumiałem, jak dużo zależy od samych ludzi oraz ich zaangażowania – tego, czy mamy wspólne cele, czym się kierują, czy rozumieją, jaką wartość przynosi nasza praca.