Udostępnij za pośrednictwem


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 śledzone na tablicy elektronicznej.

  • 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.

Wraz z powyższymi rozwiązaniami znajdziesz więcej wskazówek dotyczących skalowania narzędzi Agile w następujących artykułach:

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ń.