ul. Powstańców Śląskich 7a
53-332 Wrocław
NIP 8992786490
KRS 0000608120
REGON 363987723
Global4Net Sp. z o. o.
+48 71 769 11 32
© 2009 – Global4Net. All Rights Reserved.
Agile to zbiór zasad wspólnych dla zwinnego tworzenia aplikacji. Opiera się on na założeniach, które należy wdrożyć, aby poprawić procesy deweloperskie i przyspieszyć powstanie aplikacji. Założenia polegają przede wszystkim na skupieniu się na praktycznej części tworzenia aplikacji oraz pragmatyzmie i dobrej komunikacji – zarówno w zespole, jak i z klientem.
Współcześnie stosuje się te techniki dla szybkiego rozwoju, ale również dla poprawy jakości produkcji, lepszego pilnowania budżetu i jednocześnie stworzenia produktu, który usatysfakcjonuje klienta. Metodyki zwinne przygotują zaangażowanych w projekt do produktywnej pracy i stworzenia wysokiej jakości aplikacji.
Analizując wytyczne projektów, stworzonych w duchu praktyk zwinnych, zauważyć można pewne ambiwalencje. Deweloperzy dość pewnie zachwalają produkty stworzone metodą Agile. Transformacje organizacji pracy na Agile używane są jako czynnik przekonujący klienta do wybrania usług danego software house’u. Jednak klienci wciąż nie są przekonani do metodyk zwinnych. Wątpliwości pochodzą z braku wiedzy na ten temat oraz z charakteru Agile. Zakłada on brak szczegółowości projektu, co może odstraszać niedoświadczonych. Powoduje to niezdrowe napięcie w relacji z klientem, a to z kolei nie służy podążaniu prawdziwej filozofii Agile.
W Agile bardziej ceni się mniejszy nakład pracy w stosunku do normalnego procesu produkcyjnego, który jednak przynosi zdecydowanie lepszy rezultat. Brzmi to może niedorzecznie, ale jeśli zastosować odpowiednie techniki, to efekt będzie doskonały. Wyzbycie się niepotrzebnych etapów pracy podczas planowania, budowania strategii, ale przede wszystkim – pracy koncepcyjnej, może być kluczem do stworzenia lepszego produktu w krótszym czasie.
Zamiast rozmyślać nad ostatnim punktem projektu, odległym tak bardzo, że wciąż wydaje się nieosiągalny, lepiej skupić się na najbliższym etapie realizacji i upewnić się, że produkt w danym etapie pracy będzie dopracowany. Jego funkcjonalność powinna być najważniejsza dla zleceniodawcy, ponieważ determinuje odbiór produktu przez klienta.
Przedstawiając to podejście na konkretnym przykładzie, pod lupę weźmy działalność e-commerce. Zamiast uzbrajać produkt dla sklepu online we wszystkie możliwe metody płatności i trwonić przy tym czas i pieniądze, być może lepiej będzie skupić na rozwiązaniu prostszym lub na gotowym produkcie? Następnie po analizie jego wyników można wtedy podjąć decyzję o rozbudowie lub implementacji innego, bardziej wysublimowanego rozwiązania. Nie chodzi tu bynajmniej o półśrodki, ale raczej o skupienie się na najbliższych problemach i ich rozwiązywanie ich w najprostszy możliwy sposób.
Według filozofii Agile należy skupić się na funkcjonalność produktu w danym momencie, a nie analizować i prognozować jego funkcje i narzędzia na przyszłość. Perspektywa braku planów może napawać obawami. Jednak w praktyce jak często dalekosiężne plany odnośnie produktu IT faktycznie się realizują? W trakcie tworzenia produktu i tak zmieni on swój wygląd i funkcjonalność, a poprzednie plany nie będą już miały miejsca w nowej planowanej realizacji. Stanie się tak dlatego, że decyzje podjęte do tej pory uniemożliwią wykonanie zakładanego rozwiązania i w efekcie tak czy inaczej potrzebna będzie alternatywa. Ta z kolei będzie musiała być stworzona najpierw w koncepcji. Praca przy analizie wykonana będzie zatem dwukrotnie, zupełnie bez potrzeby — najpierw na etapie planowania, później, w obliczu zmiany architektury.
Jako klient nie musisz się jednak obawiać. Zespoły deweloperskie mają doświadczenie, na którym można polegać. Doświadczenie to wypływa z wielu udanych projektów, ale równie dużo wiedzy pochodzi z porażek. Pomogą Ci oni wybrać odpowiednią ścieżkę i konkretne rozwiązanie na danych etapach drogi do stworzenia produktu. Z komunikacji pomiędzy klientem a deweloperami zawsze wyniknie odpowiednie rozwiązanie. Przekazanie pomysłów do wykonawców skutkować będzie ich opinią i być może alternatywnymi propozycjami. W Agile stawia się na rozwiązanie najprostsze i najbardziej użyteczne. Nie można zapomnieć, że rolę w rozwoju produktu gra również budżet. Doświadczenie może uchronić od niepotrzebnego trwonienia środków na analizę i próżną pracę już w najwcześniejszym etapie planowania.
Kolejną ważną cechą metodyk zwinnych jest umiejętność sprzeciwienia się niepotrzebnym zmianom w projekcie. Jeśli konkretne rozwiązanie powstało i spełnia swoją funkcję, warto jest skupić się na reszcie projektu, w celu jego szybszego zamknięcia. Aby osiągnąć swój najważniejszy cel, czyli doprowadzić projekt do realizacji, nie można wprowadzać ciągłych nieistotnych zmian i analizować każdego najmniejszego szczegółu. Ustalenia pewnych granic z interesariuszami może wyjść wszystkim na dobre, a zmiany, które wymagali, zawsze można wprowadzić później.
Najgorsze, co może przydarzyć się projektowi, to chwilowe wstrzymanie postępów lub poprawki funkcjonujących elementów jeszcze przed oddaniem gotowego produktu. Źle wpływa to na płynność pracy deweloperów i ogólny rozwój projektu. Ewentualne zmiany powinny być komunikowane przed wdrożeniem. Należy jednak pamiętać, że produkt nigdy nie będzie idealny za pierwszym razem. Nic nie stoi na przeszkodzie, aby dopracować go później, tak aby spełniał wszystkie wymagania zleceniodawcy, ale przede wszystkim – użytkownika.
W płynności tworzenia produktu ważna jest nieprzerwana i szybka praca. Nie będzie ona możliwa, jeśli zespół deweloperów będzie musiał stale cofać się i wprowadzać zmiany w gotowej już funkcji. Nawet jeśli zmiany wydają się niewielkie, to w praktyce mogą oznaczać dużo pracy w reorganizacji architektury aplikacji, ze względu na naturę korekty oraz idące za tym konsekwencje. W efekcie takie małe zmiany mogą znacznie przedłużyć pracę nad produktem, co nie będzie współmierne do efektów osiągniętych samą zmianą. Komunikacja okaże się tutaj zbawienna. Zespół developerski uszanuje opinie i wymogi interesariuszy, ale musi również brać pod uwagę swoje cele, czyli jak najszybsze ukończenie aplikacji.
Częścią filozofii Agile będzie mniej planowania, a więcej efektów i pragmatycznego podejścia. Czasem warto zastanowić się nad szybszym ukończeniem testów, które weryfikują bezbłędne wykonanie planu i przejściem do kolejnego etapu. Eksperymentowanie na różne sposoby może naturalnie przynieść pozytywne efekty, ale czasem warto odwołać się do doświadczenia developerów i przystać na najprostsze rozwiązanie, ponieważ może okazać się ono najlepsze nawet na dłuższą metę.
Aby z powodzeniem ukończyć projekt w metodykach zwinnych potrzebna będzie przede wszystkim dobra współpraca z doświadczonym zespołem. Wydaje się to oczywiste, ale należy podkreślić, że poleganie na zespole, któremu powierzyło się realizację, zawsze da lepszy efekt, niż nieskończony wyścig do perfekcji. Koniec końców klient bardziej doceni produkt, w którym przeważa jego funkcjonalność niż nadmierna innowacyjność.
Od początku 2022 roku wchodzimy w skład Unity Group. Teraz zapisując się do naszego newslettera, będziesz na bieżąco z informacjami całej naszej organizacji.