Dzisiaj będzie o Agile. Agile, w który wierzę, bo jest też Agile, który jest po prostu płytki, nieprzemyślany, prowadzi na manowce i odciąga nas od pracy, którą chcielibyśmy zrobić. A w zwinności jest sporo wartości, które możemy przełożyć na swoją organizację. Tylko warto to sobie jakoś poukładać. Dziś będzie o zwinności, w którą wierzę :)
Co to jest Agile?
Po 20 latach patrzenia na to, co się dzieje, mam wrażenie, że jesteśmy dokładnie w tym samym miejscu. Mentalnie niby dużo się zadziało, o zwinności dużo się powiedziało, ale też jakby temat się wypala, przynajmniej w mojej bańce, a być może on w ogóle dociera do świata. Chciałbym podzielić się moją perspektywą myślenia o tym, jak to zrobić praktycznie, jak to wykorzystać w swojej firmie, w zespole i na co zwrócić uwagę. To akurat nie będzie naukowe, a totalnie życiowe. Na początek warto byłoby sobie powiedzieć czym jest zwinność w ogóle i czym jest Agile. Według definicji to jest działanie w taki sposób, jak jest zapisane w Agile Manifesto. Zwinny manifest wytwarzania oprogramowania, który możecie sobie odszukać w sieci. Kilku mądrych gości spisało w jednym miejscu jak chcieliby współpracować. Tylko jeżeli nie rozumiesz tego procesu, który się dzieje pod spodem, który doprowadził do tego spisania, powoduje, że wybieranie tego manifestu od tak dla siebie sprawia, że to bardziej przypomina kult cargo.
Wewnętrzny krytyk właśnie mnie pyta “hej Mariusz, Mariusz czy te czasem kogoś nie obrażasz?” Nie wiem, może kogoś obrażam, ale w tym momencie za bardzo mnie to nie interesuje, bo to prawda. Czasem małpowanie, bez zastanowienia się, dlaczego akurat tak a nie inaczej, to się rozjeżdża.
Agile – jak ja go określam
Zwinność to stan, w którym ludzie pracują ze sobą, świadomi procesów, w których uczestniczą i wyposażeni w narzędzia, które umożliwiają dostarczanie wartościowych rezultatów, bez popadania w biurokrację. To jest mój Agile.
Czyli jest świadomość tego, że pracujemy na pewnym procesie, mamy narzędzia do działania, które pozwalają wytworzyć coś konkretnego, ale nie pakujemy się w biurokrację. Bardzo łatwo wpaść w biurokrację, a jednocześnie ludzie czytając Manifest, bardzo często czytali “a dokumentacja nie ma aż takiego znaczenia, procesy nie mają znaczenia, mają znaczenie ludzie”. Więc to jest świadomość tego, że protesty są, można do nich użyć właściwych narzędzi i mają wytwarzać rezultaty bez biurokracji.
Rozwijając moją definicję Agile to jest współpraca z klientem, wspierana właściwymi, dopasowanymi do zadania umowami lub wewnętrznymi zasadami pracy, których właścicielem są zespoły. O co mi tutaj chodzi? W zwinnym manifeście jest napisane, że współpraca jest ważniejsza, niż negocjowanie kontraktu. Dla mnie jedno łączy się z drugim. Współpracujemy z klientem, ale potrzebujemy współpracować w taki sposób, żebyśmy umowę i system, który sobie tworzymy do współpracy był spójny. Bo jeżeli podpiszesz kontrakt na fix price, a naprawdę robisz projekt discovery, w którym nie wiadomo, co wypracujesz, to od początku ustawiasz się na sytuację, która będzie bardzo mocno konfliktowa i się totalnie wysypiemy.
A co jeżeli chodzi o zasady pracy? Dużo projektów dzieje się wewnątrz, nie dostawca, klient, tylko zespół w tej samej firmie. Właścicielami tych zasad są zespoły. To wy ustalacie jak pracować, żeby to było użyteczne i nikt z wewnątrz wam nie mówi jak macie działać. Dostajecie zadanie i to nie podlega dyskusji, macie jakiś budżet na jego dowiezienie, zorganizujcie sobie pracę w ramach możliwości i ograniczeń, żeby móc to dowieźć. Dlaczego ten punkt jest ważny? Ten punkt jest ważny, bo inaczej prowadzi do micromanagementu. Jeżeli zasadą będzie to, że menadżer, mówi co robimy i my nie kwękamy to też jest spoko zasada, tylko fajnie, żebyśmy się jej trzymali.
Dalsza część mojej definicji jest taka, że planowanie uwzględnia ryzyko i zmienność oraz pozwala na dokonywanie zmian, uwzględnienie ich realnego wpływu na dotychczasowe ustalenia. Czyli nie planujemy sobie czegoś totalnie od czapy. Tylko bierzemy pod uwagę, to, że mogą pewne rzeczy pójść nie tak. Jeżeli pojawi się zmiana, to jesteśmy na tą zmianę otwarci. Wprowadzamy to jednocześnie w taki sposób, że ten, kto wprowadza zmianę, jest gotów za nią zapłacić. Albo dostanie informacje, ile to kosztuje i ocena tej zmiany też kosztuje i jej nie wprowadza, ale dotyczy to też całościowych ustaleń. Dlaczego to doprecyzowuje? Bo to są największe problemy, które obserwuje w płytkim rozumieniu zwinności.
Oczywiście poddaję to pod dyskusję, możecie dorzucić jakieś swoje punkty. To jest moje w rozumienie zwinności i podejścia. Sprawdzone i subiektywne.
Teraz trochę odnośnie 12 zasad, które są dopisane do manifestu
Szybkie dostarczanie wyniku nie ma znaczenia, jeżeli klient nie rozumie tego, co dostarczasz. Bardzo często nie skupiam się na błędach. Jeżeli współpracujesz klientem z kimś z zewnątrz, dla którego robisz coś, czego człowiek nie do końca rozumie, bo kupuje to od ciebie, to jeżeli robisz coś pod spodem, robisz to szybko, a druga strona ma poczucie “ale nie wiem co wy w ogóle robicie”, to znaczy, że robisz to źle. To bez sensu, bo w pewnym momencie, jak dostaniesz feedback to się wysypie. Wcale to nie jest winność, to jest dokładnie ten sam problem, który Agile Manifesto miało rozwiązać. Agile nie rozwiązuje kaskady i Waterfalla. Agile rozwiązuje to, że jest brak transparentności i brak dostarczenia czegoś, co ma znaczenie dla klienta. Jeżeli ty coś dostarczasz i klient tego nie rozumie, nie jest w stanie zweryfikować, to robisz to nie tak. Musisz popracować nad swoim przekazywaniem informacji. Dlaczego to, co dostarczyłeś jest ważne dla klienta, jaki ma wpływ na jego/wasze kolejne decyzje.
Kolejny punkt – Zmiana oznacza zawsze coś za coś. Zwinność nie polega na tym, że możemy zmieniać i będziemy super elastyczni. Zmiana oznacza, że nie zrobisz czegoś innego. Zmiana oznacza, że coś, co zaplanowaliśmy już, jest nieaktualne. Zmiana oznacza koszty, zmiana oznacza zmiany w czasie, zmiana jest zawsze na zasadzie coś za coś. Wymieniasz i to jest zwinność, świadome zrozumienie i dorosłe dojrzenie do tego, że nie ma rzeczy za darmo.
Kolejne – dostarczaj to, co potrzebne w stanie do przeglądu, bez czekania na doskonałość. To jest akurat ważne. Idziemy z tym, co mamy, chcemy to pokazać, żeby złapać informację zwrotną jak najszybciej, żeby nasz produkt został zweryfikowany. Czy strona czy raport, czy cokolwiek robisz. Jeżeli dostaniesz feedback wcześniej, to możesz to poprawić. Jednocześnie, jako perfekcjonista będziesz w stanie mu zrobić coś lepszego.
Teraz bardzo ważny punkt. Plan to też coś wartościowego. Plan to nie jest teoretyczne rozpisywanie, planowanie, planowanie. Róbmy coś po tym, jak się nad tym zastanowimy. Od pewnego momentu plan może być najbardziej wartościową rzeczą, dzięki której oszczędzisz całą masę stresu i frustracji. I znowu zwinność to nie jest brak planowania, zwinność oznacza kilka innych rzeczy.
Współpraca nie jest za darmo, współpraca kosztuje. Zarezerwuj sobie czas na gadanie, potrzebujesz rozmawiać z innymi, wymieniać informacjami, dostroić się do nich. Ja jako introwertyk przekonuje się jak najbardziej, że jeżeli się nie widzimy, nie gadamy, nie rozmawiamy, nie wymieniamy myśli, proces potrafi działać. Natomiast jeżeli gadamy częściej, omawiamy to jak pracujemy, co chcemy dowieźć, mówimy o produkcie, wszyscy tym żyją. Efekt jest dużo lepszy, jest dużo doskonalszy, bo nie siedzisz w swoich zamkniętych klatkach, tylko płynie myśl, idea zaczyna krążyć. Jeśli nie zainwestujesz we współpracę to jej nie będzie. Trzeba sobie zdefiniować to, czym ta współpraca jest, jak my współpracujemy, na jakich zasadach. W przypadku Scruma to jest super, ludzie siedzą w jednym miejscu, pracują nad jednym tematem, to może zadziałać. Ale jeżeli jesteś rozproszony, no to warto w tą współpracę jakoś zainwestować.
Zaufanie nie oznacza braku weryfikacji wyników, sposobu pracy. No to jest mega ważna rzecz. Gdybyśmy sobie nie ufali, to byśmy w ogóle nie zaczęli pracować. Ale weryfikację to, jak dowozimy wyniki, czy dowozimy i czy pracujesz taki sposób, jak powinieneś to jest perspektywa bezpieczeństwa i dla mnie, i dla ciebie. Jako zlecającego, odbierającego w ramach zespołu. Jesteśmy współzależni i weryfikacja tego, jak robimy w ramach transparentności, powinna być okej, jak najbardziej okej. Jeżeli ktoś ma problem z weryfikacją wyników pracy i sposobu pracy, no to pojawia mi się jakiś problem. Jasne, że zgrzyt może być z jednej i z drugiej strony – za dużo weryfikuje, za mało weryfikuje i dobrze, żebyśmy wrócili do tych zasad, które jako zespół zweryfikujemy. Ale to nie znaczy, że pracujesz we mgle i nikt tego nie sprawdza. Praca wirtualna ma swoje ograniczenia, warto się spotykać na żywo. Widziałem taką krytykę jednej zasad na zasadzie że praca, komunikacja twarzą w twarz jest już pase, bo przecież pracujemy zdalnie. Nie, to, że pracujemy zdalnie, to nie znaczy, że coś działało, przestało działać, tylko robimy to po prostu mniej. Znowu moje przekonanie. Pracujemy zdalnie jako zespół widzimy się raz na miesiąc i to działa super. Jesteśmy ze sobą, mamy ze sobą czas na to, żeby przegadać i wtedy, jak pracujemy zdalnie, to nasza efektywność jest lepsza. Praca wirtualna zawsze będzie miała ograniczenia. Jeżeli jakoś ich nie skompensujesz, to okaże się, że na koniec masz oderwane od siebie jednostki.
Mierzenie postępów wg. Agile Manifesto 12 zasad. Działające oprogramowanie jest jedyną miarą sukcesu. Postęp się mierzy tym, co ma sens w danym momencie i czasem zabicie projektu jest największym postępem. Nieprzepalanie większej ilości pieniędzy. Czasem mierzymy postęp odpowiadaniem na kluczowe pytania w planie, czasem mierzymy działającym oprogramowaniem, czasem mierzymy raportami, czasem mierzymy powstającą architekturą, czasem dokumentacją, mierzymy tym, czym ma sens mierzyć w danym momencie, a nie tylko działającym produktem. Doprecyzowanie, minimalizowanie ryzyka też może być postępem, więc nie ograniczajmy się tylko do jednego.
Zwinność wymaga dyscypliny. Nie oznacza chaosu, działania sobie, jakkolwiek chcemy. Jak nie ma dyscypliny, jest chaos, w każdym ludzkim zespole, jeżeli nie jesteśmy w jakiś sposób dyscyplinowani rozjeżdża się. Jak na spotkaniu masz time keepera to spotkania są efektywniejsze. Ramy dyscyplina wcale w kreatywności nie przeszkadzają. Jeżeli nie będzie dyscypliny, procesu na który się mówimy i przestrzegania go nawet w ramach samo organizującego się zespołu będzie chaos.
Kolejna rzecz – nie odpuszczaj niespójności. Jeżeli widzisz, że coś nie pasuje w rozwiązaniu, w którym jesteś, widzisz, że ktoś zgrzyta to nie odpuszczaj tego. Ja opuściłem kilka razy, nie zamierzam tego robić chyba nigdy więcej. Coś nie trybi, to dotknąłeś jakiejś dużej wartości. Coś w wymaganiach może być nie tak, coś nie funkcjonuje. Natomiast tradycyjny sposób działania jest taki – “dobra zapomnij o tym, doprecyzowujemy”. Sam też tak sam też tak robię, że okej, dobra, w tym momencie to ignorujemy i działamy dalej. Natomiast w momencie, w którym jest chwila spokoju, warto się zastanowić, co w tej niespójności nie działa, bo być może tam się kryje wartość, tam się kryje największe ryzyko. Nie jestem w stanie nazwać do końca tej zasady, natomiast jeżeli czuję, że coś jest spójne, zanotuj to sobie i daj sobie czas na pomyślenie o tym.
Idziemy dalej – Prostota kryje się za skomplikowaniem. Jeżeli możesz coś rozwiązać myśleniem, a nie działaniem, to zrób, jeżeli potrafisz myśleć w usystematyzowany sposób i wiesz jak dojść do rozwiązania, to jest super. Żeby dojść do prostego rozwiązania, trzeba przejść przez dużo skomplikowanych warstw. Tak przynajmniej to u mnie wygląda. Daję sobie czas na przemyślenie, wchodzi myślenie wolne i wtedy chwilę później wiesz, aha, no dobra, możemy zrobić to prościej. Prostota bierze się z iteracji od ogólnego kamienia. Trochę ociosujesz, potem bardziej i wychodzi rzeźba. Najczęściej zaczynasz od skomplikowanych. Jeżeli zaczynasz tylko od pierwszej wersji planu i ją zostawiasz, to najprawdopodobniej masz najbardziej skomplikowaną wersję, które miała być. Jakbyś dał sobie ze dwie iteracje jeszcze to jest spora szansa, że możesz to sporo uprościć. Lepiej dowieść rezultat. Warto czasem pomyśleć, nie robić oprogramowania czy cokolwiek innego, tylko myślenie może być postępem.
Samoorganizujący się zespół i tak musi mieć lidera w danym punkcie czasu albo się rozpadnie. No i okej, możemy się kłócić, nie kłócić, zespół potrzebuje mieć lidera, finał. W danym momencie ta rola może być przechodnia, że ktoś prowadzi bardziej. Ale bez lidera zespół się rozpadnie. I dobrowolna hierarchia to też są organizacje, a jak zespół uzna, że pasuje mu hierarchia wodzu prowadź, będziemy ciebie słuchać. To znaczy, że zespół się samo zorganizował i jest okej. To nie znaczy, że jeżeli uruchomiliśmy hierarchię, to zrezygnowaliśmy ze zwinności. Nie, w danym momencie może się okazać, że to jest najlepsza forma prowadzenia zespołu i dla zespołu, i dla lidera. To że możesz jako lider przekazywać władzę komuś innemu, kto w danym momencie poprowadzi dalej, bo widzi lepiej, też jest jak najbardziej okej. Nie ma lidera, zespół się rozpadnie, zespół się zatrzymuje, hierarchia jest okej.
Jeżeli praca zespołu się nie zmienia i nie wyciągasz wniosków, to znaczy, że się nie rozwijasz. To dosyć mocno mnie uderzyło. Ostatnio pracowaliśmy z firmą, która twierdzi, że działa w zwinny sposób ale retrospekcji nie było nigdy. Kiedy robiliście przegląd projektu i pracy projektu? Jak pracujecie? Jak pracujecie jako zespół? Tak myślowo, żeby świadomie na to spojrzeć i zastanowić się i nazwać pewne rzeczy, żeby to lepiej działało? Czy mieliście taki czas, żeby się nad tym zastanowić? Tu pieniądze leżą tak naprawdę, pod kątem uprawnień procesu. Warto to robić od czasu do czasu.
To by było tyle jeżeli chodzi o Agile, w który wierzę. Mam nadzieję, że się podobało. Tradycyjnie dziękuję tym, którzy zostali do końca. Dajcie znaka, kto do końca doczytał i czy Wam to coś dało.
VIDEO