Pasjonatka biznesu, zarządzania i nowych technologii. Jeżeli chcesz o coś Cię zainteresowało, chcesz doprecyzować, masz pytania albo wątpliwości – zapraszam do kontaktu

info@welovebusiness.pl 

Blog

0

Fenomen Agile – szansa dla wszystkich czy chwilowy trend?

W agile robi się w tej chwili wszystko, nie tylko oprogramowanie. Korzysta się z niego przy tworzeniu zespołów, produktów, świadczeniu usług, zamówieniach publicznych w Polsce (!). Słyszałam również, że można wychowywać tak dzieci 🙂 Czym w ogóle jest? Na czym polega? Czy ma jakieś wady?

Manifest agile

Istnieją cztery podstawowe wartości, które leżą u jego podstaw. Twórcy agile przewartościowali tradycyjne postrzeganie biznesu i pracy w ogóle. Stwierdzili, że można tworzyć taniej, szybciej i lepiej.

Manifest zwinnego programowania

Odkrywamy nowe metody programowania dzięki praktyce w programowaniu i wspieraniu w nim innych. W wyniku naszej pracy, zaczęliśmy bardziej cenić:

Ludzi i interakcje od procesów i narzędzi

Działające oprogramowanie od szczegółowej dokumentacji

Współpracę z klientem od negocjacji umów

Reagowanie na zmiany od realizacji założonego planu.

Oznacza to, że elementy wypisane po prawej są wartościowe, ale większą wartość mają dla nas te, które wypisano po lewej.

Metodyki tradycyjne a agile

Tradycyjne metody (ang. waterfall) wymusza linearne podejście projektowe. Angielskie określenie dokładnie oddaje tą rzeczywistość – wodospad spada w jednym kierunku a zmiana pierwotnych założeń jest trudna i kosztowna. Czasem nawet niemożliwa.

Rozpoczynasz pracę analityczną od określenia, czego dokładnie potrzebujesz. Definiujesz cechy, jakie ma mieć Twój produkt. Widzisz efekt dopiero na testach akceptacyjnych. Twój zespół ma sporo pomysłów, jak można coś ulepszyć ale nie możecie tego zrobić. Wracasz na początek i od nowa definiujesz wymagania.

W agile nacisk jest położony na szybki rozwój produktu i nieustanne zmiany. Produkt dzielony jest na mniejsze, które mogą być później łatwo połączone. Praca odbywa się jednocześnie nad wszystkimi, w miarę możliwości, elementami, które są budowane, testowane, redefiniowane i przebudowywane. To niewątpliwie zapobiega sytuacji, kiedy podczas testów okazuje się, że członek zespołu o czymś zapomniał i trzeba ponieść dodatkowe koszty, by to poprawić.

Kiedy jednak Twój projekt określony jest w ogólnych założeniach i możesz zaufać swoim ludziom, nie przeszkadzaj im w tworzeniu. Będziesz zaskoczony efektami. Szczegółowe określenie wymagań, zgodnie z Waterfallem, nigdy nie wytrzymuje próby zadowolenia zespołu. Produkt nigdy nie będzie tak wysokiej jakości, jak ten stworzony w agile.

Jak to działa?

Może wydawać się, że to uproszczenie. Pozwala jednak pogodzić dwie grupy tworzące oprogramowanie – inżynierów i deweloperów. Rozpoczęcie od ogółu i przejście do bardziej szczegółowych kwestii pozwala obu tym grupom dostosować produkt do aktualnych oczekiwań. To również dobry punkt do rozpoczęcia jakiejkolwiek dyskusji. Jest sporo miejsca na potencjalne kompromisy w stosunku do pierwotnych założeń. Podstawą jest jednak to, by nie dostosowywać procesu tworzenia do ludzi ale znaleźć ludzi, którzy dostosują się do procesu. Nastawienie zespołu jest jednym z kluczowych elementów agile.

Inżynierowie oprogramowania przyzwyczajeni są do rygorystycznych zasad, do których muszą dostosowywać swoje rozwiązania. Ale powinni także rozumieć cały problem zanim zaczną nad nim pracować. Zrozumienie potrzeb biznesu jest na tym etapie jest niezwykle istotne dla dalszego procesu. Tworzenie produkty niematerialne jest z tego punktu widzenia szczególnie trudne. Pomysłu przecież nie można dotknąć ani spojrzeć na problem oczami innej osoby. Dlatego tak ważna jest intensywna współpraca twórców z zespołem klienta i precyzyjna komunikacja.

