Przyjęcie kultury metodyki DevOps
Zwiększanie możliwości zespołów programistycznych i operacyjnych w celu ciągłego ulepszania projektu i procesów systemowych przez współpracę, wspólną odpowiedzialność i własność. |
---|
DevOps to społeczność praktyk, w której różnorodność perspektyw i umiejętności napędza jedną misję. Zespoły muszą wspierać wspólne środowisko wiedzy zamiast uczenia się silosowego. Użyj funkcji udostępnionych, aby dążyć do przezwyciężenia ograniczeń zasobów.
Dobra kultura DevOps rozwija się na wspólną odpowiedzialność. Zespoły programistyczne i operacyjne powinny dostosować swoje cele i priorytety do oczekiwań swoich klientów i zachować na uwadze kwestie biznesowe. Zespół programistyczny powinien zaangażować zespół operacyjny w pętli opinii, aby ulepszenia zostały napędzane jako nadrzędne, a inne zespoły również korzystają. Z drugiej strony zespoły operacyjne są odpowiedzialne za osiągnięcie sukcesu zespołu deweloperów w wynikach biznesowych przez udostępnianie zasobów i opinii, które są istotne dla obciążenia.
W tym samym czasie praktyki DevOps stosują jasne linie własności i odpowiedzialność dla każdego zespołu. Niezależnie od tego, gdzie działa aplikacja, zespół ds. obciążeń jest odpowiedzialny za aplikację.
Metodyka DevOps optymalizuje zadania operacyjne, aby były skuteczne, ale nie uciążliwe. Aby czerpać pełną korzyść z metodyki DevOps, kultura powinna optymalizować procesy za pośrednictwem technologii i mieć procesy dla osób w organizacji w celu promowania przejrzystej komunikacji.
Przykładowy scenariusz
Dział Kadr (HR) firmy Contoso rozpoczyna projekt tworzenia nowej aplikacji biznesowej (LOB) na potrzeby wewnętrznego użytku działu. Aplikacja jest obecnie w fazie planowania, nie rozpoczęto jeszcze żadnych prac projektowych ani wdrożeniowych.
Wydajna współpraca
Użyj typowych systemów i narzędzi, które promują środowisko współpracy na potrzeby komunikacji i śledzenia postępu.
Typowe narzędzia i procesy umożliwiają komunikację przezroczystą. Zarówno zespoły programistyczne, jak i zespoły operacyjne korzystają z świadomości sytuacyjnej w różnych środowiskach, typowych problemów z pomocą techniczną oraz ogólnych wyzwań i zwycięstw.
Zespoły będą już znane z istniejących ścieżek eskalacji, jeśli wystąpi zdarzenie.
Wspólna lista prac sprawia, że priorytety, takie jak praca nad nowymi funkcjami lub naprawianie usterek, jest jasne.
Wyzwanie firmy Contoso
- Firma Contoso ma trzy zespoły techniczne, które będą zaangażowane w opracowywanie i konserwację nowej aplikacji: programowanie, testowanie i operacje. Obecnie nie ma standardowych narzędzi do śledzenia komunikacji i projektów, które są stale używane w tych zespołach.
- Historycznie każdy zespół był w stanie wybrać wybrane narzędzia. Niektóre używają usługi Slack, podczas gdy inne używają usługi Microsoft Teams do obsługi wiadomości wewnętrznych. Niektóre używają usługi Azure DevOps (ADO), a inne używają programu Excel do śledzenia zadań, a każdy zespół używa innego repozytorium dokumentów od reszty w celu udostępniania procedur reagowania na informacje i zdarzenia.
- W poprzednich projektach ogólna organizacja techniczna zmagała się z komunikacją i współpracą ze względu na różne używane narzędzia. W przyszłości firma Contoso HR chce zwiększyć produktywność i uniknąć sytuacji, które mogłyby spowolnić projekt, podobnie jak te, które napotkano wcześniej.
Stosowanie podejścia i wyników
- Potencjalni klienci z zespołów technicznych spotkali się ze sponsorami projektu, aby wybrać standardowe narzędzia, które będą używane w przyszłości. Grupa wybrała ADO do zarządzania listą prac, repozytorium kodu i potokiem wdrażania. Wybrali również usługę Microsoft Teams na potrzeby komunikacji i współpracy.
- Użycie wspólnego zestawu narzędzi umożliwia zespołom programistycznym, operacyjnym i testowym śledzenie stanu różnych środowisk, typowych problemów z projektami i osiągnięciami zespołu. Ponadto zespoły mogą uzyskiwać dostęp do informacji o ustalonych ścieżkach eskalacji w przypadku zdarzeń z jednej dobrze znanej lokalizacji.
- Wspólna lista prac pomaga również w jednolitym planie i zachowaniu zgodności z priorytetami, takimi jak opracowywanie nowych funkcji lub naprawianie usterek.
Obsługa ciągłego ulepszania
Tworzenie uczenia ciągłego i myślenia eksperymentowania w całym cyklu programowania. Obsługa udostępniania wiedzy w zespołach i obsługa dokumentacji w celu ponownego użycia. I przeprowadzaj analizy bez winy i przeglądy po wydaniu i/lub po zdarzeniu.
Dzięki mechanizmom eksperymentowania, takim jak testowanie A/B i opracowywanie dowodów koncepcji, możesz zachęcić innowacje przy jednoczesnym zachowaniu niskich kosztów.
Podziel się wiedzą dzięki współpracy, która sprawia, że zespół biegły w podejściach projektowych, narzędziach i procesach.
Wykonywanie retrospektyw po projekcie pomaga zidentyfikować obszary poprawy i świętować sukces.
Wyzwanie firmy Contoso
- Aby dodatkowo ułatwić udostępnianie informacji i wspierać kulturę współpracy i przejrzystości, zespół chciałby mieć scentralizowane i łatwo dostępne źródło prawdy dla dokumentacji projektu. Między innymi byłoby to pomocne, jeśli nowy deweloper dołączy do zespołu i będzie musiał szybko przyspieszyć pracę z projektem.
- Szczególnie interesujące dla firmy Contoso HR jest zapewnienie, że wnioski ze zdarzeń, które mają wpływ na dostępność aplikacji, są przechwytywane i udostępniane w całej organizacji technicznej, aby pomóc w przyszłych zdarzeniach i zapobiec cyklowi, jak to możliwe.
- Aby uniknąć powtarzających się błędów podczas projektowania środowiska użytkownika aplikacji, zespół chce również użyć bardziej elastycznego podejścia, które pozwoliłoby im wziąć pod uwagę rzeczywiste opinie użytkowników.
Stosowanie podejścia i wyników
- Zespół tworzy witrynę typu wiki udostępniania wiedzy w usłudze ADO, w której zostaną opublikowane wszystkie specyfikacje projektu wraz ze wszystkimi aktywnymi procedurami operacyjnymi, planami reagowania na zdarzenia i wynikami retrospektywnymi.
- Wykonywanie bez winy retrospektyw po zdarzeniach i każdej iteracji rozwoju i dokumentowanie informacji w witrynie wiki pomaga zespołowi projektu zidentyfikować obszary poprawy i świętowania sukcesu.
- Zespół przyjął eksploracyjne podejście do projektowania środowiska użytkownika dla nowej aplikacji, wykorzystując testowanie A/B w celu znalezienia najlepszego środowiska użytkownika spośród kilku wariantów proponowanych przez konsultantów UX, biorąc pod uwagę opinie użytkowników w celu podejmowania decyzji opartych na danych.
Kodyfikacja procedur rozwoju i operacji
Ustaw standardy dla wszystkich procedur programistycznych i operacyjnych oraz przejrzyj je i zweryfikuj je w regularnym tempie. Procedury te obejmują rutynowe zadania, procesy poza pasmem, ćwiczenia awaryjne i sytuacje, wybór narzędzi, procedury monitorowania, plany umiejętności, a nawet komunikację z uczestnikami projektu i ujawnieniem klientów. Bądź celowy i wyraźny w swoich decyzjach.
Standardy zwiększają przewidywalność operacji i umożliwiają skalowalność procesów i praktyk. Walidacja standardów to doskonały sposób na czerpanie punktów poprawy.
Przygotuj się na sytuacje awaryjne i rekonwalescencji, przeprowadzając regularne ćwiczenia.
Wykonaj z precyzją i włącz ład, aby zapobiec anomaliom, które prowadzą do ryzyka.
Wyzwanie firmy Contoso
- Jednym z wyzwań, które w przeszłości wpływały na wydajność i jakość danych wyjściowych zespołu deweloperów, jest brak standaryzacji i spójności w bazie kodu. Na przykład brak jednolitości konwencji nazewnictwa lub użycie typowych wzorców oprogramowania utrudnia członkom zespołu zrozumienie kodu i wydajność.
- Ponadto bez właściwie udokumentowanego wspólnego podejścia do operacji personel operacyjny może użyć różnych metod, aby osiągnąć ten sam cel, co prowadzi do nieefektywności i nieporozumień.
- Motywowane sukcesem, w wyniku którego zaimplementowano inne ulepszenia metodyki DevOps, firma Contoso HR zdecydowała się rozwiązać ten problem w ramach następnego cyklu programowania.
Stosowanie podejścia i wyników
- Zespół programistyczny spotyka się podczas cyklu programowania, aby uzgodnić zestaw standardów programowania do wdrożenia. Będą dokumentować dokonane wybory i zaczną wymuszać je podczas przeglądów kodu i za pomocą narzędzi. Przeglądają tematy takie jak: Konwencje formatowania i nazewnictwa kodu, obsługa błędów, kontrola wersji i rozwiązania w zakresie zabezpieczeń. Zespół planuje zwrócić szczególną uwagę na metryki jakości i raporty generowane w usłudze ADO w celu oszacowania wpływu tych zmian na jakość i produktywność, dzięki czemu mogą udowodnić wartość tego rodzaju ulepszeń metodyki DevOps dla ich zespołu zarządzającego.
- Podobnie zespół operacyjny poświęca czas w tym samym okresie, aby przedłużyć istniejącą dokumentację rutynowego zarządzania i rozwiązywania problemów oraz opublikować je w witrynie typu wiki. W przyszłości wiki będzie służyć jako jedno źródło prawdy, oszczędzając czas i energię, które w przeciwnym razie zostaną spędzone w poszukiwaniu informacji.