Metodyka Agile w pigułce, czyli jak skutecznie zarządzać projektem IT
W ostatnich latach metodyka Agile bardzo szybko zyskała na popularności i już od 20 lat z chęcią stosowana jest w tworzeniu oprogramowania. Nic dziwnego, bowiem stosowanie zasad i wartości zawartych w Agile Manifesto wyznacza dobry kierunek do dostarczania produktów wysokiej jakości, z uwzględnieniem potrzeb klienta i określonych ram projektu. Agile skupia się na dostarczaniu wartości klientom, poprzez właściwe reagowanie na szybko zmieniające się środowisko.
Obecnie wykorzystuje się wiele metodyk zarządzania projektami IT, ale to właśnie metodyki zwinne wybierane są najchętniej. Jednym z głównych powodów jest zaangażowanie każdej ze stron we wszystkie etapy projektu, co znacznie przyspiesza dostarczenie wartościowego oprogramowania.
Spis treści
Agile — co to jest?
Zasady Agile powstały jako odpowiedź na jeden z głównych problemów, powielanych przez wiele firm, czyli skupianie się na dokładnym planowaniu i dokumentowaniu każdego, nawet bardzo odległego etapu prac. Takie podejście pomija aspekt zmieniających się warunków i korzystania z informacji pozyskanych już w trakcie realizacji projektu.
Początek metodyce Agile w rozwoju oprogramowania dał Agile Manifesto, stworzony w 2001 r. przez grupę 17 inżynierów oprogramowania, którzy mieli odmienne spojrzenie na realizację projektów. Podejście zwinne powstało na podstawie metodyk i frameworków, które już istniały. Wybranie praktyk przynoszących najlepsze efekty i zebranych doświadczeń pozwoliło na opracowanie wspólnego podejścia.
Agile Manifesto, czyli zasady metodyki Agile
Zgodnie z manifestem, głównymi elementami rozwoju oprogramowania Agile (i to również najbardziej cenimy w naszej pracy) jest większe zwrócenie uwagi na:
- Ludzi i interakcje niż procesy i narzędzia
- Działające oprogramowanie niż szczegółową dokumentację
- Współpracę z klientem niż negocjowanie umów
- Reagowanie na zmiany niż realizację założonego planu.
Nie oznacza to jednak, że elementy wymienione z prawej strony nie są ważne w naszej pracy — one również są istotne w procesie tworzenia oprogramowania. Nastawienie na współpracę nie wyklucza możliwości negocjowania umów, a reagowanie na zmiany nie oznacza, że działamy zupełnie spontanicznie. Plan działania, usystematyzowanie pracy i dokumentacja również mają znaczenie.
Oprócz czterech głównych wartości, Agile Manifesto przedstawia 12 zasad, które można traktować jako ich rozszerzenie. Podkreśla się w nich istotność takich obszarów jak zadowolenie klienta, reakcję na zmieniające się wymagania, współpracę pomiędzy wszystkimi stronami zaangażowanymi w projekt oraz stawianie na jakość.
Dlaczego warto wykorzystywać metodykę Agile w tworzeniu oprogramowania?
Stworzone zasady pomogły nam opracować możliwie najlepsze podejście do rozwijania projektów IT, dzięki czemu skutecznie realizujemy założone cele. Co nam daje metodyka Agile i jak wykorzystujemy ją w codziennej pracy?
1. Partnerstwo i zaangażowanie w projekt
Stawiamy przede wszystkim na partnerstwo. Od początku wszyscy są zaangażowani w projekt — zarówno klient, jak i osoby pracujące przy jego powstawaniu. Dążymy do tego, aby dostarczyć produkt zgodny z oczekiwaniami, dlatego duży nacisk kładziemy na rolę klienta w projekcie — słuchamy i reagujemy na bieżąco. Widzimy, że to działa — stała komunikacja, obecność klienta na codziennych spotkaniach (daily), szkolenia i dobrze zaprojektowany proces onboardingu to klucz do zadowolenia klienta.
2. Iteracyjne podejście do pracy
Podzielenie projektu na sprinty umożliwia rozpoczęcie pracy bez konieczności przygotowania przez klienta szczegółowej specyfikacji. Wspólne wypracowanie szczegółów na 2-3 kolejne sprinty sprawia, że działamy i na bieżąco doprecyzowujemy kolejne kwestie.
Zdajemy sobie sprawę z tego, że klient nie musi od razu znać wszystkich szczegółów, związanych z jego projektem (np. dotyczących operatora płatności, z którym będzie współpracować), dlatego naszą rolą jest służenie radą i pomocą. Klient przekazuje nam pomysł na aplikację, a my doradzamy w wyborze najlepszego rozwiązania — podpowiadamy, co dobrze działa i przyniesie najlepsze efekty, a co się nie sprawdza.
3. Skupienie się na jakości oprogramowania
Stawiamy przede wszystkim na jakość oprogramowania. Iteracyjne podejście do pracy pozwala nam dostarczać działającą porcję aplikacji, więc klient może na bieżąco testować i weryfikować tworzony przez nas produkt. Informacja zwrotna od pierwszych użytkowników oraz regularnie przekazywane uwagi dają nam możliwość tworzenia rozwiązań zgodnych z oczekiwaniami. Takie podejście nie naraża też klienta na niepotrzebne koszty.
4. Sztuka minimalizowania ilości koniecznej pracy
Zastosowanie podejścia Agile to sposób na uproszczenie pracy, maksymalizując korzyści klienta. Planujemy więc sprinty tak, aby po każdym z nich dostarczyć coś działającego. Analizując, co najszybciej może przynieść korzyść, przekładamy pomysł klienta na aplikację, która jak najszybciej dostarczy wartość, w zależności od celu. Produkt już we wczesnej fazie może na siebie zarabiać lub daje możliwość zbierania feedbacku, dzięki czemu dodatkowe opcje i funkcjonalności będą zgodne z oczekiwaniami odbiorców.
5. Elastyczne podejście do pracy
Praca w sprintach daje nam sporą elastyczność, ale też sprawia, że uczymy się na podstawie zebranych doświadczeń. Co dwa tygodnie możemy zweryfikować, co działa i wyeliminować ograniczenia. Takie podejście pozwala nam też dopasować się do klienta — jeśli np. klientowi brakuje czasu, aby wywiązywać się ze swoich zadań, radzimy co zrobić i możemy dostosować się godzinowo tak, aby projekt doprowadzić do końca.
Jak Agile wpływa na naszą pracę?
Wykorzystując zasady Agile w pracy nad projektami, sprawnie przechodzimy przez wszystkie procesy tworzenia produktu. Daje nam to sporo swobody w codziennym działaniu, ale też umożliwia szybkie reagowanie na zmieniające się potrzeby klienta. Wszyscy zaangażowani w projekt znają cele i wizje, więc nasz zespół działa dynamicznie i elastycznie. Agile oferuje wiele innych korzyści, które wykorzystujemy w codziennej pracy, a szczególnie cenimy elementy wymienione poniżej.
- Klient = Partner
Współpraca oparta na partnerskich relacjach przynosi wiele korzyści, bowiem klient jest częścią projektu, a nie jedynie zleceniodawcą. Wspólną pracę nad projektem opieramy na komunikacji i ciągłej wymianie informacji, co znacznie ułatwia stworzenie produktu zgodnego z wizją klienta. Nie tracimy więc czasu na tworzenie oprogramowania, które później wymagałoby wprowadzenia wielu zmian.
- Szybsze i sprawniejsze dostarczanie oprogramowania
Regularny przegląd oprogramowania znacznie usprawnia proces tworzenia produktu. Takie podejście pomogło nam rozwiązać wiele problemów projektowych i utrzymać jakość, na której nam zależy. Dzięki review i codziennym spotkaniom mamy mniej zmian do wprowadzania.
Daily meeting szczególnie ułatwia pracę przy rozbudowanych i złożonych aplikacjach. Dzięki temu unikamy nieporozumień — możemy dopytać klienta o szczegóły, jeśli opis danej funkcjonalności nie jest dla nas całkowicie jasny. Takie spotkania są też doskonałą okazją do rozwiania wątpliwości, omówienia wstępnego pomysłu i opracowania prototypów, dzięki czemu możemy szybko przystąpić do pracy, w pełni odpowiadając na oczekiwania klienta.
- Transparentność
Poinformowany klient to szczęśliwy klient. Zależy nam na tym, aby klienci uczestniczyli w daily, dzięki czemu są na bieżąco z postępem prac. Wiedzą, jeśli coś jest nie tak, tym bardziej, jeśli ma to wpływ na koszty lub termin dostarczenia produktu. Znając dany problem, klient może od razu zadać kluczowe pytania, szybko zareagować (np. przekazać informacje inwestorom) i pomóc zespołowi w podjęciu kolejnych decyzji.
Mówienie wprost i jasne przekazywanie informacji pozwalają na szybsze rozwiązywanie problemu i uniknięcie efektu kuli śnieżnej. Unikamy więc nagromadzenia błędów czy nieporozumień, ograniczając ryzyko i dobrze planując kolejne działania.
Metodyka Agile w praktyce, czyli szybkie reagowanie na zmiany
Metodyki zwinne stały się niejako standardem branżowym dla wytwarzania oprogramowania. Dostarczając efekty pracy częściej, ale w mniejszych dawkach sprawiamy, że klienci na bieżąco mogą oceniać nasze działania. W odpowiedzi nasz zespół sprawnie reaguje na zmiany, co z kolei przekłada się na szybsze dostarczanie projektu przy jednoczesnym zachowaniu jakości i wartości ważnych dla klienta.