Tworzenie oprogramowania przez firmy programistyczne to zazwyczaj duży, czasochłonny i wymagający projekt. Niezależnie czy jest to system dedykowany, sklep online czy aplikacja mobilna - każdy projekt wymaga zaangażowania oraz odpowiedniego zarządzania. Jedną z nowoczesnych metod zarządzania projektami jest metodologia agile. W niniejszym artykule dowiesz się co to jest za metoda, jak ją wdrożyć do projektu i jakie zasady musi spełnić.
Agile to metoda zarządzania projektami, której początki dotyczą tworzenia oprogramowania i zazwyczaj odnosi się właśnie do tematyki programistycznej. Jednak wartości i zasady agile, którymi się charakteryzuje sprawiają, że z powodzeniem można zastosować tę metodę w różnych branżach oraz projektach dotyczących praktycznie wszystkich obszarów.
Metodyka agile jest jednym ze sposobów prowadzenia projektów, w którym kluczowymi elementami jest podział prac na mniejsze części oraz udział klienta we wszystkich etapach procesu tworzenia oprogramowania. Podział na mniejsze kroki oraz ich weryfikacja z osobami zlecającymi stworzenie oprogramowania pozwala możliwie najszybciej wprowadzić zmiany, aby końcowy produkt był dokładnie tym, czego klient oczekuje. Celem zastosowania metody agile jest ciągłe doskonalenie, aby stworzyć najlepsze jakościowo oprogramowanie w możliwie najkrótszym czasie.
Każdy projekt programistyczny składa się z wielu zadań, często przypisanych do różnych osób lub zespołów pracujących nad nim. Dzieląc prace na etapy ustala się czas realizacji założonego planu, dzięki czemu wszystkie zaangażowane osoby chcąc wykonać zadania na zadowalającym poziomie muszą pracować efektywnie. Po każdym etapie następuje podsumowanie pracy, w którym powinien uczestniczyć również klient. W razie konieczności już na tym etapie można wprowadzić zmiany oraz po otrzymaniu sugestii kontynuować prace nad udoskonalaniem produktu. Sprowadza się to do przedstawiania efektów prac krok po kroku, niezależnie od etapu realizacji projektu.
Metodyka agile została zapoczątkowana przez manifest agile, a właściwie manifest zwinnego wytwarzania oprogramowania (Agile Manifesto), opracowanego przez zespół programistów. Manifest agile zawiera kluczowe wartości metodologii agile:
Oczywiście zarówno wartości zawarte po prawej stronie, jak i po lewej są ważnymi elementami zarządzania projektami. Wartości zostały przedstawione w taki sposób, aby wyznaczać priorytety w sytuacjach kryzysowych.
Skoro już wiemy co to jest metodyka agile oraz jakimi wartościami należy się w niej kierować to pozostaje odpowiedzieć na pytanie jak wdrożyć w projekt metodykę agile?
Aby opisywana metodologia działała poprawnie muszą zostać wyznaczone osoby odpowiedzialne za projekt zarówno po stronie firmy programistycznej, jak i klienta. Po stronie programistów zazwyczaj osobą kontaktową jest project manager (tzw. Scrum Master), którego zadaniem jest opieka nad projektem pod kątem pracy zespołu, analizowania wyników czy rozdzielania i egzekwowania wykonania zadań.
Również po stronie firmy, dla której tworzymy oprogramowanie musi być jedna, konkretna osoba znająca projekt. Będzie miała za zadanie nadawanie kierunku prac i modyfikacji tworzonego projektu, a także służyć wsparciem merytorycznym w razie pytań ze strony zespołu deweloperskiego.
Planując rozpoczęcie prac nad projektem zgodnie z metodyką agile najlepiej zacząć od podzielenia dużego projektu na mniejsze etapy. Dzięki temu łatwiej będzie czuwać nad terminami i stopniem realizacji projektów. Na każdy etap projektu powinien zostać z góry określony czas realizacji. Poszczególne etapy to tzw. sprinty. Trwają zależnie od złożoności zadań od 2 do 4 tygodni.
Projekty programistyczne są zazwyczaj skomplikowanymi przedsięwzięciami, nad którymi pracuje kilka osób lub nawet zespołów. Skrupulatna, stała współpraca pozwala osiągać lepsze efekty oraz skraca czas trwania projektu. Właśnie dlatego zespół pracujący nad projektem powinien organizować codzienne, najczęściej poranne spotkania (tzw. daily stand-up). Dzięki temu kierownik projektu będzie na bieżąco z postępami prac, oraz z informacją nad czym pracują członkowie zespołu. To także czas na omówienie ewentualnych przeszkód i problemów oraz próba ich rozwiązania w zespole.
Po każdym etapie zespół ma możliwość zweryfikować prace wielu zespołów lub programistów – zależnie od skali projektu - i przeanalizować rezultaty. Spotkanie organizowane po zakończeniu jednego z etapów to retrospektywy. Podczas takich spotkań członkowie zespołu omawiają dotychczasowy przebieg procesu z przeanalizowaniem co udało się zrealizować, a co wymaga poprawy. Podczas retrospektywy dobrze jest zaplanować kolejne etapy prac oraz ustalić termin następnego spotkania.
Najlepiej byłoby, gdyby w takich codziennych spotkaniach od początku projektu uczestniczył klient lub osoba odpowiedzialna za projekt w firmie. To idealny moment na przedstawienie dotychczasowych efektów oraz odpowiedzenie na wszelkie pytania i wątpliwości klienta zlecającego projekt. Deweloperzy otrzymują dzięki temu bezcenną informację zwrotną. Zarządzanie projektami według zasady agile w praktyce oznacza otwartość firmy programistycznej na zewnętrzne sugestie. Zaowocuje odczuciem partnerskiej współpracy między stronami, w której klient staje się częścią projektu i ma wpływ na wprowadzanie zmian na każdym etapie niezależnie od harmonogramu prac.
Zarządzanie projektami w metodyce agile wpływa na realizację projektów zgodnie z wyznaczonymi zasadami. 12 zasad agile pomaga wyznaczyć priorytety sposobu pracy i wprowadzania zmian przez członków zespołu. Zasady w podejściu zwinnym brzmią następująco:
Metody zwinne dzięki zasadom, wartościom oraz usystematyzowanym prowadzeniem prac związanych z wytwarzaniem oprogramowania niosą za sobą wiele zalet.
Podzielenie dużego projektu na mniejsze etapy przez zespoły pracujące w metodologii agile jest jedną z podstawowych zasad tego podejścia. Pozwala to członkom zespołu na równe tempo pracy. Celem jest jak najszybsze stworzenie działającego oprogramowania, które później po przeanalizowaniu wyciągniętych wniosków można udoskonalać.
Regularne spotkania, które są jednym z głównym wartości metodologii agile pozwalają szybciej uzyskać informację zwrotną od klienta, które można od razu wdrożyć. Zmiany zastosowane w trakcie projektu wpływają na lepszy finalny produkt, a przez to zadowolenie klienta. Tradycyjne podejście zazwyczaj opiera się na pracy deweloperów zgodnie z wstępnymi rozmowami z klientem oraz pokazaniu oprogramowania dopiero, gdy jest już skończony.
Regularne spotkania, ale też słuchanie uwag klienta i wprowadzanie zmian zgodnie z zasugerowanym przez niego kierunkiem wpływa na jego poczucie zaangażowania w projekt. Częste spotkania wymuszają również większą ilość testów oprogramowania, a przez to wyłapanie możliwych błędów i ich naprawienie.
Zarządzanie projektami w metodologii agile jest nowoczesnym podejściem do prowadzenie projektów związanych z wytwarzaniem oprogramowania. Obok jasnego harmonogramu prac jest miejsce na wprowadzanie zmian i modyfikacji, by nadążać za trendami w branży. Szczególnie ważne jest to w projektach programistycznych, które trwają kilka lub kilkanaście miesięcy.