Implementowanie praktyk agile, które skalują
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Organizacje przedsiębiorstwa stosują rozwiązania Agile z wielu powodów. Wśród następujących powodów są:
- Skracanie czasu do rynku, 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 warto skalować 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 jest najbardziej interesujące: Dostarczanie na czas? Jakość produktu? Przewidywalność? Zadowolenie klientów?
- Wróć do pierwszych zasad, 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 są skalowane, ale praktyki są wrażliwe na kontekst".
- "Zachowaj wartości, zachowaj zasady, 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 przebiegi i wydania określają rytm działalności. Współpraca wszystkich zespołów z dzieloną kadencją pomaga we wszystkich działaniach związanych z koordynacją i współpracą.
- Wiadomości e-mail dotyczące przebiegu: aby zapewnić organizacji i wszystkim zespołom informacje o postępach i planach funkcji, każdy zespół funkcji może wysłać wiadomość e-mail z podsumowaniem poprzednich wyników przebiegu i bieżącymi planami przebiegu.
- Pokazy przebiegu: szybkie-2-3-minutowe wideo, które ilustruje nową funkcję, którą wyprodukował zespół. Linki do takich filmów wideo mogą być zawarte w wiadomościach e-mail przebiegu.
- Pokazuj spotkania: aby poinformować inne zespoły i poprosić o opinię na temat oprogramowania w ramach opracowywania, zespoły prezentują pracę, którą wykonali. Przeprowadzaj te spotkania w regularnych odstępach czasu w całym cyklu życia projektu i otwieraj je wszystkim zainteresowanym stronom.
- Wiadomości e-mail z podsumowaniem błędów: aby zapewnić wgląd w jakość produktu i zachęcić do utrzymywania dyscypliny błędów, okresowo udostępniaj metryki jakości organizacji. Te metryki mogą obejmować aktywne usterki dla zespołu funkcji, trendy błędów i błędy na inżyniera.
- Spotkania 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.
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ła opinia: twórz pętle opinii klientów. Pętle te mogą mieć wiele form:
- Głos klienta: ułatwia klientom przekazywanie opinii, dodawanie pomysłów i głosowanie nad funkcjami nowej generacji. Przekazywanie opinii jest często wykonywane za pośrednictwem dedykowanej witryny internetowej.
- Opinie o produkcie: przyciski opinii w produkcie to inny sposób, aby poprosić o opinię na temat środowiska produktu lub określonych funkcji.
- Pokazy klientów: regularnie zaplanowane pokazy, które proszą o opinie klientów, mogą pomóc kształtować produkty nowej generacji i śledzić tworzenie aplikacji, które klienci chcą wykorzystać.
- Wczesne programy adoptera: Takie programy powinny być opracowywane z myślą, że wszystkie zespoły mogą chcieć uczestniczyć w pewnym momencie. Wczesnych użytkowników uzyskuje dostęp do wczesnych wersji oprogramowania roboczego, które następnie mogą przekazać opinie. Często te programy działają, włączając flagi wybranych funkcji dla listy wczesnych użytkowników.
- Decyzje oparte na danych: znajdowanie sposobów instrumentowania produktu w celu uzyskania przydatnych danych i testowania różnych hipotez. Pomoc w dążeniu do przyjaznej dla eksperymentów kultury, która świętuje naukę.
Zwiększanie widoczności projektu
Im więcej szczegółowych informacji masz do osiągnięcia celu, wizji i postępu pracy, tym lepiej umożliwisz zmniejszenie ryzyka i zarządzanie zależnościami.
- Struktura zespołu: bez względu na to, jak duża jest twoja organizacja, struktura organizacji wokół małych zespołów z zakresu od 6 do 9 skalowania. Utwórz zespoły funkcji autonomicznych pogrupowane w obszarach zarządzania portfolio.
- Struktura podziału pracy: Podział dużych celów, funkcji lub wymagań na mniejsze pozostaje stabilnym zarządzaniem 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: użyj narzędzi do śledzenia online, aby zagregować pracę, aby uzyskać wiedzę między zespołami. Twórz pulpity nawigacyjne, aby pokazać postęp i trendy.
- Przeglądy doświadczeń: te spotkania, które odbyły się przed rozpoczęciem opracowywania funkcji, są używane do informowania kierownictwa na temat scenariuszy i priorytetów, zbierania opinii, ustawiania oczekiwań i wystawiania wszelkich problemów między zespołami dotyczących tej funkcji.
Zwiększanie produktywności pracowników
Niektóre konkretne rozwiązania Agile, które dobrze skaluje się i prowadzą do szczęśliwszych, zaangażowanych i produktywnych pracowników, to:
- Osadzone przywództwo: umożliwianie zespołom i liderom w organizacji samodzielnego organizowania i samodzielnego zarządzania jak najwięcej. Autonomia zespołu zwiększa efektywność zespołu w organizacji. Upewnij się, że zespoły mają sponsoring korporacyjny potrzebny do sukcesu.
- Codzienne stand-upy: Lub 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 należy rozważyć zdumiewające te spotkania, tak aby udział między zespołami mógł wystąpić w razie potrzeby.
- Scrum scrums: Codzienne stand upy członków z różnych zespołów Agile spotykają się codziennie, aby zgłosić ukończone prace, następne kroki i problemy lub bloki występujące w ich reprezentatywnych zespołach.
- Komunikacja zespołowa: udostępnianie i zachęcanie zespołów do udostępniania swoich praktyk i wskazówek, do których mogą oni i inni zespoły uzyskiwać dostęp za pośrednictwem sieci firmowej. Typowe narzędzia używane w tym celu obejmują witryny typu wiki zespołu, programu OneNotes lub witryny markdown.
- Współpraca: zachęcaj nieformalną komunikację między zespołami i współpracę w zespole. Praktyki instytucjonalne, takie jak przeglądy kodu, przeglądy projektu, przeglądy specyfikacji 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ąc pytania, takie jak: "Co poszło dobrze?", "Co powinniśmy zrobić inaczej?", i "Co powinniśmy przestać robić?", pomagają zespołom zastanowić się nad tym, jak mogą poprawić swoje procesy i praktyki. Retrospektywy pomagają zespołom w poznać to, co działa dobrze i co wymaga poprawy. Retrospektywy można przeprowadzać w dowolnym i dowolnym miejscu. Jednak instytucjonalizacja niektórych retrospektyw w regularnym tempie pomaga instytucjonalizować praktyki ciągłego ulepszania. Na przykład:
Retrospektywy sprintu mogą pomóc zespołom zidentyfikować obszary, które można poprawić w regularnym tempie.
Retrospektywy wydań mogą pomóc organizacjom identyfikować obszary w celu poprawy komunikacji i praktyk wewnętrznych oraz poprawy paliwa w następnej wersji.
Przeglądy operacyjne: są zwykle przechowywane co miesiąc i obejmują przedstawicieli z całego strumienia wartości. Łączenie portfolio projektów i innych inicjatyw oraz używanie obiektywnych, ilościowych danych, projektowanie tych retrospektyw w celu prowokowania dyskusji na temat dynamiki wpływającej na wydajność między zespołami.
Zobacz witrynę Typu Wiki zasobów Agile retrospektywną, aby zapoznać się z pomysłami, poradami i narzędziami do planowania i przeprowadzania retrospektyw. Zobacz również rozszerzenie Retrospektyw witryny Marketplace.
Tablica śledzenia ulepszeń: Dobre pomysły na ulepszanie procesów mogą powstać w dowolnym momencie. Przechwytywanie tych pomysłów w celu omówienia i podjęcia decyzji o tym, jak szybko na nich działać, jest kluczem do wspierania wysiłków związanych z ulepszaniem procesów.
Biała tablica zapewnia łatwe i wizualne środki, dzięki którym można przechwytywać pomysły. Ponadto możesz utworzyć zespół śledzenia ulepszeń i przechwycić pomysły, które śledzisz na elektronicznej tablicy Kanban.
Udostępnianie instytucjonalne: udostępnianie najlepszych rozwiązań i komunikowanie pomysłów pomaga wszystkim zespołom w organizacji rozwijać się i ulepszać. Opracowywanie kultury uczenia się jest kluczem do wspierania tego i innych działań ciągłego ulepszania. Kilka pomysłów, które należy wziąć pod uwagę:
Wewnętrzne witryny typu wiki
Listy dystrybucyjne wewnętrzne
Hackathon tygodni lub 10% czasu hack
Wewnętrzny zespół pomocy technicznej agile do pomocy technicznej zespołów, które przyjmują praktyki Agile
Gra kulturowa zapewnia dobry zasób dla menedżerów Agile, aby ułatwić zespołom wdrażanie agile i udostępnianie najlepszych rozwiązań.
Społeczności praktyk: obsługa wewnętrznych typowych dyscyplin (na przykład DBAs, SW Architects, projektowanie środowiska użytkownika)
Działające oprogramowanie
"Często dostarczaj oprogramowanie robocze, od kilku tygodni do kilku miesięcy, z preferencjami do krótszej skali czasu."
"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: użyj flag funkcji, aby włączyć lub wyłączyć dostęp do różnych funkcji. Zapewnianie obsługi włączania funkcji dla wczesnych użytkowników w celu uzyskania informacji zwrotnych.
- Pociągi wydań: zapewnienie innego typu cykli dostarczania co najmniej jednej funkcji. Zespoły funkcji rozumieją wstępnie zaplanowany harmonogram wypychania nowych funkcji i prawidłowo planują. Pociągi wydań mogą odpowiadać temu samemu cyklowi przebiegu ustanowionemu dla organizacji lub wystąpić w innym tempie. Zobacz Scaled Agile Framework , aby dowiedzieć się, jak skonfigurować przebiegi i zwolnić pociągi.
- Ciągła integracja: wdrażanie procesów, które eliminują ręczną pracę, a zamiast tego automatyzują przepływ oprogramowania za pomocą cykli testowania, kompilowania i wdrażania.
- Wewnętrzne oprogramowanie typu open source: przynieś wartość i etos opracowany w społeczności oprogramowania typu open source do wewnętrznych zespołów programistycznych.
Powiązane artykuły
Wraz z powyższymi rozwiązaniami znajdziesz 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
Praktyki, które nie są skalowane
- Szacowanie dużych inicjatyw: część metod projektu kaskadowego obejmuje szacowanie zasobów i harmonogramów. Większe inicjatywy, tym mniejsze prawdopodobieństwo, że te szacunki były dowolnej wartości. W miarę zwiększania się projektów ryzyko i nieprzewidziane problemy i przeszkody mogą wystąpić, unieważniając wiele szacunków.
- Szybkość: Podczas gdy szybkość zespołu może zapewnić przydatną metrykę umożliwiającą uzyskanie wglądu w to, ile pracy może wykonać każdy zespół podczas cyklu przebiegu, nie można dodać alokacji zespołu 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 różnią się w sposób, w jaki szacują swoją pracę, a te zmiany 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. Pomocnicza autonomia zespołu oznacza umożliwienie zespołom znalezienia własnych rozwiązań.