Co to jest 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 on oparty na iteracyjnym tworzeniu i pomaga zespołowi lepiej zaplanować i reagować na nieuniknione zmiany, które występują w tworzeniu oprogramowania. Posłuchajmy dyskusji Mary z Andy po najnowszej wersji.

Mara czuła, że zrobiła kilka małych kroków w kierunku interesującego zespołu w DevOps, ale postępy utknęły w martwym punkcie. Zespół był zbyt zajęty naprawianiem błędów w ostatniej wersji, aby 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 zabawne. Andy i Mara napiszą kod, a następnie przekażą go Amita, testerowi. Amita zawsze wydawała się znajdować nowe usterki i musiała przekazać kod z powrotem. Serwer kompilacji nie powiódł 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. Pobieranie oprogramowania z drzwi jest trudne. To zawsze slog. Czy kiedykolwiek to zrobiłeś inaczej?

Mara: Mam i myślę, że moglibyśmy tu też ułatwić rzeczy. Naprawdę uważam, że metodyka DevOps może 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 zrobiliśmy z DevOps.

Mara: Jest o wiele więcej, co możemy zrobić. Myślę, że powinniśmy wykonać pierwszy krok i wykonać pewne planowanie Agile. Możemy nam pomóc za pomocą usługi Azure Boards.

Andy: Co oznacza Agile?

Mara: Agile to podejście do tworzenia oprogramowania. Termin "Agile" został ukuty w 2001 roku w manifeście Agile. Manifest ustanowił pewne wytyczne dotyczące lepszego podejścia do tworzenia oprogramowania. Manifest mówi:

Wartość:

  • 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. Moje dzieci zawsze śpią przez czas, w jaki dojdę do domu. Ale brzmi to bardzo wzruszające uczucie bez żadnych konkretnych rozwiązań.

Mara: Nie jest to magia, ale możemy to zrobić nieco po bitzie, a usługa Azure DevOps udostępnia nam narzędzia potrzebne do zaimplementowania praktyk Agile. Na razie, gdy chcemy zaplanować, możemy użyć usługi Azure Boards. Po pierwsze, czy możesz wyjaśnić mi proces kompilacji i pomóc mi zidentyfikować duże 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 opuszczeniu Andy'ego, Mara patrzy na jej scribbled notatki i decyduje się zrobić trochę Agile planowania siebie. Samodzielnie używa podstawowego procesu w usłudze Azure Boards, aby uzyskać wszystkie problemy w jednym miejscu.

Jej następnym krokiem jest pokazanie zarządu zespołowi i zaangażowanie ich.

Rekomendacje do wdrożenia 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 przejmują życie osobie pracującej. 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.