Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Organizacje przedsiębiorstwa stosują rozwiązania Agile z wielu powodów. Główne spośród tych powodów to:
- Skracanie czasu na rynek i przyspieszanie dostarczania produktów
- Zwiększanie skuteczności organizacji w celu zarządzania zmieniającymi się priorytetami
- Zwiększanie przewidywalności jakości oprogramowania i dostarczania
- Zwiększanie widoczności projektu i zmniejszanie ryzyka projektu
W miarę rozwoju organizacji chcesz skalować swoje praktyki, aby zachować elastyczność i osiągnąć zmieniające się cele. W tym celu należy wziąć pod uwagę te dwa wytyczne:
- Jak wygląda sukces, twoje zespoły i twoja organizacja? Co cię najbardziej interesuje: dostarczanie na czas? Jakość produktu? Przewidywalność? Zadowolenie klientów?
-
Wróć do pierwszych zasad i wróć do zasad i wspólnych wartości wyliczonych w manifeście Agile Jak zauważył Ken Schwaber, jeden z założycieli Scrum:
- "Wartości i zasady mogą być stosowane na różną skalę, ale praktyki są zależne od kontekstu."
- "Zachowaj wartości, zachowaj zasady i pomyśl o sobie. Podstawowym założeniem Agile jest to, że ludzie wykonujący pracę to ludzie, którzy mogą najlepiej dowiedzieć się, jak to zrobić."
Tworzenie rytmu i przepływu
Przyjmując współdzieloną kadencję i zestaw okresowych komunikacji, tworzysz stały przepływ działań w całej organizacji. Praktyki, które ułatwiają tworzenie rytmu i przepływu w większych organizacjach, obejmują:
- Wspólna kadencja: Regularne sprinty i wydania określają rytm działalności. Wspólne tempo pracy wszystkich zespołów pomaga we wszystkich działaniach koordynacyjnych i współpracownych.
- Komunikacja Sprintów: Aby zapewnić organizacji i wszystkim zespołom informacje o postępach i planach zespołów funkcjonalnych, każdy zespół funkcjonalny może udostępnić podsumowanie poprzednich wyników sprintu i bieżących planów sprintu za pośrednictwem platform cyfrowych, takich jak Microsoft Teams, Slack lub e-mail.
- Pokazy przebiegu i filmy wideo: utwórz szybkie 2-3-minutowe filmy wideo ilustrujące nowe funkcje tworzone przez zespół. Udostępniaj linki do takich filmów w komunikacji sprintu lub na kanałach zespołu.
- Spotkania pokazowe: aby poinformować inne zespoły i poprosić o opinię na temat oprogramowania w trakcie tworzenia, zespoły prezentują pracę, którą ukończyły. Przeprowadzaj te spotkania w regularnych odstępach czasu w całym cyklu życia projektu i otwieraj je wszystkim zainteresowanym stronom.
- Tablice wyników metryk jakości: Aby zapewnić wgląd w jakość produktu i zachęcić do utrzymywania dyscypliny w zakresie błędów, okresowo udostępniaj metryki jakości w organizacji. Te metryki mogą obejmować aktywne błędy dla zespołu zajmującego się daną funkcją, trendy błędów, pokrycie testów i współczynniki ucieczki defektów.
- Spotkania i ceremonie koordynacji: Organizuj spotkania, które koordynują zespoły w regularnych odstępach czasu lub tak często, jak to konieczne, aby rozwiązać nakładające się cele, zależności i zagrożenia. Rozważ wdrożenie Scrum of Scrums lub sesji planowania Program Increment (PI).
Interakcja z klientami
Angażowanie klientów w całym cyklu życia produktu jest podstawową zasadą Agile. Umożliwianie każdemu zespołowi bezpośredniej interakcji z klientami w zestawach funkcji, których są właścicielami.
-
Ciągłe pętle feedbacku: zbudujcie systemy opinii klientów. Pętle te mogą mieć wiele form:
- Platformy głosowe klientów: ułatwia klientom przekazywanie opinii, dodawanie pomysłów i głosowanie nad funkcjami nowej generacji za pośrednictwem dedykowanych portali, forów społeczności lub zintegrowanych systemów opinii.
- Opinie w produkcie: zaimplementuj przyciski opinii w produkcie i dane telemetryczne, aby zebrać szczegółowe informacje o środowisku produktu i określonych funkcjach.
- Pokazy klientów i testowanie użytkowników: Zaplanuj regularne pokazy, które proszą o opinie klientów i przeprowadzają sesje testowania użyteczności, aby ułatwić kształtowanie produktów nowej generacji i śledzenie tworzenia aplikacji, które klienci chcą wykorzystać.
- Programy dla wczesnych użytkowników i programy beta: Twórz programy z myślą, że wszystkie zespoły mogą zechcieć uczestniczyć w pewnym momencie. Wcześni użytkownicy uzyskują dostęp do wczesnych wersji działającego oprogramowania i dostarczają cenne opinie. Często te programy działają, włączając określone flagi funkcji dla listy wczesnych użytkowników.
- Decyzje oparte na danych: znajdź sposoby instrumentowania produktu w celu uzyskania przydatnych danych i przetestowania różnych hipotez. Dążenie do przyjaznej dla eksperymentów kultury, która świętuje uczenie się i podejmowanie decyzji opartych na dowodach.
Zwiększanie widoczności projektu
Im więcej wglądu Ty i Twoje zespoły macie w cel, wizję i postępy pracy, tym lepiej możecie zmniejszać ryzyko i zarządzać zależnościami.
- Struktura zespołu: bez względu na to, jak duża jest twoja organizacja, struktura organizacji wokół małych zespołów od 6 do 9 osób jest skalowana skutecznie. Utwórz pionowe, autonomiczne zespoły cech, pogrupowane w obszarach zarządzania portfolio.
- Struktura podziału pracy: Podział dużych celów, funkcji lub wymagań na mniejsze pozostaje podstawą zarządzania projektami. Dzieląc pracę na zadania o podobnej wielkości, zespoły mogą lepiej oszacować i identyfikować czynniki ryzyka i zależności.
- Skonsolidowane widoki i pulpity nawigacyjne: użyj narzędzi do śledzenia online, aby agregować pracę i zdobywać wiedzę między zespołami. Twórz pulpity nawigacyjne w czasie rzeczywistym, aby pokazywać postęp, trendy i kluczowe wskaźniki efektywności przy użyciu usług Azure DevOps Analytics.
- Przeglądy doświadczenia i projektowania: Organizuj te spotkania przed rozpoczęciem opracowywania funkcji, aby kształcić przywództwo w scenariuszach i priorytetach, zbierać opinie, ustawiać oczekiwania i wyświetlać wszelkie problemy między zespołami dotyczące tej funkcji.
Zwiększanie produktywności pracowników
Konkretne praktyki agile, które dobrze skaluje się i prowadzą do szczęśliwszych, zaangażowanych i produktywnych pracowników, obejmują:
- Osadzone przywództwo i bezpieczeństwo psychologiczne: Umożliwianie zespołom i liderom w organizacji samodzielnego organizowania i samodzielnego zarządzania jak najwięcej. Autonomia zespołu zwiększa elastyczność organizacji i efektywność zespołu. Upewnij się, że zespoły mają sponsoring korporacyjny potrzebny do sukcesu i tworzenia środowisk, w których członkowie zespołu czują się bezpieczni, aby wyrazić pomysły i obawy.
- Codzienne spotkania na stojąco: Spotkania Scrum pomagają utrzymać zespoły skoncentrowane na tym, co muszą robić codziennie, aby zmaksymalizować swoją zdolność do spełnienia zobowiązań sprintu. W miarę rozwoju organizacji, powinny rozważyć rozłożenie w czasie tych spotkań, aby udział zespołów mógł odbywać się w razie potrzeby.
- Scrum of scrums: Przedstawiciele różnych zespołów Agile spotykają się regularnie, aby zgłaszać ukończone prace, następne kroki oraz problemy i bloki występujące w swoich zespołach.
- Komunikacja zespołowa i udostępnianie wiedzy: udostępnianie i zachęcanie zespołów do udostępniania swoich praktyk i wskazówek za pośrednictwem sieci firmowych. Typowe narzędzia obejmują witryny typu wiki zespołu, usługi Microsoft Teams, confluence lub witryny typu wiki usługi Azure DevOps.
- Współpraca i jakość kodu: zachęcaj nieformalną komunikację między zespołami i współpracę. Ustanowić praktyki takie jak przeglądy kodu, przeglądy projektów, programowanie w parach i programowanie zespołowe. Te praktyki nie tylko zwiększają współpracę zespołową, ale pomagają rozwijać indywidualne i ogólne kompetencje firmowe.
Ulepszanie kultury organizacyjnej
Zwiększasz efektywność organizacyjną, uczestnicząc w kulturze, którą chcesz utworzyć. Zmiany kultury występują, gdy osoby, zespoły i organizacje przyjmują co najmniej jedno ciągłe ulepszanie. Istnieje kilka skalowalnych rozwiązań agile:
Retrospektywy: Zadaj pytania, takie jak: "Co poszło dobrze?", "Co powinniśmy zrobić inaczej?" oraz "Z czego powinniśmy zrezygnować?", aby pomóc zespołom zastanowić się, jak mogą poprawić swoje procesy i praktyki. Retrospektywy pomagają zespołom zidentyfikować, co działa dobrze i co wymaga poprawy. Retrospektywy można przeprowadzać w dowolnym i dowolnym miejscu. Jednak instytucjonalizowanie pewnych retrospektyw z regularną częstotliwością pomaga w ustanowieniu praktyk ciągłego doskonalenia. Na przykład:
Retrospektywy sprintu pomagają zespołom identyfikować obszary do poprawy w regularnych odstępach czasu.
Retrospektywy wydań pomagają organizacjom identyfikować obszary w celu poprawy komunikacji i praktyk wewnętrznych oraz poprawy zużycia paliwa w następnej wersji.
Przeglądy operacyjne: zazwyczaj odbywają się co miesiąc i obejmują przedstawicieli z całego strumienia wartości. Obejmując portfolio projektów i innych inicjatyw oraz używając obiektywnych, ilościowych danych, projektuj te retrospektywy, aby prowokować dyskusje na temat dynamiki wpływającej na efektywność zespołów.
Zobacz wiki dotyczące zasobów retrospektyw Agile po pomysły, porady i narzędzia do planowania i przeprowadzania retrospektyw. Zobacz również rozszerzenie Marketplace Retrospectives.
Tablica śledzenia ulepszeń: Dobre pomysły na ulepszanie procesów mogą powstać od każdego w dowolnym momencie. Przechwytywanie tych pomysłów w celu omówienia i podjęcia decyzji, jak szybko na nich działać, wspiera wysiłki związane z ulepszaniem procesów.
Tablica zapewnia łatwy i wizualny sposób przechwytywania pomysłów. Ponadto możesz utworzyć zespół do monitorowania ulepszeń i zapisywać pomysły na tablicy elektronicznej.
Instytucjonalizacja udostępniania i nauki: Dzielenie się najlepszymi praktykami i wymiana pomysłów pomaga wszystkim zespołom w organizacji rozwijać się i udoskonalać. Opracowywanie kultury uczenia się wspiera tę i inne ciągłe działania związane z ulepszaniem. Rozważ następujące pomysły:
Wewnętrzne witryny typu wiki i bazy wiedzy
Społeczności praktyk i gildii
Tygodnie hackathonów lub czas na innowacje
Wewnętrzne zespoły szkoleniowe DevOps i Agile do obsługi zespołów obsługujących te praktyki
Regularne sesje lunchu i nauki
Wewnętrzne konferencje i rozmowy techniczne
Gra kulturowa zapewnia dobry zasób dla menedżerów Agile, aby ułatwić zespołom wdrażanie praktyk Agile i udostępnianie najlepszych rozwiązań.
Społeczności praktyk: wspieranie wewnętrznych wspólnych dyscyplin (na przykład inżynierów niezawodności lokacji, architektów oprogramowania, projektantów środowiska użytkownika, analityków danych i specjalistów ds. zabezpieczeń)
Działające oprogramowanie
"Często dostarczaj działające oprogramowanie, od kilku tygodni do kilku miesięcy, z preferencją do krótszych okresów."
"Oprogramowanie robocze jest podstawową miarą postępu".
- Manifest Agile
Wraz ze wzrostem ilości oprogramowania, funkcji i złożoności należy wdrożyć rozwiązania ułatwiające tworzenie rozwiązań eksploatacyjnych.
- Flagi funkcji i dostarczanie progresywne: używaj flag funkcji, aby bezpiecznie włączyć lub wyłączyć dostęp do różnych funkcji. Obsługa uruchamiania funkcji dla wczesnych użytkowników w celu uzyskania praktycznych informacji zwrotnych. Zaimplementuj progresywne wzorce dostarczania, takie jak wersje kanarowe i wdrożenia niebieski-zielony.
- Plany wydania i ciągłe dostarczanie: zapewnia inny cykl dostarczania jednej lub więcej funkcjonalności. Zespoły funkcjonalne rozumieją wstępnie zaplanowany harmonogram wdrażania nowych funkcjonalności i odpowiednio planują. Wydania mogą odpowiadać temu samemu cyklowi sprintów ustalonemu dla organizacji lub odbywać się w innym tempie. Zobacz Scaled Agile Framework ,aby dowiedzieć się, jak skonfigurować przebiegi i zwolnić pociągi.
- Ciągła integracja i ciągłe wdrażanie (CI/CD): wdrażanie zautomatyzowanych procesów, które eliminują ręczną pracę i automatyzują przepływ oprogramowania za pośrednictwem cykli testowania, kompilowania i wdrażania. Zaimplementuj kompleksowe strategie testowania, w tym testy jednostkowe, testy integracji i zautomatyzowane testy akceptacyjne.
- Wewnętrzne źródło i rozwój otwarty: przynieś wartość i etos opracowany w społeczności oprogramowania open source do wewnętrznych zespołów programistycznych. Zachęcaj do udostępniania, dokumentacji i współpracy rozwiązań programistycznych między zespołami.
- Rozwiązania natywne dla chmury: obejmują konteneryzację, architektury mikrousług i wzorce wdrażania natywne dla chmury, aby zwiększyć skalowalność i łatwość konserwacji.
Nowoczesne rozwiązania i zagadnienia
W miarę ewolucji praktyk Agile należy wziąć pod uwagę inne nowoczesne podejścia:
- Integracja z usługą DevSecOps: integrowanie praktyk zabezpieczeń w całym cyklu projektowania, a nie traktowanie zabezpieczeń jako oddzielnego problemu.
- Inżynieria niezawodności lokacji (SRE): wdrażanie praktyk inżynierii niezawodności lokacji w celu zwiększenia niezawodności systemu i zmniejszenia nakładu pracy operacyjnej.
- Mapowanie strumienia wartości: mapowanie i optymalizowanie przepływu wartości od pomysłu do dostarczania przez klienta.
- OKRs (Cele i Kluczowe Wyniki): użyj OKRs, aby zjednoczyć zespoły wokół mierzalnych wyników, a nie tylko rezultatów.
- Myślenie projektowe: uwzględnij podejścia projektowe skoncentrowane przez człowieka, aby lepiej zrozumieć potrzeby klientów.
Treści powiązane
Wraz z powyższymi rozwiązaniami możesz znaleźć więcej wskazówek dotyczących skalowania narzędzi Agile w następujących artykułach:
- Kultura Agile
- Dodawanie zespołów
- Zarządzanie portfelem
- Widoczność w różnych zespołach
- Skalowanie metody Agile do dużych zespołów
Zasoby branżowe
- Manifest Agile
- Agile Alliance
- Skalowana struktura Agile (SAFe)
- DevOps Research and Assessment (DORA)
Praktyki, które się nie skalują
- Szacowanie dużych inicjatyw: część metod projektu kaskadowego obejmuje szacowanie zasobów i harmonogramów. Im większe inicjatywy, tym mniej prawdopodobne, że te szacunki zapewniają jakąkolwiek wartość. W miarę zwiększania się projektów ryzyko i nieprzewidziane problemy i przeszkody mogą wystąpić, unieważniając wiele szacunków.
- Prędkość jako metryka między zespołami: Podczas gdy prędkość zespołu może zapewnić przydatną metrykę do uzyskania wglądu w to, ile pracy może wykonać każdy zespół podczas cyklu przebiegu, nie można dodać prędkości zespołów w celu uzyskania znaczących lub przydatnych metryk. Ponadto użycie prędkości uzyskanej przez wiele zespołów do niezawodnej pełnej prognozy dalekiego zasięgu jest problematyczne. Zespoły mogą się różnić w zależności od tego, jak szacują swoją pracę, a zmiany te rosną wraz z upływem czasu.
- Rozwiązania preskrypcyjne najwyższego poziomu: jeden rozmiar nie pasuje do wszystkich, a jedno rozwiązanie zwykle nie pasuje do wszystkich zespołów. Wspieranie autonomii zespołu oznacza umożliwienie zespołom znalezienia własnych rozwiązań przy jednoczesnym zapewnieniu niezbędnych struktur i pomocy technicznej.
- Agile jako kult cargo: Skupienie się wyłącznie na ceremoniach Agile bez zrozumienia ich celu lub dostosowania ich do kontekstu często prowadzi do nieskutecznych implementacji.