Zwinne zarządzanie projektami, Agile Project Management to lek na całe zło tego świata. Jak coś idzie nie tak, to jedyne hasło jakie należy rzucić to zrobimy to Agile! Szczypta Agile tu i tam i problem znika sam.
Co to jest Agile?
Agile jest fajną ideą, tylko przez infantylne podejście jest rozwalany totalnie, dochodzi do nieporozumień i kiepsko działa. Może najpierw trochę o tym co to jest Agile, ja tym żyje od 20 lat i wyrobiłem sobie swoje zdanie. Jak zaczynałem pracę w 2003 roku poznałem Agile Manifesto, pracowałem w zwinny sposób wypracowując własne metody. SCRUM nie był wtedy jeszcze tak bardzo popularny, dopasowywaliśmy coś co by łączyło podejście Project Management Body of Knowledge z PMI z projektem zwinnym, żeby dowozić projekty. To się udawało, działało. W pewnym momencie odpuściłem o mówieniu o zwinności, o zarządzani projektami w IT. Stwierdziłem, że temat jest już tak rozgryziony, że nie ma problemu. 20 lat później okazuje się, że problem istnieje i jest dosyć spory. Co więcej przez promowanie głupot robi się coraz większy problem.
Wszystko co powinniście wiedzieć o zwinności znajdziecie w Manifeście zwinnego wytwarzania oprogramowania. Odkrywając lepsze sposoby wytwarzania oprogramowania i pomagając innym to robić nauczyliśmy się cenić bardziej:
Ludzi i interakcje nad procesami i narzędziami
Działające oprogramowanie nad dokładną dokumentacją
Współpracę z klientem nad negocjowaniem kontraktów
Odpowiadanie na zmiany nad przestrzeganiem planu
Chociaż cenimy sobie rzeczy po prawej, to te po lewej cenimy sobie bardziej.
Obie strony są ważne, bo jak zaczynasz pracować bez jakiejkolwiek ramy i planu to się wysypiesz.
Moim zdaniem problem polega na tym, że w Agile jest jak w Puchatku. Był odcinek, gdzie Puchatek poszedł do Prosiaczka, którego nie było w domu. Im bardziej Puchatek zaglądał do środka, tym bardziej tam Prosiaczka nie było. Genialne zdanie. Mam nieodparte wrażenie, że im bardziej się przyglądamy co tam w Agile jeszcze jest to tym bardziej tam tego nie ma. Przez 20 lat nie wymyślono niczego innego, SCRUM się pojawił jako główny framework kojarzony ze zwinnością i w większości wypadków gadamy o nim, a technik pokazujących, że coś działa wcale nie ma tak dużo. Nie neguję Agile i zwinności całkiem. To o czym mówi Manifest to świetne podejście do pracy projektowej, do pracy z ludźmi itd. Biorąc poprawkę na to, że rzeczy z prawej czyli procesy i narzędzia, dokumentacja, negocjowanie kontraktów, przestrzeganie planu też mają ogromną wartość.
Faterfall vs Agile
Porównajmy sobie czym się różni jedno od drugiego…
Waterfall – od góry do dołu requirements, design, develop, test, deploy.
Agile – prawie to samo tylko w kształcie kółeczka… – requirements, design, develop, test, deploy, review, launch.
Co jest takiego nie tak z Waterfallem, a co tak z Agile? Kółeczko?
Jakiś czas temu mieliśmy dyskusję na LinkedInie, o tym, że “Agile to ciągła zmiana”, na koniec jak szukaliśmy definicji zwinności to usłyszałem, że Agile ma “otwartą definicję”. Jeżeli coś ma otwartą definicję to jest wszystkim i niczym, jest bezużyteczne. Jedna z rzeczy dla których mam zarzut przy promowaniu zwinnego podejścia to branie tego co było wcześniej i pokazywanie w bardziej fancy sposób, robimy kółeczko i od tej pory jesteś bardziej Agile. Jak zadasz pytanie czym się różni to słyszysz odpowiedź “nie rozumiesz Agile, musisz pójść na kolejny kurs”. No chyba nie do końca…. O co chodzi w Agile? Wybierasz tą metodę w której lepiej ci się będzie pracowało, bo lepiej będzie pasowała, czy po kolei czy w kółeczku nie ma znaczenia, to i to może działać.
Budujemy samochód – Waterfall vs Agile
Przejdźmy do kolejnego przykładu. Chcesz mieć samochód to klasycznie Waterfallowo zaczynasz od koła, później budujesz dwie ośki, do tego dodajesz karoserię, a na końcu montujesz silnik i jeździsz. Na górze jest ludek, który reprezentuje interesariusza, który jest niezadowolony przy etapie, kółka, przy etapie osiek, przy etapie karoserii, a zadowolony na koniec.
Jaki jest więc pomysł, żeby już wcześniej interesariusz był zadowolony? No nie zaczynaj od czegoś co ci się przyda w samochodzie, zacznij od deskorolki, co prawda interesariusz nie będzie zadowolony bo chciał samochód, a nie deskorolkę. Natomiast zrobisz kolejną iterację, to dasz mu do deskorolki kierownicę, będzie zdziwiony, ale nie będzie już niezadowolony bo może jeździć. W kolejnym kroku hulajnogę przerobisz na rower, klient już zadowolony. Kolejny krok motocykl – super zadowolenie, a w piątym magicznym kroku pojawi się samochód. Wytwarzanie samochodów polega na tym, że zaczyna się od deskorolki. Ironia jakby ktoś nie wyłapał ;)
Teraz trochę merytorycznie. Jeżeli chcesz zrobić jakikolwiek projekt i chcesz, żeby był wartościowy, nie chcesz wtopić kasy, to zaczynasz od najtrudniejszych i najbardziej ryzykownych elementów na początek. Nie zacząłbyś od kółka w samochodzie tylko od tego co jest najbardziej ryzykowne, silnik, cokolwiek innego ważnego. Wiesz wtedy, że najbardziej niwelujesz ryzyko na dostarczenie poszczególnych punktów, że będzie działać. To nie jest tak, że zaczniesz od kółka na koniec będzie samochód. Istnieje pewna logika i kolejność. Nie działa też tak, że zaczynasz coś innego, idziesz w jedną ścieżkę technologiczną, powstaje coś innego. Jasne możemy dyskutować, że w przypadku oprogramowania to jest inaczej, bo budujesz jedną funkcjonalność, dodajesz kolejną, uczysz się, zmieniasz itd. Tak, ale też ciekawostka, to oprogramowanie Spotify na którym działasz to coś innego niż było kilka lat wcześniej, bo cały czas się zmienia i jest przebudowywane. Zaraz podniesie się głos, że nieprawda bo core engine`u działa taki co 16 lat temu… Może ale jak się zastanowimy to nie jest tak, robisz jedną rzecz do której dodajesz kolejne przydatne rzeczy. Budujesz dom, wybudujesz dom, dodajesz ogród, rozbudowujesz dom, a nie stawiasz garaż i przekształcasz go w dom.
Agile czyli +5000 do inteligencji…
Bardzo dużo propagandy Agile`owej zakłada, że ludzie, którzy pracują w Waterfallu są debilami.
Na powyższym obrazku mamy pomysł na początku, a później zaczyna się magia i na Waterfallu dopiero na koniec ktoś mówi mam wszystko gotowe, wartość się pojawia na końcu. Naprawdę… To głupie podejście do jakiegokolwiek projektu, Waterfall czy nie, jeżeli nic nie widzisz i dopiero na koniec musisz poskładać elementy i sprawdzić czy udało się osiągnąć rezultat czy nie, to coś poszło nie tak. Chociaż oczywiście zdaje sobie sprawę, że istnieją projekty, gdzie nie ma innej możliwości, robisz cały cykl, okazuje się, że nie działa, wywalasz i robisz od nowa.
Zauważcie na tym obrazku, że jak myślisz Agile to nagle dostajesz +5000 do IQ. Jak w Waterfall mają do 50 max to ty nagle jesteś oświecony i mówisz ustalmy najpierw priorytety do tego co robimy i będziemy dodawać poszczególne rzeczy, tym sposobem mając wartość wcześniej. Ok, a jak się buduje dom, nie w ten sposób? Najpierw ziemia, fundament już jakaś wartość, na tym stawiasz ściany, jakaś wartość, stan surowy zamknięty jakaś wartość…. To zwinne podejście czy Waterfall jak działamy w budowlance? Połączenie jednego i drugiego może. Generalnie tłumaczenie, że Agile jest lepszy bo włączamy myślenie od Waterfall bez myślenia, to będzie prawdziwe bo przecież myślenie się obroni. Tak potrzebowałem tego wpisu robię go dla siebie ;)
Zarzut do Agile
Zarzut do Agile może być taki, że jeżeli potraktujemy to zbyt luźno to może się okazać, że wszystko nam się rozjeżdża, bo musimy działać w pewien zdyscyplinowany sposób. Jak to robić, żeby cała organizacja skorzystała ze zwinności? Mamy fundament, nastawienie, ludzi, zwinne podejście, praca w iteracjach, lean, serial work. Czemu tu jest serial work? Kojarzą wam się te schodki? Powiem wam co jest schowane pod spodem… Tradycyjny Waterfall, podejście, której nazwy nie można wymawiać, więc zostało zmienione na serial. Mamy też Way of working i to jest fundament podejścia.
Jak do tego dodamy zdyscyplinowane podejście do firmy, tworzenie value streamu wartości i zdyscyplinowane DevOps`y to mamy świetny zdyscyplinowany Agile. Znajdź kilka różnic pomiędzy tym, a tym o czym mówiłem na początku, gdzie się mieści wszystko na jednej kartce. Możemy myśleć o Agile mindsecie, żeby wszystko pod spodem enterprise architecture, zarządzanie ludźmi działo sie w zwinny sposób, w poszczególnych kawałkach. Ubieranie w całość, że będzie zwinna, super komunikowała w dużych zespołach…. Przy dużych zespołach nie jest to już takie zwinne jakby się chciało. Generalnie idea, żeby dokładnie ten sam sposób działania 12 osobowego zespołu przełożyć na zespół 120 ludzi to mrzonka.
Framework jak wyskalować zwinne podejście
Gdybyście chcieli stworzyć jakąkolwiek metodę (po Agile będzie modne coś innego), to nazywacie wszystko tam co się da jak najbardziej Agile i będzie super. Mamy Business Agility na górze, mamy mierzenie i wzrost, mamy Organizational Agility, mamy Lean Portfolio Management, Agile Product Delivery, Team and Technical Agility… generalnie bierzesz to co robi każda firma dodajesz do tego Agility, Agile, Lean i masz genialny nowy model. Teraz weź mi wytłumacz w prostych słowach, żeby każdy w zespole zrozumiał o co tu chodzi. To jest model Safe i według mnie to zostało wymyślone po to, żeby ci którzy chcą być Agile wdrażają sobie Safe, bo to oznacza, że bierzesz to wszystko co masz i to jest bezpieczne rozwiązanie, żeby się wydawało jak Agile, ale żeby nie było Agile. Tu są wszystkie modne terminy wrzucone w jedno miejsce… Udowodnijcie mi, że się mylę :)
Tu natomiast masz 12 zasad z Agile Manifesto.
Czego mamy się trzymać:
- dostarczać wcześnie
- być otwartym na zmiany, nawet jeśli będzie trzeba, na koniec klient najwyżej za to zapłaci
- dostarczać często
- pracować z biznesem na bieżąco
- budować wokół zmotywowanych jednostek
- komunikować się face to face
- główną miarą jest czy działa to co ma działać, główny produkt
- stabilne środowisko
- trzymanie się technicznej doskonałości
- minimalizowanie pracy wykonanej
- samoorganizujące się zespoły
- refleksja nad tym co robimy
Masz 12 zasad, koniec kombinowania, to punkt wyjścia. Jeżeli lądujesz z takim obrazkiem jak przed chwilą i ktoś ci próbuje to tłumaczyć to ciężko. Jeżeli zaczniesz od Agile Manifesto i 12 zasad i wypracowywać je dla siebie, to jest szansa, że coś z tego będzie.
Na koniec chciałem was zaprowadzić do punktu, gdzie są ludzie, którzy jeszcze bardziej pojechali niż ja. Programming Motherfucker. Do you speak it? Parodia manifestu.
Jesteśmy społecznością MF programmers, którzy byli upokarzani przez metody wytwarzania oprogramowania przez lata… Próbowaliśmy XP, Scruma, Kanbana, Waterfalla, Software Craftssmanship i wszystkiego innego co przeszkadzało nam programować. (pomijam przekleństwa)
Jesteśmy zmęczeni mówieniem nam, że jesteśmy społecznymi idiotami, którzy są manipulowani, muszą programować w parach, bez czasu na to, żeby być kreatywnym i robiąc to czego nie może zrobić innych 10 managerów na projekcie. My programujemy, musimy zniszczyć metodologie, które stają nam na drodze do tego, żebyśmy mogli programować.
Jakie są nasze wartości?
Oni twierdzą, że zależy nam na ludziach i interakcjach, a co naprawdę cenią sobie – tony naliczonych klientowi godzin. Co my robimy – my programujemy.
Oni twierdzą, że ważne jest działające oprogramowanie, a co naprawdę cenią sobie – tony bezsensownych testów. Co my robimy – my po prostu programujemy.
Oni twierdzą, że ważna jest współpraca z klientem, a co naprawdę cenią sobie – wyciśnięcie z klienta ostatniego centa. Co my robimy – my programujemy.
Oni twierdzą, że ważne odpowiadanie na zmianę, bycie gotowym na zmianę, co naprawdę sobie cenią – możliwość zaprzeczenia wszystkiemu i i zapewnienie niestabilności. Co my robimy – my programujemy.
Uważamy, że ten sh*t po lewej przykrywa to co naprawdę jest w środku i naprawdę to co powinniśmy robić to programowanie.
Niektórym puszczają nerwy, bo faktycznie coś w tym jest, jeżeli robisz coś w bezsensowny sposób, idziesz wbrew zwinności, rozbudowujesz metody, które nie są tak ważne, bo ważniejsze są inne rzeczy prowadzi do czegoś, co według mnie jest zaprzeczeniem zwinności i Agile.
Na koniec jeżeli patrzymy biznesowo jak ja to widzę – dowieźć wartość, robić to w taki sposób, żeby było to dobre, żebyście lubili to robić i żeby było to coś czego świat potrzebuje i jest gotów za to zapłacić. Biznes może być fajnie poukładany, nie daj się wciągnąć w tematy, które są modne i nie pozwalają dowozić tego co mieliśmy dowozić. Dajcie znać w komentarzach co myślicie.
VIDEO