Co to jest metodyka Agile?

Ukończone

Agile to termin używany do opisywania podejść do tworzenia oprogramowania, podkreślając przyrostowe dostarczanie, współpracę zespołową, ciągłe planowanie i uczenie się. Agile nie jest procesem tak samo, jak filozofią lub nastawieniem do planowania pracy, którą będzie wykonywać zespół. Jest ona oparta na programowaniu iteracyjnym i pomaga zespołowi lepiej planować i reagować na nieuniknione zmiany występujące podczas tworzenia oprogramowania. Posłuchajmy rozmowy Mary i Andy’ego po wydaniu najnowszej wersji.

Mara czuje, że zrobiła kilka małych kroków w kierunku zainteresowania zespołu metodyką DevOps, ale postęp się zatrzymał. Zespół był zbyt zajęty eliminowaniem usterek w ostatniej wersji, żeby myśleć o czymkolwiek innym.

Pamiętaj, że Irwin, menedżer produktu, dostarczył zespołowi dość krytyczne opinie klientów na temat witryny internetowej gry wyścigowej. Rozwiązywanie tych problemów nie było zabawą. Andy i Mara pisali kod i przekazywali go do Amity, testerki. Amita niemal zawsze znajdowała nowe usterki i musiała przekazywać kod z powrotem. Uruchomienie serwera kompilacji nie powiodło się. Tim nie mógł uzyskać witryny internetowej gry do pracy w środowisku produkcyjnym, nawet po tym, jak pracował w środowisku deweloperskim i testowym. Wszyscy pracowali długie godziny i stracili kilka weekendów.

Po wysłaniu wydania, Mara i Andy usiadli na kawę. Obaj byli zmęczeni. Mara była zniechęcona, ale Andy miał inną postawę.

Andy: Nie wiem, dlaczego jesteś zaskoczony. Wypuszczenie oprogramowania jest trudne. To zawsze mozolna harówka. Czy kiedykolwiek robiłaś to inaczej?

Mara: Mam i myślę, że moglibyśmy tu też ułatwić rzeczy. Naprawdę wierzę, że metodyka DevOps mogłaby nam pomóc.

Andy: Pamiętam, że wykonaliśmy ćwiczenie mapowania strumienia wartości, ale co teraz? Musimy rozpocząć pracę nad nową wersją. Myślałem, że skończyliśmy z metodyką DevOps.

Mara: Jest o wiele więcej, co możemy zrobić. Myślę, że powinniśmy wykonać pierwszy krok i zaplanować zastosowanie metod Agile. Moglibyśmy skorzystać z usługi Azure Boards.

Andy: Co oznacza Agile?

Mara: Agile to podejście do tworzenia oprogramowania. Termin „Agile” został ukuty w 2001 r. w Manifeście Agile, czyli Manifeście zwinnego wytwarzania oprogramowania. Manifest ustalił pewne wspólne zasady dla lepszego podejścia do tworzenia oprogramowania. Manifest mówi, że:

Przedkładamy:

  • Osoby i interakcje dotyczące procesów i narzędzi.
  • Praca nad oprogramowaniem za pośrednictwem kompleksowej dokumentacji.
  • Współpraca klienta w sprawie negocjacji kontraktowych.
  • Reagowanie na zmiany w porównaniu z planem.

Andy: Spójrz, jeśli znasz jakiś magiczny sposób, aby ułatwić sobie życie, jestem za to wszystkim. Kiedy wracam do domu, moje dzieci zawsze już śpią. Jednak to wszystko brzmi bardzo emocjonalnie bez żadnych konkretnych rozwiązań.

Mara: To nie jest magia, ale możemy to zrobić nieco po bitzie. Usługa Azure DevOps udostępnia nam narzędzia potrzebne do zaimplementowania praktyk Agile. Na razie, kiedy chcemy zaplanować pracę, możemy użyć usługi Azure Boards. Może najpierw objaśnisz mi proces kompilacji i pomożesz zidentyfikować największe problemy?

Po dużej ilości kawy Mara i Andy identyfikują największe problemy w procesie kompilacji. Wszystkie problemy pojawiły się podczas ostatniej wersji. Po wyjściu Andy’ego Mara patrzy na swoje notatki i decyduje się sama wykonać trochę planowania Agile. Używa procesu podstawowego w usłudze Azure Boards, aby zebrać wszystkie problemy w jednym miejscu.

Jej następnym krokiem jest pokazanie tablicy zespołowi i zaangażowanie go.

Zalecenia dotyczące wdrażania metody Agile

Zespół przygotowuje się do podjęcia pierwszych kroków w kierunku wdrożenia metody Agile. Poniżej przedstawiono kilka ogólnych zaleceń, których każdy zespół może użyć do uwzględnienia metody Agile w swojej organizacji.

Tworzenie struktury organizacyjnej obsługującej praktyki Agile