Programiści aplikacji są bardziej elastyczni. Ich zadaniem jest głównie proces kreatywny, interakcja z klientem i wprowadzanie zmian. Takie podejście jest najlepszym możliwym dla użytkownika końcowego.

Plusy i minusy

Agile

agile

Zarówno Ty, jak i Twój zespół, ciągle widzicie efekty pracy twórców i w każdej chwili możecie wskazywać pola do zmian. Większe zaangażowanie zespołu przekłada się na ogólny obraz produktu. Większe oczekiwania biznesu to z kolei szansa dla twórców, by bardziej się wykazać i sprostać wszystkim oczekiwaniom klienta.

Potencjalnie możesz wejść na rynek szybciej z produktem. Wprowadzanie małych zmian do elementów funkcjonalnych nie wpływa na jego działanie. Warto jednak określić, co będzie tym minimum dla wejścia na rynek a co można zostawić na później.

Agile jest dużo bardziej elastyczny czasowo. Praca w określonych sprintach, nie dłuższych niż kilka tygodni, przybliża zespół do osiągnięcia kolejnego celu. Na podstawie tego łatwo można przewidzieć, jakie możliwości dalej kolejny sprint.

Wymagania się zmieniają, ponieważ zespół zmienia nastawienie do konkretnych pomysłów czy rozwiązań. Zyskujesz wiedzę o potrzebach użytkowników, którą możesz wykorzystywać w dalszej części projektu.

Oprogramowanie wspierające pracę w agile jest w pełni transparentne i intuicyjne. Łatwo możesz weryfikować obciążenie poszczególnych członków zespołu oraz ilość wykonanych przez nich zadań.

agile

Zwiększenie zaangażowania zespołu w tworzenie produktu oznacza, że będzie trzeba ich obowiązki przenieść na inne osoby. Organizacja pracy w taki sposób, by każdy z jego członków mógł się w pełni zaangażować w projekt może być wyzwaniem.

Pełne zaangażowanie oznacza również konieczność koncentracji na aktualnych zagadnieniach. Nie ma miejsca na multitasking.

Mogą pojawiać się problemy w przypadku integracji z innymi produktami, kiedy od początku nie wiemy jakie one będą.  To wyzwanie leży jednak po stronie programistów, może jednak podnieść wartość projektu.

Plusy i minusy

Waterfall

agile

Ponieważ od samego początku cel projektu jest jasny, planowanie strategiczne jest ułatwione.

Jako inwestor, nie musisz być zaangażowany w projekt. Wystarczy, że zaakceptujesz wymagania stworzone przez Twój zespół. Komunikacja i planowanie jest łatwiejsze. Zaangażowanie zespołu jest wymagane, natomiast sporą część twórcy mogą przygotować samodzielnie, do akceptacji.

Zaangażowanie w projekt z wykorzystaniem Watterfall wymagane jest w fazie analitycznej oraz testów akceptacyjnych np. jeżeli graficy stwierdzą, że identyfikacja wizualna produktu jest prawidłowa, mogą zająć się innymi zadaniami. Pozwala to na uproszczone zarządzanie czasem.

Integracja z innymi komponentami bywa z reguły mniej skomplikowana. Od początku wiadomo, z jakimi produktami, integracja jest konieczna. Można to przygotować na początku i w trakcie projektu ewentualnie wprowadzać drobne poprawki.

agile

 Projekt ma szanse powodzenia tylko, kiedy wymagania są opisane w rozsądny sposób oraz nie będzie konieczności ich gruntownego ich przebudowania ze względu na zmiany organizacyjne czy otoczenia biznesowego.

 Wdrożenia zmian wymagają wysokich nakładów finansowych oraz szczególnego nadzoru.

 Ryzyko biznesowe, w przypadku nieprawidłowego sformułowania wymagań lub ich niezrozumienia, jest ogromne. Projekt może zakończyć się całkowitą porażką a faktury trzeba tak czy inaczej uregulować. Komunikacja między Twoim zespołem a deweloperami jest kluczowa i może zaważyć na sukcesie projektu.

Podsumowanie

Wybór metodyki pracy uzależniony jest od wielu czynników. Zależy co tworzysz, jaki zespół masz do dyspozycji, jakich deweloperów. Często dobre efekty daje połączenie obu metodyk – można przecież opracować prawidłowo wymagania w Waterfall i wdrażać je agile. Żadna z nich nie gwarantuje jednak sukcesu.

Jak to u Was wygląda? Które podejście jest Wam bliższe?

Opublikuj komentarz