{"id":34157,"date":"2019-10-31T21:56:43","date_gmt":"2019-10-31T18:56:43","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-nachat-devops-transformatsiyu\/"},"modified":"2019-10-31T21:56:43","modified_gmt":"2019-10-31T18:56:43","slug":"kak-nachat-devops-transformatsiyu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-nachat-devops-transformatsiyu","title":{"rendered":"Jak rozpocz\u0105\u0107 transformacj\u0119 DevOps","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Je\u015bli nie rozumiesz, czym jest DevOps, oto kr\u00f3tkie streszczenie. DevOps to zestaw praktyk, kt\u00f3re <strong>zmniejszaj\u0105 obawy in\u017cynier\u00f3w<\/strong> i skracaj\u0105 liczb\u0119 awarii w produkcji oprogramowania. Zazwyczaj r\u00f3wnie\u017c <strong>kr\u00f3tk\u0105 czas wprowadzenia na rynek<\/strong> \u2014 okres od pomys\u0142u do dostarczenia gotowego produktu do klient\u00f3w, co pozwala na szybkie przeprowadzanie <strong>eksperyment\u00f3w biznesowych.<\/strong>.<\/p>\n<p>Jak rozpocz\u0105\u0107 transformacj\u0119 DevOps? W skr\u00f3cie: wybieramy us\u0142ug\u0119, od kt\u00f3rej zaczniemy proces, identyfikujemy osoby zwi\u0105zane z us\u0142ug\u0105, budujemy Map\u0119 Warto\u015bci, tworzymy tymczasowy zesp\u00f3\u0142, kt\u00f3ry na pocz\u0105tku zajmie si\u0119 transformacj\u0105, i stawiamy mu zadanie. Powtarzamy cykl odpowiedni\u0105 liczb\u0119 razy.<\/p>\n<p><img decoding=\"async\" alt=\"Jak rozpocz\u0105\u0107 transformacj\u0119 DevOps\" src=\"\/wp-content\/uploads\/2019\/05\/aa9480b66c26c9a3035929ea5fbe6542.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Szczeg\u00f3\u0142owy plan transformacji DevOps z przyk\u0142adami i instrukcjami pod spodem \u2014 w opracowaniu <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/voAm67851JU\">referatu<\/a><\/noindex> <b>Andrieja Aleksandrowa<\/b> \u2014 in\u017cyniera w firmie Express42, kt\u00f3ra doradza w zakresie wdra\u017cania DevOps, przyspieszaj\u0105c ten proces, poniewa\u017c ju\u017c zbudowa\u0142a map\u0119 pu\u0142apek. Je\u015bli uwa\u017casz, \u017ce transformacja nie jest dla ciebie potrzebna, lub twoja specyfika sprawia, \u017ce praktyki DevOps nie pasuj\u0105, \u2014 korzystaj z raportu jako instrukcji do zidentyfikowania i usuwania ogranicze\u0144. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nJe\u015bli masz w\u0105tpliwo\u015bci co do transformacji DevOps, to masz du\u017c\u0105 firm\u0119, i nale\u017cy stopniowo skalowa\u0107 ten proces na ca\u0142\u0105 struktur\u0119. Dop\u00f3ki istnieje potrzeba transformacji zespo\u0142u lub usuni\u0119cia jakiego\u015b ograniczenia, algorytm poni\u017cej mo\u017cna powtarza\u0107.<\/p>\n<h2>Wyb\u00f3r us\u0142ugi<\/h2>\n<p>\nPlan nakre\u015blony, zaczynamy od pierwszego kroku \u2014 wyboru us\u0142ugi.<strong> Pierwszym kryterium jest czas \u017cycia<\/strong>: s\u0105 stare us\u0142ugi \u2014 legacy, oraz nowe. Mo\u017cna zacz\u0105\u0107 zar\u00f3wno od jednych, jak i od drugich.<\/p>\n<p><strong>Wyb\u00f3r m\u0142odej us\u0142ugi jest logiczny<\/strong>. Jest \u015bwie\u017ca, nie ma jeszcze ustalonego procesu pracy w zespole, kt\u00f3ry si\u0119 ni\u0105 zajmuje. Nie ma wok\u00f3\u0142 niej g\u00f3ry zobowi\u0105za\u0144 technicznych, nie trzeba jej ci\u0105gle naprawia\u0107. Mo\u017cemy z ni\u0105 robi\u0107, co chcemy.<\/p>\n<p>W przypadku starej us\u0142ugi pojawiaj\u0105 si\u0119 problemy zwi\u0105zane z tym, \u017ce <strong>zmiany zawsze s\u0105 trudne<\/strong>. Istnieje ju\u017c zestaw powa\u017cnych ogranicze\u0144, ale by\u0107 mo\u017ce zajmuj\u0105 si\u0119 nimi ludzie, kt\u00f3rzy s\u0105 ju\u017c gotowi wszystko przeorganizowa\u0107 \u2014 s\u0105 zm\u0119czeni i chc\u0105 co\u015b zmieni\u0107, bo czuj\u0105 b\u00f3l.<\/p>\n<p><strong>Praca ze star\u0105 us\u0142ug\u0105 tworzy pot\u0119\u017cny precedens<\/strong> w twojej firmie \u2014 mo\u017cna co\u015b zmienia\u0107. Je\u015bli zmienisz now\u0105 us\u0142ug\u0119, dzia\u0142a na produkcji 100 razy na godzin\u0119 i wszystko jest dobrze, to ludzie w twojej firmie mog\u0105 powiedzie\u0107:<\/p>\n<p><em> To nowy serwis! Wszystko by\u0142o proste, spr\u00f3buj zrobi\u0107 cokolwiek z nasz\u0105 star\u0105 wersj\u0105.<\/em><\/p>\n<p>Serwis Legacy ma sens zmienia\u0107, gdy robisz to z kim\u015b, na przyk\u0142ad, je\u015bli zaprosisz zewn\u0119trznego konsultanta. <strong>B\u0105d\u017amy szczerzy, transformacja wstrz\u0105\u015bnie wszystkim, co tylko mo\u017cna.<\/strong>Eksperymentujesz i nie wiesz, dok\u0105d zmierzysz, jakie technologie i po co wykorzystasz, gdzie i jakie pu\u0142apki w procesach si\u0119 pojawi\u0105. Dlatego \u0142atwiej zmieni\u0107 na nowy.<\/p>\n<blockquote><p>Je\u015bli wszystko robisz sam, a w firmie nie ma powa\u017cnej kompetencji \u2014 wybieraj nowy serwis. Je\u015bli znasz zewn\u0119trznego konsultanta i masz \u015brodki \u2014 wybierz stary.<\/p><\/blockquote>\n<p>\nS\u0105 serwisy, kt\u00f3re przedstawiaj\u0105 si\u0119 tylko jako interfejs dla u\u017cytkownik\u00f3w, na przyk\u0142ad prosta strona internetowa lub aplikacja mobilna. Ale s\u0105 te\u017c powa\u017cne rzeczy, takie jak bilingi. Je\u015bli co\u015b p\u00f3jdzie nie tak z billingiem \u2014 naprawa b\u0119dzie trudna. W tym te\u017c mamy wyb\u00f3r.<\/p>\n<p>Pracujemy albo <strong>z krytycznym serwisem<\/strong>, ale przez niego ju\u017c cierpimy, tworzy ograniczenia, albo pracujemy <strong>z interfejsem<\/strong>. To drugi kryterium wyboru. Analogicznie, istnieje mo\u017cliwo\u015b\u0107 zaanga\u017cowania do\u015bwiadczonego konsultanta \u2014 pracujemy z trudniejsz\u0105 wersj\u0105.<\/p>\n<p>Ale nawet w tym przypadku nie zaleca\u0142bym tego robi\u0107, poniewa\u017c, dop\u00f3ki nie ma zrozumienia, z czym pracowa\u0107 i w jak\u0105 stron\u0119 transformowa\u0107, branie krytycznej rzeczy i jej przekszta\u0142canie \u2014 to niezbyt dobry pomys\u0142. Dlatego w tym przypadku wolimy pracowa\u0107 z interfejsem, kt\u00f3rego awaria nie jest krytyczna.<\/p>\n<p>Dalej przyjrzymy si\u0119 <b>zespo\u0142owi serwisu<\/b>. Z tymi, kt\u00f3rzy zajmuj\u0105 si\u0119 tym serwisem, b\u0119dziemy musieli ci\u0105gle pracowa\u0107 i mie\u0107 bardzo bliski kontakt.<\/p>\n<p>Ludzie w zespole dziel\u0105 si\u0119 na dwie kategorie: <strong>konserwaty\u015bci<\/strong> \u2014 \u017cyj\u0105 w starym \u015bwiecie lub po prostu nic nie wiedz\u0105 o DevOps, i <strong>innowatorzy<\/strong>, kt\u00f3rzy wprowadzaj\u0105 wszystkie nowinki. Drudzy nie zawsze rozumiej\u0105 temat, ale przynajmniej s\u0105 na niego gotowi.<\/p>\n<p>Z jednej strony konserwaty\u015bci \u2014 do\u015bwiadczeni ludzie: d\u0142ugo w firmie, rozumiej\u0105 wszystko od podstaw, ale nie znaj\u0105 praktyk. Z drugiej strony \u2014 innowatorzy, kt\u00f3rzy co\u015b s\u0142yszeli, ale w firmie prawdopodobnie s\u0105 nie za d\u0142ugo. Z kim lepiej pracowa\u0107?<\/p>\n<p>W przypadku konserwatyst\u00f3w b\u0119dziemy musieli nawi\u0105za\u0107 wsp\u00f3\u0142prac\u0119, bo to ich serwis. B\u0119dziemy musieli z nimi rozmawia\u0107, wyja\u015bnia\u0107 specyfik\u0119 serwisu, co mo\u017cna zrobi\u0107 w ten spos\u00f3b, a co w inny. Jeste\u015bmy zale\u017cni od ich konsultacji. Z pewno\u015bci\u0105 b\u0119dziemy musieli im co\u015b zleca\u0107, poniewa\u017c lepiej znaj\u0105 sw\u00f3j serwis. Dlatego wa\u017cne jest, z jakim zespo\u0142em w ko\u0144cu b\u0119dziemy mieli kontakt.<\/p>\n<blockquote><p>Logiczne jest wybranie do zespo\u0142u innowator\u00f3w, poniewa\u017c konserwaty\u015bci mog\u0105 stwarza\u0107 problemy.\n<\/p><\/blockquote>\n<p>\nW praktyce cz\u0119sto okazuje si\u0119, \u017ce konserwaty\u015bci maj\u0105 znacz\u0105ce do\u015bwiadczenie, ale brakuje im zrozumienia, jak \u017cy\u0107 dalej. Po prostu boj\u0105 si\u0119, \u017ce po transformacji i przebudowie serwisu, strac\u0105 prac\u0119. Czasami, z powodu niezrozumienia sytuacji, sabotuj\u0105 prac\u0119.<\/p>\n<p>Mia\u0142em przypadek, gdy ch\u0142opak z zespo\u0142u naprawia\u0142 wszystko, co popadnie, poniewa\u017c uwa\u017ca\u0142, \u017ce to rzekomo wa\u017cniejsze ni\u017c to, co robimy teraz. Stawiamy zadanie: zrealizowa\u0107 dzi\u015b ten kawa\u0142ek \u2014 nie, na drugim ko\u0144cu \u015bwiata jest po\u017car, idziemy to naprawi\u0107. Praca z takimi lud\u017ami jest trudna.<\/p>\n<p>Ludzie z zespo\u0142u konserwatyst\u00f3w cz\u0119sto ignoruj\u0105 zadania lub odk\u0142adaj\u0105 je do ostatniej chwili. A je\u015bli, nie daj Bo\u017ce, pope\u0142nisz b\u0142\u0105d i na\u0142o\u017cysz im KPI za liczb\u0119 zrealizowanych zada\u0144, a jaka\u015b cz\u0119\u015b\u0107 nie zostanie uwzgl\u0119dniona w KPI, to w og\u00f3le nic nie b\u0119d\u0105 robi\u0107. W zasadzie b\u0119d\u0105 mieli racj\u0119, bo wtedy trac\u0105 premi\u0119.<\/p>\n<p><strong>Z innowatorami jest \u0142atwiej \u2014 s\u0105 bardziej lojalni.<\/strong>S\u0142yszeli ju\u017c co\u015b, chc\u0105 i\u015b\u0107 do przodu, wi\u0119c b\u0119d\u0105 pomaga\u0107. Potrzebujemy ludzi, kt\u00f3rzy s\u0105 gotowi na trudno\u015bci na pocz\u0105tku: je\u015bli serwis si\u0119 zmienia, to wszystkie wpadki i problemy przejm\u0105 innowatorzy jako pionierzy. Innowatorzy chc\u0105 wszystkiego, co najnowsze i najbardziej stylowe, i s\u0105 gotowi na trudno\u015bci.<\/p>\n<p>Konserwatyst\u00f3w p\u00f3\u017aniej mo\u017cna nawr\u00f3ci\u0107 na swoj\u0105 wiar\u0119. Kiedy poka\u017cesz, \u017ce zmieni\u0142e\u015b kawa\u0142ek i wszystko dzia\u0142a dobrze, najprawdopodobniej oni r\u00f3wnie\u017c b\u0119d\u0105 chcieli spr\u00f3bowa\u0107 i przyjm\u0105 now\u0105 religi\u0119 DevOps.<\/p>\n<p><img decoding=\"async\" alt=\"Jak rozpocz\u0105\u0107 transformacj\u0119 DevOps\" src=\"\/wp-content\/uploads\/2019\/05\/dcbbc0308e150f915cbe091451b6196f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<blockquote><p>Podsumowuj\u0105c. Je\u015bli przeprowadzamy ca\u0142\u0105 transformacj\u0119 w naszej firmie samodzielnie, wybieramy: nowy serwis, najlepiej prosty interfejs, aby nie cierpie\u0107 z powodu jego awarii, i zesp\u00f3\u0142 innowator\u00f3w.<\/p><\/blockquote>\n<p>\nJe\u015bli istnieje mo\u017cliwo\u015b\u0107 zaproszenia zewn\u0119trznego konsultanta, zamiast nowego \u2014 bierzemy stary serwis, przez kt\u00f3ry ju\u017c cierpimy. Ludzie, kt\u00f3rzy zajmowali si\u0119 transformacj\u0105 do\u015b\u0107 d\u0142ugo w r\u00f3\u017cnych firmach, widzieli r\u00f3\u017cne przypadki i ju\u017c rozumiej\u0105, jak robi\u0107 to w\u0142a\u015bciwie i w kt\u00f3r\u0105 stron\u0119 w og\u00f3le i\u015b\u0107.<\/p>\n<h2>Kto jest zaanga\u017cowany?<\/h2>\n<p>\nMusimy znale\u017a\u0107 naprawd\u0119 wszystkich, kt\u00f3rzy maj\u0105 jakikolwiek zwi\u0105zek z serwisem: programist\u00f3w, tester\u00f3w, admin\u00f3w, specjalist\u00f3w ds. bezpiecze\u0144stwa, mened\u017cer\u00f3w i by\u0107 mo\u017ce Product Owners. Mimo \u017ce Product Owners nie s\u0105 techniczni, maj\u0105 zwi\u0105zek z serwisem: podejmuj\u0105 decyzje, stawiaj\u0105 zadania.<\/p>\n<p><img decoding=\"async\" alt=\"Jak rozpocz\u0105\u0107 transformacj\u0119 DevOps\" src=\"\/wp-content\/uploads\/2019\/05\/5bf997d5931089cce8e35bcb36007a60.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<blockquote><p>Wszystkich, kt\u00f3rzy podejmuj\u0105 jakiekolwiek decyzje i maj\u0105 wp\u0142yw na to, co dzieje si\u0119 z serwisem, nale\u017cy znale\u017a\u0107, pozna\u0107 i porozmawia\u0107.<\/p><\/blockquote>\n<p>\nPo co nam oni? <strong>Aby wiedzie\u0107, z kim si\u0119 dogadywa\u0107<\/strong>. W trakcie transformacji, kiedy zmienia si\u0119 zwyczajowy spos\u00f3b pracy z serwisem, i tak b\u0119dzie on poddawany zmianom. Przez jaki\u015b czas b\u0119d\u0105 wyst\u0119powa\u0107 problemy, podczas gdy testujemy nowe podej\u015bcia. Ludzie musz\u0105 by\u0107 na to gotowi i si\u0119 na to zgodzi\u0107.<\/p>\n<p>Nast\u0119pnie trzeba b\u0119dzie stworzy\u0107 map\u0119 warto\u015bci (Value Stream Map) i bez tych ludzi tego nie zrobisz, poniewa\u017c tylko oni wszyscy razem znaj\u0105 pe\u0142ny obraz sytuacji. Jeden cz\u0142owiek nigdy nie zna wszystkiego, co si\u0119 dzieje z serwisem.<\/p>\n<p>Sugeruj\u0105 ludzi do zespo\u0142u. P\u00f3\u017aniej porozmawiamy o tym, dlaczego potrzebny jest oddzielny zesp\u00f3\u0142. B\u0119dziemy musieli wzi\u0105\u0107 ludzi z istniej\u0105cych dzia\u0142\u00f3w. Ci, kt\u00f3rzy maj\u0105 zwi\u0105zek z serwisem, b\u0119d\u0105 mogli poleci\u0107 koleg\u00f3w my\u015bl\u0105cych w naszym kierunku, kt\u00f3rzy mog\u0105 nam pom\u00f3c i maj\u0105 kompetencje w tym, czego potrzebujemy.<\/p>\n<p>Nast\u0119pnie zbieramy wszystkich tych ludzi z r\u00f3\u017cnych dzia\u0142\u00f3w w jednym pomieszczeniu i zaczynamy budowa\u0107 map\u0119 warto\u015bci.<\/p>\n<h2>Budujemy map\u0119 warto\u015bci<\/h2>\n<p>\n<strong>Mapa warto\u015bci (Value Stream Map) to schemat lub mapa, kt\u00f3ra pokazuje przep\u0142yw warto\u015bci do klienta<\/strong>. To ca\u0142y proces od pomys\u0142u do realizacji, w\u0142\u0105czaj\u0105c wszystkie etapy po\u015brednie i to, jak warto\u015b\u0107 ostatecznie trafia do naszych klient\u00f3w.<\/p>\n<p>Mapa warto\u015bci jest potrzebna, aby <strong>zwizualizowa\u0107 wszystkie etapy rozwoju<\/strong>, zlokalizowa\u0107 problemy za pomoc\u0105 pomiar\u00f3w, kt\u00f3re istniej\u0105 w obecnym procesie, i zacz\u0105\u0107 te problemy usuwa\u0107, i <strong>ustali\u0107 pocz\u0105tkowy cel<\/strong>. To miejsce, w kt\u00f3rym zaczniemy co\u015b naprawd\u0119 robi\u0107.<\/p>\n<h3>Metryki<\/h3>\n<p>\nW literaturze na temat mapy warto\u015bci opisano wiele r\u00f3\u017cnych metryk, ale na pocz\u0105tek wystarcz\u0105 nam tylko trzy.<\/p>\n<p><strong>Lead Time \u2014 op\u00f3\u017anienie\/oczekiwanie<\/strong> \u2014 czas, kiedy na co\u015b czekamy. Na przyk\u0142ad, tester czeka, a\u017c zwolni si\u0119 stanowisko do test\u00f3w, i w tym czasie nie mo\u017ce nic robi\u0107.<\/p>\n<p><strong>Czas warto\u015bci dodanej \u2014 czas u\u017cytecznej pracy<\/strong> \u2014 to, co wydali\u015bmy na danym etapie, aby stworzy\u0107 ko\u0144cow\u0105 warto\u015b\u0107 dla u\u017cytkownika. Na przyk\u0142ad, tester uruchomi\u0142 swoje testy i zacz\u0105\u0142 co\u015b sprawdza\u0107. To jest czas u\u017cytecznej pracy, kiedy naprawd\u0119 robimy co\u015b dla produktu. To jest to, za co klienci p\u0142ac\u0105 \u2014 za wysokiej jako\u015bci oprogramowanie.<\/p>\n<p><strong>%C\/A \u2014 procent przyj\u0119tej pracy. <\/strong>Mamy jeden etap \u2014 rozw\u00f3j, drugi etap \u2014 testowanie. Ile funkcji testerzy przyj\u0119li od programist\u00f3w, a ten procent to w\u0142a\u015bnie.<\/p>\n<p>Tak wygl\u0105da nasza mapa.<\/p>\n<p><img decoding=\"async\" alt=\"Jak rozpocz\u0105\u0107 transformacj\u0119 DevOps\" src=\"\/wp-content\/uploads\/2019\/05\/724fcd9fa5b0c613674933dba9d82159.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMo\u017ce wygl\u0105da\u0107 inaczej w zale\u017cno\u015bci od struktury organizacji, liczby dzia\u0142\u00f3w i tego, czym si\u0119 zajmujesz. Ale w og\u00f3lnym przypadku na mapie b\u0119d\u0105 dwa etapy: <strong>idea <\/strong>i<strong> analityka<\/strong>. Na tym etapie oczekiwane s\u0105 dane, na przyk\u0142ad, Lead Time 2 tygodnie i czas warto\u015bci dodanej 2 dni.<\/p>\n<blockquote><p>Metrykami pokrywamy absolutnie wszystkie etapy.<\/p><\/blockquote>\n<p>\n<strong>Backlog<\/strong> \u2014 ile zada\u0144 pozosta\u0142o po tym, jak analitycy je wymy\u015blili.<\/p>\n<p><strong>Rozw\u00f3j<\/strong> \u2014 ile tygodni programi\u015bci czekali na wyja\u015bnienia dotycz\u0105ce zada\u0144, stanowisk lub sprz\u0119tu \u2014 nie ma znaczenia, ale na co\u015b czekaj\u0105. Na przyk\u0142ad, przez 4 dni realizuj\u0105 funkcj\u0119. Tutaj pojawia si\u0119 metryka %C\/A. Programi\u015bci wzi\u0119li z Backlog tylko 80% zada\u0144. Uwa\u017caj\u0105, \u017ce pozosta\u0142e 20% ma nie wystarczaj\u0105co jasne specyfikacje i odes\u0142ali je do poprawki.<\/p>\n<p><strong>Testowanie<\/strong>. Na schemacie LT zadano 4 dni. Na przyk\u0142ad, testerzy czekali na zwolnienie stanowiska testowego, VA 2 dni faktycznie co\u015b testuj\u0105, a %C\/A = 40%. \u2014 tylko 40% kodu lub funkcji, kt\u00f3re przes\u0142ali programi\u015bci, testerzy uznali za odpowiednie. Wszystko inne im si\u0119 nie podoba\u0142o z jakiego\u015b powodu.<\/p>\n<p>Nie b\u0119d\u0119 szczeg\u00f3\u0142owo omawia\u0142, jak przeprowadza\u0107 te pomiary, na koniec artyku\u0142u polec\u0119 literatur\u0119, z kt\u00f3rej mo\u017cna si\u0119 o tym dowiedzie\u0107.<\/p>\n<p>Jedyna rzecz, kt\u00f3r\u0105 doradzam \u2014 nie wierzcie ludziom, kt\u00f3rzy b\u0119d\u0105 z wami tworzy\u0107 Value Stream Map. Przedstawiaj\u0105, ile czasu zajmuj\u0105 r\u00f3\u017cne procesy, ale te oceny nie zawsze s\u0105 prawdziwe, wi\u0119c lepiej wszystko zmierzy\u0107 samodzielnie.<\/p>\n<p>Mieli\u015bmy sytuacj\u0119, kiedy przeszli\u015bmy do dzia\u0142u Operations i zapytali\u015bmy, ile czasu zajmuje wprowadzenie nowej funkcji na produkcj\u0119. Odpowiedzieli nam, \u017ce 10 minut, a my pomy\u015bleli\u015bmy, po co w og\u00f3le przyszli\u015bmy do tej firmy? Okaza\u0142o si\u0119, \u017ce 10 minut to czas dzia\u0142ania skryptu, kt\u00f3ry pobiera kod i dostarcza go na serwer. Jednak przed tym wydanie le\u017cy przez trzy dni na serwerze i po prostu si\u0119 kurzy \u2014 w Backlogu le\u017cy zadanie, kt\u00f3re trzeba wdro\u017cy\u0107. Oznacza to, \u017ce przed faz\u0105 wdro\u017cenia jest faza oczekiwania, w kt\u00f3rej projekt po prostu le\u017cy. Gdyby\u015bmy nie wzi\u0119li notatnika, nie przykuwaj\u0105c wzroku do zadania w Jira i nie zacz\u0119li go \u015bledzi\u0107 krok po kroku, to byliby\u015bmy przekonani, \u017ce wszystko jest w porz\u0105dku i nie ma \u017cadnego problemu.<\/p>\n<p>Dlatego pomiary i tak b\u0119dzie trzeba zrobi\u0107 samemu, najlepiej nie raz, aby mie\u0107 realistyczny obraz. W zale\u017cno\u015bci od Value Stream Map, b\u0119dziesz podejmowa\u0107 decyzj\u0119, od kt\u00f3rego miejsca zacz\u0105\u0107 i co naprawi\u0107 w pierwszej kolejno\u015bci.<\/p>\n<h2>Zesp\u00f3\u0142 tymczasowy<\/h2>\n<p>\nWiele firm, kt\u00f3re zdecydowa\u0142y si\u0119 wdro\u017cy\u0107 DevOps, tworzy zesp\u00f3\u0142, tylko \u017ce nie tymczasowy, a istniej\u0105cy od kilku lat. Je\u015bli zwr\u00f3cisz si\u0119 do us\u0142ugi DevOps apologize, na kt\u00f3rej opisane s\u0105 r\u00f3\u017cne wzorce budowy struktury organizacyjnej w DevOps, to zrozumiesz, \u017ce to jest antipattern.<\/p>\n<blockquote><p>Kiedy zesp\u00f3\u0142 DevOps istnieje przez kilka lat \u2014 to du\u017cy b\u0142\u0105d, poniewa\u017c DevOps dotyczy komunikacji mi\u0119dzy dzia\u0142ami, szybko\u015bci i efektywno\u015bci.<\/p><\/blockquote>\n<p>\nJe\u015bli zesp\u00f3\u0142 istnieje mi\u0119dzy dzia\u0142ami, tylko po to, aby robi\u0107 co\u015b jeszcze oddzielnego, i istnieje d\u0142ugo, to stwarza dodatkow\u0105 barier\u0119. Teraz programista zamiast od razu i\u015b\u0107 do administratora, aby rozwi\u0105za\u0107 problem, musi najpierw zwr\u00f3ci\u0107 si\u0119 do dzia\u0142u DevOps, a ten ju\u017c p\u00f3jdzie dalej.<\/p>\n<p><strong>Dlatego, aby zacz\u0105\u0107, nale\u017cy stworzy\u0107 zesp\u00f3\u0142 tymczasowy.<\/strong>. B\u0119dzie istnie\u0107 warunkowo przez p\u00f3\u0142 roku, maksymalnie rok, w zale\u017cno\u015bci od postawionego zadania, tylko po to, aby wyeliminowa\u0107 jedno ograniczenie, kt\u00f3re wybrali\u015bmy. P\u00f3\u017aniej umrze. Je\u015bli wybierzemy kolejny punkt, w kt\u00f3rym mocno boli, i zrozumiemy, \u017ce potrzebujemy dla niego tak\u017ce osobnego zespo\u0142u, wtedy znowu go stworzymy. Jednak na<\/p>\n<h3>Dlaczego potrzebny jest tymczasowy zesp\u00f3\u0142<\/h3>\n<p>\n<strong>Konflikt z bie\u017c\u0105cymi procesami<\/strong>. Transformacja DevOps to zmiana nie tylko technologii i narz\u0119dzi, z kt\u00f3rych korzystamy, ale tak\u017ce samego procesu pracy, my\u015blenia i warto\u015bci. Je\u015bli zesp\u00f3\u0142 b\u0119dzie pracowa\u0107 tak, jak ju\u017c jest przyzwyczajony, nie uda mu si\u0119 wypr\u00f3bowa\u0107 innych podej\u015b\u0107.<\/p>\n<p>Ci ludzie musz\u0105 \u017cy\u0107 wed\u0142ug innych zasad: ignorowa\u0107 wszystkie KPI w firmie, poniewa\u017c staraj\u0105 si\u0119 pracowa\u0107 w inny spos\u00f3b. Tymczasowe zespo\u0142y nie b\u0119d\u0105 sk\u0142ada\u0107 wniosk\u00f3w o serwery, lecz bezpo\u015brednio zwr\u00f3c\u0105 si\u0119 do dzia\u0142u, kt\u00f3ry nimi zarz\u0105dza, z \u017c\u0105daniem dostarczenia im jako pierwszym tego, czego potrzebuj\u0105, poniewa\u017c to zadanie ma priorytet i poniewa\u017c pr\u00f3buj\u0105 \u017cy\u0107 inaczej. Zesp\u00f3\u0142 ma pe\u0142ny konflikt ze wszystkimi bie\u017c\u0105cymi procesami. Aby istniej\u0105ce metody pracy nie przeszkadza\u0142y im teraz, a oni nie przeszkadzali innym, izolujemy tych ludzi, tworz\u0105c osobny zesp\u00f3\u0142.<\/p>\n<p><strong>Unikanie biurokracji w eksperymentach<\/strong>. W tymczasowych zespo\u0142ach nie ma biurokracji, nie wype\u0142niaj\u0105 raport\u00f3w dotycz\u0105cych przepracowanych godzin, nie rozliczaj\u0105 si\u0119 z mened\u017cerami. To ca\u0142kowicie odmienny \u015bwiat, w kt\u00f3rym ludzie \u017cyj\u0105 i my\u015bl\u0105 inaczej i zajmuj\u0105 si\u0119 zupe\u0142nie innymi rzeczami. Nie trzeba im w tym dodatkowo przeszkadza\u0107.<\/p>\n<p><strong>Nieprzerwana praca nad us\u0142ug\u0105<\/strong>. W pierwszym punkcie wybrali\u015bmy co\u015b, na czym b\u0119dziemy eksperymentowa\u0107. Eksperymenty i poszukiwanie lepszych sposob\u00f3w pracy to dobrze, ale chcemy te\u017c realizowa\u0107 funkcje. Je\u015bli ca\u0142y zesp\u00f3\u0142 zamiast funkcji zajmie si\u0119 transformacj\u0105, zaczniemy traci\u0107 dochody, b\u0142\u0119dy b\u0119d\u0105 d\u0142ugo wisie\u0107 - tego nie potrzebujemy. Utworzenie tymczasowego zespo\u0142u pozwala na eksperymentowanie, nie zatrzymuj\u0105c jednocze\u015bnie pracy nad produktem.<\/p>\n<p><strong>Nie traci\u0107 czasu na zadania robocze<\/strong>. To znowu o produkcie. Wymaga du\u017co czasu, aby zesp\u00f3\u0142 spr\u00f3bowa\u0142 innych narz\u0119dzi i tym podobnych. Aby ludzie nauczyli si\u0119 narz\u0119dzi, zacz\u0119li je wdra\u017ca\u0107 i normalnie u\u017cywa\u0107, potrzeba co najmniej p\u00f3\u0142 roku. Je\u015bli b\u0119d\u0105 zajmowa\u0107 si\u0119 jeszcze i produktem, to p\u00f3\u0142 roku rozci\u0105gnie si\u0119 kosmicznie. Je\u015bli ludzie zajmuj\u0105 si\u0119 produktem, zn\u00f3w pracuj\u0105 ze starymi procesami \u2014 tego nie potrzebujemy.<\/p>\n<p>Dlatego z r\u00f3\u017cnych dzia\u0142\u00f3w wyodr\u0119bniamy ludzi do osobnego zespo\u0142u, kt\u00f3ry zajmie si\u0119 transformacj\u0105 us\u0142ugi. W rezultacie us\u0142uga dzia\u0142a, rozwija si\u0119 i jednocze\u015bnie przeprowadzamy na niej pewne eksperymenty.<\/p>\n<blockquote><p>Tymczasowy zesp\u00f3\u0142 zajmuje si\u0119 tylko transformacj\u0105 DevOps \u2014 likwidacj\u0105 ogranicze\u0144, kt\u00f3re znale\u017ali\u015bmy, i niczym wi\u0119cej.<\/p><\/blockquote>\n<p>\n<strong>Zesp\u00f3\u0142 sk\u0142ada si\u0119 z uniwersalnych ludzi<\/strong>. Oznacza to, \u017ce wzi\u0119li\u015bmy nie tylko programist\u00f3w. Nie przyszli\u015bmy do us\u0142ugi i nie zabrali\u015bmy stamt\u0105d p\u00f3\u0142 zespo\u0142u \u2014 nie, wzi\u0119li\u015bmy <strong>ludzi z r\u00f3\u017cnych dzia\u0142\u00f3w<\/strong>. Kilka punkt\u00f3w temu znale\u017ali\u015bmy r\u00f3\u017cne dzia\u0142y i r\u00f3\u017cnych pracownik\u00f3w, kt\u00f3rzy maj\u0105 zwi\u0105zek z transformowan\u0105 us\u0142ug\u0105. Z nich tworzymy zesp\u00f3\u0142, poniewa\u017c musi by\u0107 uniwersalny \u2014 b\u0119dziemy zmienia\u0107 zar\u00f3wno proces testowania, jak i proces rozwoju oraz proces obs\u0142ugi us\u0142ugi. Potrzebne s\u0105 r\u00f3\u017cne kompetencje.<\/p>\n<p>Zazwyczaj wyodr\u0119bniamy programist\u0119, testera i in\u017cyniera \u2014 ka\u017cdego po jednym, a wsp\u00f3lnie z nimi wymy\u015blamy rozwi\u0105zanie, kt\u00f3re pozwala \u017cy\u0107 inaczej.<\/p>\n<p><strong>Wskazane by by\u0142o, aby ci ludzie mieli autorytet w organizacji<\/strong>. Mo\u017cliwe, \u017ce trzeba b\u0119dzie wzi\u0105\u0107 jednego konserwatyst\u0119, cho\u0107 nie chcemy. Je\u015bli mamy du\u017c\u0105 firm\u0119, daleko nie wszyscy uwierz\u0105 w nasz pomys\u0142, a kto\u015b mo\u017ce podk\u0142ada\u0107 k\u0142ody, na przyk\u0142ad nie przydzielaj\u0105c \u015brodowiska testowego. Tutaj b\u0119dzie potrzebny 'autorytet' \u2014 szanowany cz\u0142owiek z du\u017cym do\u015bwiadczeniem, kt\u00f3ry zdoby\u0142 dobre relacje z kolegami. Autorytet pracownika w zespole u\u0142atwi zadanie i prac\u0119 tymczasowego zespo\u0142u. Ludzie pomy\u015bl\u0105:<\/p>\n<p><em> \u2014 Aha, ten fajny go\u015b\u0107, kt\u00f3rego wszyscy znamy i lubimy, wpasowa\u0142 si\u0119 \u2014 chyba w DevOps jest co\u015b, na co warto zwr\u00f3ci\u0107 uwag\u0119!<\/em><\/p>\n<h2>Ustalamy cel<\/h2>\n<p>\nZebrali\u015bmy ludzi, wybrali\u015bmy us\u0142ug\u0119, przyjrzeli\u015bmy si\u0119 ograniczeniom, okre\u015blili\u015bmy, na jakich ludzi wp\u0142yniemy. Teraz trzeba ustawi\u0107 cel i powinien by\u0107 on konkretny <strong>zgodnie z SMART<\/strong> \u2014 wszystko, jak lubimy.<\/p>\n<p><strong>Specyficzny \u2014 konkretna<\/strong>.<\/p>\n<p><strong>Mierzalny \u2014 mierzalna<\/strong>. To jest bardzo wa\u017cny punkt SMART. Je\u015bli czego\u015b nie mo\u017cesz zmierzy\u0107, nie mo\u017cesz tego zmieni\u0107 ani zrozumie\u0107, co i jak poprawi\u0142e\u015b lub pogorszy\u0142e\u015b.<\/p>\n<p><strong>Osi\u0105galny \u2014 osi\u0105galna<\/strong>. Ustal swoje specyfikacje. Je\u015bli jeste\u015b firm\u0105 z du\u017cym do\u015bwiadczeniem i wieloma obowi\u0105zkami, kt\u00f3ra wydaje wersj\u0119 produktu raz w roku, nie b\u0119dziesz w stanie w ci\u0105gu p\u00f3\u0142 roku osi\u0105gn\u0105\u0107 wydania nowych wersji produktu co godzin\u0119. To nie jest mo\u017cliwe. Dlatego wyznaczaj realistyczny cel, kt\u00f3ry mo\u017cna osi\u0105gn\u0105\u0107 w rozs\u0105dnym czasie.<\/p>\n<p><strong>Relewantny \u2014 relewantna. <\/strong>Eliminujemy tylko te ograniczenia, kt\u00f3re rzeczywi\u015bcie wp\u0142ywaj\u0105 na nasze obecne cele.<\/p>\n<p><strong>Ograniczone czasowo \u2014 ograniczona w czasie<\/strong>. Brak deadline'u spowoduje, \u017ce zesp\u00f3\u0142 zajmie si\u0119 wszystkim: testowaniem 15 technologii zamiast 3, pisaniem ogromnych raport\u00f3w, przeprowadzaniem bezu\u017cytecznych bada\u0144, dopracowywaniem swojej realizacji do perfekcji, kiedy cel ju\u017c zosta\u0142 osi\u0105gni\u0119ty.<\/p>\n<p>Cel definiujemy przy pomocy Value Stream Map \u2014 znowu zbieramy wszystkich ludzi i rysujemy. Ale tym razem na podstawie wcze\u015bniejszej Value Stream Map rysujemy to, co chcemy osi\u0105gn\u0105\u0107.<\/p>\n<p><img decoding=\"async\" alt=\"Jak rozpocz\u0105\u0107 transformacj\u0119 DevOps\" src=\"\/wp-content\/uploads\/2019\/05\/5deb75c71d7c2499f13b20f85c5559dd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWybieramy jedno ograniczenie, kt\u00f3re b\u0119dziemy w\u0142a\u015bnie teraz eliminowa\u0107 \u2014 tym zajmie si\u0119 zesp\u00f3\u0142. Na przyk\u0142ad wzi\u0105\u0142em czas oczekiwania od gotowego wydania do jego wdro\u017cenia w produkcji \u2014 to najcz\u0119stsze ograniczenie, z kt\u00f3rym ludzie zwracaj\u0105 si\u0119 do konsultant\u00f3w.<\/p>\n<p>Na podstawie tego wyznaczamy zadanie: chcemy, aby czas oczekiwania mi\u0119dzy gotowym wydaniem a wdro\u017ceniem do u\u017cycia wynosi\u0142 maksymalnie godzin\u0119.<\/p>\n<p>Przyk\u0142ady zada\u0144.<\/p>\n<ul>\n<li>Skr\u00f3ci\u0107 Lead Time testowania z 4 dni do 1 godziny.<\/li>\n<li>Skr\u00f3ci\u0107 Value Added Time dla testowania z 2 dni do 3 godzin.<\/li>\n<li>Skr\u00f3ci\u0107 Lead Time wdro\u017cenia z 5 godzin do 10 minut.<\/li>\n<li>Zwi\u0119kszy\u0107 C\/A z 50% do 95%, czyli zwi\u0119kszy\u0107 liczb\u0119 funkcji, kt\u00f3re akceptuj\u0105 testerzy, inaczej m\u00f3wi\u0105c, poprawi\u0107 jako\u015b\u0107 pracy programist\u00f3w.<\/li>\n<\/ul>\n<p>Przyk\u0142ady zada\u0144 nie s\u0105 wymy\u015blone \u2014 opieraj\u0105 si\u0119 na pomiarach, kt\u00f3re wykonali\u015bmy, kiedy opracowywali\u015bmy Value Stream Map.<\/p>\n<p>Wyznaczamy podobne zadanie dla naszego zespo\u0142u z ograniczeniem czasowym. W zale\u017cno\u015bci od tego, jak dobrze wygl\u0105da sytuacja w twojej firmie, ustalacie r\u00f3\u017cne terminy. \u015arednio, na eliminacj\u0119 ograniczenia, gdy ludzie to robi\u0105 po raz pierwszy i nie wiedz\u0105 jeszcze, jakimi technologiami i jak konkretnie b\u0119d\u0105 rozwi\u0105zywa\u0107 problem, zwykle potrzeba p\u00f3\u0142 roku.<\/p>\n<h3>Skr\u00f3cone planowanie<\/h3>\n<p>\nTak, nasz zesp\u00f3\u0142 zosta\u0142 utworzony, ma cel, ludzie zaczynaj\u0105 pracowa\u0107. Wa\u017cnym punktem jest kr\u00f3tkie planowanie pracy: <strong>sprinty trwaj\u0105ce jeden-dwa tygodnie<\/strong>i nie wi\u0119cej, <strong>mierzalne poprawy<\/strong> co tydzie\u0144 i <strong>korekta kursu<\/strong>.<\/p>\n<p>Na przyk\u0142ad cz\u0119sto u\u017cywamy podej\u015bcia <strong>moving-moving<\/strong>, kiedy ca\u0142y zesp\u00f3\u0142 spotyka si\u0119 na pocz\u0105tku ka\u017cdego tygodnia, notuje w pliku, co ka\u017cdy b\u0119dzie robi\u0142. Po tygodniu sprawdzamy: co zosta\u0142o zrobione, a co nie, je\u015bli nie, to dlaczego, i zastanawiamy si\u0119, co robi\u0107 dalej.<\/p>\n<blockquote><p>Sprinty pozwalaj\u0105 na bie\u017c\u0105co korygowa\u0107 kurs.<\/p><\/blockquote>\n<p>\nPrzez tydzie\u0144 lub dwa pr\u00f3bujemy czego\u015b: technologii, podej\u015b\u0107, metod pracy, a potem zn\u00f3w mierzysz i patrzysz \u2013 czy przy takim podej\u015bciu jest lepiej czy gorzej? Je\u015bli gorzej, to znaczy, \u017ce idziemy w z\u0142ym kierunku, trzeba skorygowa\u0107 kurs: ustawi\u0107 inne zadanie, wzi\u0105\u0107 inn\u0105 technologi\u0119 lub co\u015b innego zrobi\u0107. Kr\u00f3tkie sprinty trwaj\u0105ce 1-2 tygodnie pozwalaj\u0105 na manewrowanie i w por\u0119 unika\u0107 z\u0142ych decyzji.<\/p>\n<h3>Dzielimy si\u0119 sukcesem<\/h3>\n<p>\nZesp\u00f3\u0142 osi\u0105ga jakie\u015b sukcesy, ma\u0142e lub du\u017ce \u2013 to niewa\u017cne, zawsze jest jaki\u015b wynik. O tym wyniku powinni wiedzie\u0107 wszyscy: zar\u00f3wno ci, kt\u00f3rzy s\u0105 zaanga\u017cowani w DevOps, jak i s\u0105siednie dzia\u0142y. W idealnym \u015bwiecie po\u017c\u0105dane by\u0142oby, aby to dotar\u0142o do wszystkich ludzi w firmie. <strong>Po co? Je\u015bli chcemy przekszta\u0142ci\u0107 nie cz\u0119\u015b\u0107 firmy, usun\u0105\u0107 nie jedno ograniczenie, ale wszystko, aby firma sta\u0142a si\u0119 elastyczna, a kod szybko dociera\u0142 do klienta i nic si\u0119 nie psu\u0142o, musimy sprawi\u0107, aby wszyscy byli lojalni wobec idei DevOps. Nie b\u0119dziesz w stanie zastosowa\u0107 podej\u015bcia do us\u0142ug i zespo\u0142\u00f3w, kt\u00f3re s\u0105 kategorycznie przeciwne.<\/strong>.<\/p>\n<p>Aby pojawi\u0142a si\u0119 lojalno\u015b\u0107, musimy wszystkim opowiada\u0107, \u017ce spr\u00f3bowali\u015bmy tego \u2013 mamy wynik, spr\u00f3bujcie te\u017c! To zwi\u0119kszy zainteresowanie i lojalno\u015b\u0107 wobec tego, czym si\u0119 zajmujemy, ludzie zaczn\u0105 pr\u00f3bowa\u0107 co\u015b robi\u0107 od razu. Jak pokazuje praktyka, kiedy opowiadamy, co pr\u00f3bowali\u015bmy i co osi\u0105gn\u0119li\u015bmy, inne zespo\u0142y zaczynaj\u0105 pyta\u0107, jak i co zrobili\u015bmy. Patrz\u0105 na realizacje, kod, dokumentacj\u0119, podchodz\u0105 z pytaniami i pr\u00f3buj\u0105 co\u015b zmieni\u0107 u siebie.<\/p>\n<p>M\u00f3wienie o tym, co si\u0119 uda\u0142o \u2013 jest wa\u017cne. Tak przekonasz do przej\u015bcia na wasz oboz konserwatyst\u00f3w, kt\u00f3rzy chcieli wszystko robi\u0107 po staremu, i przekszta\u0142cisz ich w innowator\u00f3w.<\/p>\n<blockquote><p>Wybieramy us\u0142ug\u0119<\/p><\/blockquote>\n<p><\/p>\n<h2>Podsumowuj\u0105c<\/h2>\n<p>\n<strong>, jako punkt wyj\u015bcia \u2013 miejsce, w kt\u00f3rym rozpoczniemy zmiany w firmie.<\/strong>, jako punkt odniesienia \u2014 miejsce, w kt\u00f3rym rozpoczniemy zmiany w firmie. <strong>Identifikujemy wszystkich, kt\u00f3rzy maj\u0105 jakikolwiek zwi\u0105zek z us\u0142ug\u0105<\/strong> i razem z nimi <strong>budujemy map\u0119 strumienia warto\u015bci<\/strong>, mierzymy i patrzymy, gdzie i jakie s\u0105 ograniczenia.<\/p>\n<p><strong>Tworzymy nowy zesp\u00f3\u0142 tymczasowy<\/strong>, kt\u00f3ry zajmie si\u0119 postawionym zadaniem. Na podstawie pomiar\u00f3w i mapy strumienia warto\u015bci <strong>rysujemy now\u0105 map\u0119, na kt\u00f3rej wyr\u00f3\u017cniamy to ograniczenie, kt\u00f3re b\u0119dziemy rozwi\u0105zywa\u0107<\/strong>. Na podstawie tego ograniczenia <strong>ustalamy zadanie<\/strong>, kt\u00f3rym b\u0119dzie si\u0119 zajmowa\u0142 zesp\u00f3\u0142. Zadanie musi by\u0107 <strong>koniecznie SMART<\/strong> \u2014 konkretne, mierzalne, odpowiednie do bie\u017c\u0105cych zada\u0144 i ograniczone czasowo.<\/p>\n<p><strong>Powtarzamy proces<\/strong>, a\u017c przekszta\u0142cimy wszystkie nasze us\u0142ugi do wymaganej postaci i wyeliminujemy wszelkie ograniczenia.<\/p>\n<h2>Bonus. Przydatne materia\u0142y<\/h2>\n<p>\nDla tych, kt\u00f3rzy postanowili zaj\u0105\u0107 si\u0119 DevOps na w\u0142asn\u0105 r\u0119k\u0119.<\/p>\n<h4>Projekt \"Feniks\"<\/h4>\n<p>\nOryginalny tytu\u0142 \u2014 \u201eThe Phoenix Project: A Novel about It, Devops, and Helping Your Business Win\u201d. To powie\u015b\u0107 o DevOps \u2014 historia o tym, jak pracownik zosta\u0142 szefem dzia\u0142u, kt\u00f3ry zawsze by\u0142 w ogniu. Nowemu szefowi postawiono zadanie:<\/p>\n<p><i> \u2014 Masz kilka lat, aby wszystko naprawi\u0107, aby\u015bmy mogli w ko\u0144cu szybko i efektywnie dostarcza\u0107 nasz produkt naszym klientom.<\/i><\/p>\n<p>\u201eProjekt Feniks. Powie\u015b\u0107 o tym, jak DevOps zmienia \u017cycie na lepsze\u201d \u2014 ksi\u0105\u017cka dla wszystkich mened\u017cer\u00f3w, poniewa\u017c to w\u0142a\u015bnie ci ludzie podejmuj\u0105 decyzje o tym, co dzieje si\u0119 w firmie. Je\u015bli jeste\u015b in\u017cynierem lub programist\u0105 i chcesz, aby w twojej firmie nast\u0105pi\u0142y zmiany i transformacja \u2014 kup t\u0119 ksi\u0105\u017ck\u0119 i podaruj j\u0105 kierownictwu. Ta powie\u015b\u0107 wszystko wyja\u015bnia, a czyta si\u0119 j\u0105 szybko i \u0142atwo.<\/p>\n<h4>Podr\u0119cznik DevOps<\/h4>\n<p>\nTroch\u0119 trudniejsza ksi\u0105\u017cka. Wydana kilka lat temu w j\u0119zyku angielskim pod tytu\u0142em \u201eThe DevOps Handbook How to create world\u2011class agility, reliability, and security in Technology organizations\u201d, ale teraz jest ju\u017c tak\u017ce w j\u0119zyku rosyjskim. To prawdziwy <strong>podr\u0119cznik \u2014 praktyczny przewodnik<\/strong>: jak przeprowadza\u0107 pomiary, co to jest mapa strumienia warto\u015bci i po co jest potrzebna, dok\u0105d warto zmierza\u0107, w jakiej kolejno\u015bci. Ksi\u0105\u017cka jest dla tych, kt\u00f3rzy chc\u0105 wszystko zrobi\u0107 samodzielnie. Najwa\u017cniejsze, \u017ce zawiera przyk\u0142ady do\u015bwiadcze\u0144 innych firm.<\/p>\n<p>Na przyk\u0142ad, przedstawiono tam, jak jedna firma stworzy\u0142a map\u0119 strumienia warto\u015bci i zrozumia\u0142a, \u017ce jej ograniczeniem nie jest produkt, a fakt, \u017ce kasjer chodzi z sklepu do s\u0105siedniego biura, aby skorzysta\u0107 z tego produktu. Zamiast rozwi\u0105zywa\u0107 problem z programem, po prostu zakupili tablety dla swoich sprzedawc\u00f3w, dzi\u0119ki czemu nikt ju\u017c nigdzie nie chodzi, a wszystkie dzia\u0142ania wykonuj\u0105 w miejscu pracy. Wniosek: map\u0119 strumienia warto\u015bci mo\u017cna stosowa\u0107 nie tylko w oprogramowaniu, ale i we wszystkich procesach w organizacji.<\/p>\n<h4>Przyspiesz<\/h4>\n<p>\nPe\u0142ny tytu\u0142: \u201eAccelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations\u201d. To kolejny poziom \u2014 hardcore. Ksi\u0105\u017cka ukaza\u0142a si\u0119 w zesz\u0142ym roku, na razie tylko w j\u0119zyku angielskim i dotyczy bada\u0144. Autorzy \u2014 Nicole Forsgren, Jez Humble i Gene Kim \u2014 przez wiele lat stosowali r\u00f3\u017cne praktyki w r\u00f3\u017cnych firmach i badali, jakie praktyki, w jaki spos\u00f3b i na co wp\u0142ywaj\u0105.<\/p>\n<p>W drugim rozdziale, po\u015bwi\u0119conym pomiarom, wspomniano o mapie strumienia warto\u015bci, tych metrykach, o kt\u00f3rych m\u00f3wi\u0142em oraz wielu innych, a tak\u017ce szczeg\u00f3\u0142owo opisano proces pomiar\u00f3w. Autorzy przeprowadzaj\u0105 pomiary za pomoc\u0105 kwestionariuszy i samodzielnego \u015bledzenia zada\u0144. Dok\u0142adnie opisano, kt\u00f3re metryki nale\u017cy w\u0142a\u015bciwie mierzy\u0107, a kt\u00f3re nie, oraz b\u0142\u0119dy ludzkie w pomiarach. Je\u015bli masz trudno\u015bci z pomiarami, zapoznaj si\u0119 z drugim rozdzia\u0142em ksi\u0105\u017cki \u201eAccelerate\u201d. Je\u015bli twoja dru\u017cyna ma wiele praktyk, ale nie wiesz, kt\u00f3re zastosowa\u0107 teraz, kt\u00f3re p\u00f3\u017aniej, kt\u00f3re naprawd\u0119 dzia\u0142aj\u0105, a kt\u00f3re nie \u2014 przeczytaj, wszystko jest opisane w ksi\u0105\u017cce.<\/p>\n<blockquote><p>Transformacja to pytanie na styku DevOps i zarz\u0105dzania. Gdzie\u015b w tej samej przestrzeni przeci\u0119cia rozwoju, eksploatacji i testowania znajduj\u0105 si\u0119 tematy, kt\u00f3re staramy si\u0119 omawia\u0107 na <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow-rit\/2019\">DevOpsConf<\/a><\/noindex>, ta sama integracja jest potrzebna r\u00f3wnie\u017c do tworzenia jako\u015bciowego produktu \u2013 g\u0142\u00f3wnego tematu <noindex><a rel=\"nofollow\" href=\"http:\/\/qualityconf.ru\/2019\">QaulityConf<\/a><\/noindex>. Zarz\u0105dzanie na festiwalu <noindex><a rel=\"nofollow\" href=\"https:\/\/ritfest.ru\/2019\">RIT++<\/a><\/noindex> znajduje si\u0119 <noindex><a rel=\"nofollow\" href=\"https:\/\/whalerider.ru\/moscow-rit\/2019\">Whale Rider<\/a><\/noindex> \u2014 to znaczy, wszystkie pomys\u0142y na transformacj\u0119 s\u0105 tam. Do\u0142\u0105cz do nas 27 i 28 maja, b\u0119dziemy integrowa\u0107 si\u0119 i transformowa\u0107.<\/p><\/blockquote>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/448490\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 DevOps, \u0442\u043e \u0432\u043e\u0442 \u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430. DevOps \u2014 \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0430\u043a\u0442\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0442 \u0441\u0442\u0440\u0430\u0445\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0438 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0431\u043e\u0435\u0432 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u041f\u041e. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043e\u043d\u0438 \u0436\u0435 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044e\u0442 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0445\u043e\u0434\u0430 \u043d\u0430 \u0440\u044b\u043d\u043e\u043a \u2014 \u043f\u0435\u0440\u0438\u043e\u0434 \u043e\u0442 \u0438\u0434\u0435\u0438 \u0434\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0434\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0431\u0438\u0437\u043d\u0435\u0441-\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u044b. \u041a\u0430\u043a \u043d\u0430\u0447\u0430\u0442\u044c DevOps \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e? [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25773,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-34157","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 DevOps, \u0442\u043e \u0432\u043e\u0442 \u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430. DevOps \u2014 \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0430\u043a\u0442\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0442 \u0441\u0442\u0440\u0430\u0445\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0438 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0431\u043e\u0435\u0432 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u041f\u041e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-nachat-devops-transformatsiyu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043d\u0430\u0447\u0430\u0442\u044c DevOps \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 DevOps, \u0442\u043e \u0432\u043e\u0442 \u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430. DevOps \u2014 \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0430\u043a\u0442\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0442 \u0441\u0442\u0440\u0430\u0445\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0438 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0431\u043e\u0435\u0432 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u041f\u041e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-nachat-devops-transformatsiyu\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:56:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:56:43+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Jak rozpocz\u0105\u0107 transformacj\u0119 DevOps | ProHoster","description":"Je\u015bli nie rozumiesz, czym jest DevOps, oto kr\u00f3tka \u015bci\u0105gawka. DevOps to zestaw praktyk, kt\u00f3re zmniejszaj\u0105 obawy in\u017cynier\u00f3w i skracaj\u0105 liczb\u0119 awarii w produkcji oprogramowania.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-nachat-devops-transformatsiyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043d\u0430\u0447\u0430\u0442\u044c DevOps \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e | ProHoster","og:description":"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 DevOps, \u0442\u043e \u0432\u043e\u0442 \u043a\u0440\u0430\u0442\u043a\u0430\u044f \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430. DevOps \u2014 \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0430\u043a\u0442\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u044e\u0442 \u0441\u0442\u0440\u0430\u0445\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0438 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0431\u043e\u0435\u0432 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u041f\u041e.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-nachat-devops-transformatsiyu","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:56:43+00:00","article:modified_time":"2019-10-31T18:56:43+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34157","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 18:08:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:27:29","updated":"2026-01-21 18:08:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/34157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=34157"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/34157\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/25773"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=34157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=34157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=34157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}