W jednym z artykułów wyjaśniałem już co to jest “Agile”. Dzisiaj zajrzymy głębiej. Diabeł tkwi w szczegółach.
12 zasad podejścia zwinnego (Agile – dużo bardziej lubię angielski termin, może dlatego, że gdy w 2003 zaczynałem z tym podejściem, to pracowałem głównie po angielsku i korzystałem z anglojęzycznej literatury). Te zasady można znaleźć wszędzie, w modnym SCRUM (i bardzo skutecznym sposobie wytwarzania oprogramowania) i wszelakich mniej znanych metodach (np. XP – Extreme programming).
To jest wpis filozoficzny, ale bardzo ważny. Zresztą zobacz samodzielnie – czy nie chcesz, żeby to agile było filozofią działania u Ciebie w życiu :)
Na czym polega 12 zasad Agile
1. Metody zwinne zakładają “Najwyższy priorytet ma dla nas zadowolenie klienta”. Niby oczywiste, ale sami możecie przypomnieć miejsca, gdzie jesteś petentem. Wchodzisz i nie czujesz się mile widziany. W przypadku projektów IT kiedyś działało to na zasadzie “głupi biznes przychodzi i czegoś chce”, a biznes traktował IT tak samo.
Jeżeli robisz cokolwiek na koniec klient płaci za Twój urlop. Ważne jest dzięki czemu osiągamy zadowolenie klienta a osiągamy dzięki wczesnemu wdrażaniu właściwego i wartościowego oprogramowania. Te zasady dotykają oprogramowania, dlatego, że stamtąd Agile się wywodzi. Możesz oprogramowanie zamienić na produkt lub usługę i uzyskasz to samo. Chcemy wcześnie i ciągle wdrażać wartościową usługę dla klienta. Masz działać w rytmie biznesu, dostarczać rezultaty szybko i stale. Po to, żeby biznes widział, że dostarczasz wartość. Tak samo w przypadku pracy z klientem.
2. Bądźcie gotowi na zmianę wymagań. Klient zawsze może zmienić wymagania, bo to naturalny proces uczenia się. Zaczynamy projekt, najczęściej zleca Ci go ktoś, kto nie ma pojęcia jak to zrobić. W trakcie dowiaduje się czego chce i może doprecyzować oczekiwania. Te zmiany są często frustrujące. W IT chodziło o to, żeby nawet na późnym etapie można było wprowadzać zmiany. Projekty zwinne mają wykorzystywać te zmiany, żeby zapewnić konkurencyjność. Musisz być gotowy do tego, żeby być gotowym na zmiany. Nie znaczy to, że musisz ponosić koszty tych zmian.
3. Dostarczajcie funkcjonujące oprogramowanie często. Chodziło o to, żeby dostarczać coś co działa często, żeby ludzie mogli dać Ci informacje zwrotną co im się podoba, co nie. W kilkutygodniowych lub kilkumiesięcznych odstępach. Im częściej tym lepiej. Im częściej ludzie to zobaczą tym szybciej mogą dać informację zwrotną i możesz to poprawić. Jeżeli się uczysz raz do roku masz tylko jedną zmianę rocznie. Jeżeli poprawiasz coś co miesiąc masz dwanaście szans na zrobienie czegoś lepiej.
4. Zespoły biznesowe i deweloperskie muszą ściśle współpracować. To problem, który drąży wiele organizacji. Biznes i IT powinni ze sobą pracować na co dzień. Z resztą to zasada dla każdego zespołu. Codziennie informacja musi przepływać. Jak rozmawiacie na bieżąco pojawia się zrozumienie i lepszy efekt.
5. Twórzcie projekty wokół zmotywowanych ludzi. Jeżeli zapewnisz zmotywowanym ludziom z odpowiednią postawą właściwe środowisko pracy i zaufasz to dostaniesz rezultaty. To trudne bo zmotywowanych ludzi wcale nie masz aż tak dużo, ale warto ich szukać i im zapłacić.
6. Najbardziej efektywnym sposobem przekazania informacji jest rozmowa twarzą w twarz. Z prostej przyczyny – bardzo wiele elementów bierzemy wtedy pod uwagę – mowę ciała, gestykulację itd.
7. Działające oprogramowanie jest podstawową miarą postępu. W każdym projekcie ostateczny efekt jest miarą postępu, a nie raporty, które pokazują jak ciężko pracujemy. Ostateczny rezultat umożliwiający tworzenie wartości jest tym jak mierzymy postęp – efektem końcowym.
8. Procesy zwinne umożliwiają zrównoważony rozwój. W zwinnym podejściu pracujemy w iteracjach, planujemy, robimy, sprawdzamy, poprawiamy. W bardzo krótkich cyklach, dzięki temu uczymy się, pracujemy lepiej i wytwarzamy mechanizm który przynosi powtarzalny rezultat.
9. Ciągłe skupienie na technicznej doskonałości i dobrym projektowaniu. Agile oznacza szukanie technicznych rozwiązań i poświęceniu uwagi na projektowaniu, żeby to co wytworzysz działało. Im lepsze, spójniejsze podejście tym więcej jesteśmy w stanie dowieźć.
10. Prostota. Moje ulubione. Skomplikowane rzeczy są super jedynie do jarania się nimi w gronie innych ekspertów. Proste rozwiązania, do których trudno jest dojść są sednem. Sztuka minimalizowania ilości koniecznej pracy. Rób jak najmniej, żeby dostarczyć rezultat.
11. Najlepsze rozwiązania architektoniczne pochodzą od samoorganizujących się zespołów. Samoorganizujące się zespoły to sedno. Chodzi o to, żeby ludzie wzięli na siebie odpowiedzialność za pracę, za wynik. Mega rzecz, wymaga dojrzałości. Macie możliwość wypracowania rozwiązań sami, podziałajcie.
12. Cykliczna nauka. Robimy coś, zastanawiamy się co możemy poprawić pod kątem ludzi, produktu, sposobu działania, procesu, uczymy się, adaptujemy i ruszamy dalej. Rewelacyjna sprawa.
Bardzo lubię Agile, te zasady są mi bardzo bliskie, przekładają się na rezultaty. Te zasady są proste, ale nie jest wcale łatwo je stosować. Warto nad nimi pomyśleć. To nie tylko oprogramowanie, to podejście do klienta, produktu itd. Szukamy takich rozwiązań z których chcemy być dumni, taki sposób działania to ułatwia.
VIDEO