W przypadku większości organizacji wdrożenie metody Agile może być trudne. Wymaga to zmiany umysłu i zmiany kultury, która wymaga wielu istniejących zasad i procesów w organizacji. Tradycyjnie większość firm używa struktury zespołu poziomego. W praktyce oznacza to, że zespoły odpowiadają architekturze oprogramowania. Na przykład może istnieć zespół odpowiedzialny za interfejs użytkownika aplikacji, inny zespół odpowiedzialny za dane i inny zespół odpowiedzialny za architekturę zorientowaną na usługę.

Zespoły pionowe zapewniają jednak lepsze wyniki dla projektów Agile. Zespoły pionowe obejmują architekturę i są dostosowane do wyników produktu. Na przykład może istnieć zespół odpowiedzialny za część poczty e-mail aplikacji, a członkowie zespołu pochodzą ze wszystkich trzech wymienionych wcześniej dziedzin. Kolejną zaletą struktury zespołu pionowego jest to, że skalowanie odbywa się przez dodawanie zespołów.

Członkowie zespołu mentorów w zakresie technik i praktyk agile

Kiedy po raz pierwszy zaczną wdrażać techniki i praktyki Agile, niektóre zespoły decydują się zatrudnić zewnętrznych trenerów. Trenerzy mogą nawet współpracować z wieloma zespołami, aby pomóc w usunięciu przeszkód organizacyjnych i silosów, więc często mają zarówno umiejętności dydaktyczne, jak i menedżerskie. Mogą również szkolić członków zespołu w technikach Agile, takich jak uruchamianie spotkań stand-up i przegląd. Z czasem ważne jest jednak, aby członkowie zespołu rozwijali zdolność do mentorowania się nawzajem. Oznacza to, że większość pracy powinna być wykonywana wspólnie, a nie przez osoby, które spędzają większość czasu w spokoju.

Włączanie współpracy między zespołami i między zespołami

Jeśli współpraca jest kluczem do osiągnięcia sukcesu w agile, jakie są niektóre sposoby, na które można go zachęcić? Oto kilka pomysłów.

Zmiana kulturowa

Podczas zmieniania kultury należy pamiętać o kilku kwestiach. Ważne jest, aby członkowie zespołu mieli ciche, wygodne miejsce do pracy. Potrzebują przestrzeni, w których mogą się skupić, bez wielu rozproszenia uwagi i hałasu.

Spotkania są faktem życia i mogą czuć się jak przejąć życie robocze osoby. Aby zapewnić członkom zespołu większą kontrolę, spotkania muszą mieć plan i ścisłe ramy czasowe.

Asynchroniczna komunikacja, na przykład wiadomości e-mail i wiadomości, może czuć się przytłaczająca, a ludzie często czują, że muszą od razu odpowiedzieć. Wyjaśnij, że nie wszystkie te komunikaty wymagają natychmiastowej reakcji.

Zdalni członkowie zespołu są teraz normą w wielu firmach. Każdy musi czuć się komfortowo ze wszystkimi członkami zespołu i traktować ich w równym stopniu, niezależnie od tego, czy są w biurze, czy pracują poza siedzibą firmy. Współpraca za pośrednictwem komunikacji powinna stać się częścią DNA organizacji.

Nie możemy przeważyć znaczenia dobrej komunikacji, nawet jeśli nie ma sporów. Rozwiązywanie konfliktów to dobra umiejętność dla każdego zespołu Agile.

Zespoły współzadunkowe

Tak jak ważne jest, aby członkowie zespołu pracowali wspólnie, ważne jest również, aby zespoły współpracowały ze sobą. Zespoły wielofunkcyjne dodają nowe umiejętności i perspektywy, które mogą poszerzyć zdolność wszystkich do kreatywnego rozwiązywania problemów. Zespoły współzarządzające sprawiają również, że cała organizacja jest bardziej spójna. Zmniejszają wojny murawy i zwiększają poczucie, że każdy pracuje nad wspólnym celem.

Narzędzia do współpracy

Dobre narzędzia mogą pomóc członkom zespołu Agile współpracować wydajniej, zarówno w zespole, jak i w innych zespołach. Oto kilka sugestii, które pomogą Ci rozpocząć pracę:

  • Microsoft Teams: Aplikacja Teams to aplikacja, która zapewnia miejsce pracy do czatów, spotkań, notatek i magazynu plików.
  • Skype: Skype jest łatwy w użyciu i dobrym narzędziem ogólnego przeznaczenia. Zainstalowano go już wiele osób.
  • Slack: usługa Slack udostępnia wiele oddzielnych kanałów komunikacyjnych— wszystkie z jednego interfejsu. Te kanały można organizować na wiele sposobów, takich jak projekt, zespół lub temat. Konwersacje są zachowywane i można je przeszukiwać. Dodawanie członków zespołu wewnętrznego i zewnętrznego jest łatwe. Usługa Slack bezpośrednio integruje się z wieloma narzędziami innych firm, takimi jak GitHub dla kodu źródłowego.

Inne typowe narzędzia to Google Meets, Asana, Trello, GoToMeeting i monday.com. Spróbuj zapoznać się z opcjami, aby zobaczyć, które z nich odpowiadają potrzebom twojego zespołu i twojej firmy.