Agile manifest (2001): Skijanje koje je rodilo sastanke o sastancima

Sedamnaest frajera na skijanju napisalo jednu stranicu da spasi programere od sastanaka — a dvadeset godina kasnije ta stranica JE sastanak.

poglavlje 2/2418 min čitanja2001 – 2010
ti@kronika:~$ ./sviraj k5_2_manifest.mp3

# da, poglavlje ima pjesmu. ne, nitko ne zna zašto.

Veljača 2001. Softverska industrija upravo je pojela vlastiti balon i sad sjedi u ruševinama, mršava i bijesna. Dot-com euforija raspala se u niz financijskih izvještaja koji su svi govorili isto: potrošili smo bogatstvo na projekte koji nikad nisu isporučeni, ili su isporučeni onda kad ih više nitko nije htio. A metoda kojom se to radilo — ta je i dalje na snazi, tvrdoglava kao stara peć koja grije, ali ždere ugljen kao da je 1950.

Zamisli tvrtku koja provede šest mjeseci pišući specifikaciju. Ne kod. Specifikaciju o kodu koji će jednog dana, možda, nastati. Onda dolazi Gantt dijagram — grafikon koji cijeli projekt slika kao niz traka na vremenskoj crti, jednu fazu za drugom, kao vlak s vagonima koji ne mogu krenuti prije nego što prethodni stigne na svoju stanicu — taj toranj od kockica u kojem svaka faza čeka prethodnu, u koreografiji koju je osmislio netko tko nikad nije napisao ni redak koda. Kodiranje je posljednja faza. Testiranje nakon toga. A kad se šesti mjesec pretvori u dvanaesti, i kad klijent na kraju svega dobije proizvod koji odgovara potrebama iz — čekaj — prošlog ožujka, cijela industrija samo slegne ramenima. Tako to ide. Vodopad, zovu ga. Voda ide nizbrdo, jedan smjer, nema vraćanja. Zvuči elegantno na papiru. Na terenu zvuči kao jauk.

I dok se sve to raspada, po garažama i konferencijskim salama već godinama kruže hereze, male sekte koje su, svaka za sebe, uvjerene da su pronašle pravi put. Netko radi po Extreme Programmingu, pišući testove prije koda kao neki obrnuti prorok — prvo napišeš provjeru koja dokazuje da nešto radi, a tek onda to nešto stvarno napišeš. Netko drugi zaklinje se u Scrum, s njegovim sprintovima — kratkim, strogo ograničenim ciklusima rada, obično od tjedan do dva tjedna, nazvanim po rugbyju — i čudnim ritualima koji idu uz njih. Treći priča o Crystalu, četvrti o nečem petom. Svi su uvjereni da su otkrili istinu. Svi gledaju jedni na druge malo popreko, kao sekte koje vjeruju u istog boga, ali se ne mogu složiti oko dana posta.

Pa netko — nikad nećeš pogoditi tko prvi, jer se toga ni sami ne sjećaju posve pouzdano — kaže: dobro, idemo na skijanje. Snowbird, Utah. Planina, snijeg, i sedamnaest ljudi koji trebaju izaći iz te sobe s nečim zajedničkim, ili priznati da je cijeli pokret jedna velika svađa s dobrim marketingom.

Izlaze nakon vikenda s jednom stranicom. Četiri vrijednosti. Dvanaest načela. Ništa revolucionarno u pojedinačnim rečenicama — više kao da je netko konačno rekao naglas ono što je pola industrije šaptalo po hodnicima, dok je vani u uredima još rasla ta ista birokracija, planovi nabijeni jedan na drugi kao kule od kockica koje se moraju posložiti prije nego što se smije maknuti ijedna. Potpisuju je, zovu je manifestom, i odlaze doma vjerujući, iskreno vjerujući, da su upravo spasili softversko inženjerstvo od njega samog.

Dvadeset i nešto godina kasnije ta ista stranica hrani industriju certifikata vrijednu milijarde dolara godišnje, vojsku Scrum mastera — ljudi čiji je posao da vode sastanke o tome kako ide posao, a ne nužno da taj posao i rade — koja nikad nije napisala redak koda, i tebe — da, tebe, koji sutra ujutro imaš „standup” u devet, kratki jutarnji sastanak na kojem cijeli tim, često stojeći (odatle ime), u petnaest minuta izgovori što je radio jučer, što radi danas i gdje je zapeo. Kako se od jedne stranice na jednoj planini dogura dovde? To je pitanje. A odgovor, kao i uvijek u ovoj enciklopediji, ide korak po korak — kao snježna kugla koja se, jednom pokrenuta, više ne pita želi li rasti.

Sedamnaest ljudi penje se gore, ne na skije nego na sastanak, i to je već samo po sebi urnebesno — hrpa programera odlučila je da je najbolje mjesto za rješavanje ratova oko metodologije softvera planinska kućica daleko od ureda, daleko od klijenata, daleko od bilo koga tko bi mogao reći „a možemo li to malo brže”.

Tko su bili ti ljudi? Ne korporacijski birokrati u odijelima, nego zaljubljenici u razne škole razvoja softvera koje su se međusobno gledale poprijeko cijelo desetljeće — ljudi iz Extreme Programminga, iz Scruma, iz Crystala, iz DSDM-a, svaka struja s vlastitim svetim spisom i vlastitim uvjerenjem da je baš njihov način jedini pravi. Svi su, da, muškarci. Sedamnaest. Zapiši to negdje u glavi, vratit ćemo se na to poslije, jer to nije sitnica koju treba preskočiti kao kuriozitet — to je podatak o tome kome je pripala riječ kad se pisala budućnost cijele industrije.

Protiv čega su se bunili? Protiv vodopadnog modela — onog gdje se najprije šest mjeseci piše specifikacija, debela kao telefonski imenik (sjećaš se telefonskih imenika? ne, nećeš, ali vjeruj mi, bili su debeli), zatim se ta specifikacija baci programerima koji je pretvore u kod, pa se kod baci testerima, pa se sve zajedno baci klijentu na kraju — i tek tada, na samom kraju, dobiješ prvu naznaku je li uopće to što si napravio ono što je ikome trebalo. Šest mjeseci u mraku, pa svjetlo, pa najčešće — razočaranje.

Sad, poštena napomena, jer inače ovo zvuči kao da su Nekulturni Dinosauri izmislili glupost koju je onda genijalna Mlada Garda razotkrila. Nije tako. Čovjek koji se najčešće citira kao „otac” vodopadnog modela, Winston Royce, opisao je taj proces 1970. godine u radu koji je — pripremi se — upravo upozoravao da je fazni pristup u toj krutoj, linearnoj formi rizičan i praktički neizvediv bez povratka na prethodne faze. Royce je nacrtao vodopad da pokaže što NE treba raditi, a industrija je pogledala sliku, ignorirala tekst ispod slike, i sljedeća tri desetljeća gradila katedrale po nacrtu koji je autor doslovno oblijepio znakovima upozorenja.

Dakle, sedamnaestorica u toj kabini nisu se borila protiv slamenog čovjeka koji nikad nije postojao — borili su se protiv karikature koja je, uz svu svoju krivu genealogiju, postala stvarna praksa u tisućama firmi. I iz tog vikenda, umjesto još jedne debele specifikacije, izašla je jedna stranica: Manifest za agilni razvoj softvera. Četiri rečenice, svaka kraća od ove koju sad čitaš.

Evo ih, riječ po riječ, jer vrijedi ih pročitati polako: Ljudi i njihova međudjelovanja više od procesa i alata. Radan softver više od opsežne dokumentacije. Suradnja s klijentom više od pregovaranja o ugovoru. Odgovor na promjenu više od slijeđenja plana. To je sve. Nema poglavlja, nema certifikata, nema dijagrama sa strelicama koje idu u sedam smjerova. Samo četiri para stvari između kojih se biralo, i svaki put se birala ona lijeva.

Zvuči skoro previše jednostavno da bi bilo opasno. I upravo je to problem — ili čar, ovisno gdje stojiš — sitnice koje slijede. Jer jedna stranica napisana u umoru na planini, s dobrom namjerom i preciznim jezikom, i jedna stranica koju je moguće protumačiti na tisuću različitih načina, imaju, gle čuda, isti broj riječi.

Prva posljedica: pobuna radi
§ 02

Prva posljedica: pobuna radi

Dobro, dosta filozofije s planine. Vratimo se u nizinu i pogledajmo je li ta jedna stranica papira uopće nešto promijenila u praksi, ili je samo lijepo zvučala dok su ljudi i dalje pisali specifikacije od dvjesto stranica.

Promijenila je. I to brzo, u timovima koji su bili dovoljno hrabri, ili dovoljno očajni, da isprobaju drukčije. Zamisli tim koji je do tada radio ovako: šest mjeseci se piše dokument o tome što će se graditi, onda šest mjeseci se to gradi, i na kraju se, prvi put, softver pokazuje čovjeku koji je to naručio. Taj čovjek onda izgovori rečenicu koju svaki iskusni programer čuje u noćnim morama: „Ovo nije to što sam mislio.” Šest mjeseci u smeće. Ne zato što je tim bio loš, nego zato što je metodologija zahtijevala da nagađaš tuđe misli pola godine unaprijed, i onda ih realiziraš bez provjere usput je li nagađanje ispravno.

Agile timovi su to riješili na način koji danas zvuči trivijalno, ali 2001. je bio herezom: umjesto jednog velikog isporuka na kraju, radiš u komadima od tjedan-dva. Napišeš kod, pokažeš ga, čuješ reakciju, popraviš kurs. Zove se iteracija, ali suštinski je to isto što radiš kad kuhaš nešto novo — kušaš usput, ne čekaš da poslužiš cijelo jelo pa da ti gost onda kaže da je preslano. Razgovor postaje alat, ne dokument. Sastanak od petnaest minuta ujutro na kojem kažeš što radiš i gdje si zaglavio, vrijedio je više od tromjesečnog izvještaja koji nitko ne čita do zadnje stranice.

Stvar je u tome što je ovo rezoniralo jer nije bila teorija iz udžbenika, napisana u uredu s klimom. Kent Beck je svoj Extreme Programming testirao na stvarnim, gorućim projektima, gdje je kod trebao izlaziti svaki dan ili je firma propadala. Ken Schwaber i Jeff Sutherland su Scrum kalili na timovima koji su prije toga imali Gantt dijagrame duže od zida i rokove koji se nikad nisu poklapali sa stvarnošću. Ovi ljudi nisu izmišljali rješenje za problem koji su zamislili — opisivali su rješenje za problem koji im je već slomio nekoliko projekata i nekoliko noći sna.

I bilo je stvarnih pobjeda, ne samo osjećaja da je sad sve bolje jer imamo nove riječi za stare stvari. Timovi koji su radili u kratkim ciklusima mogli su apsorbirati promjenu zahtjeva bez katastrofe, jednostavno zato što je promjena zahtjeva pala nakon dva tjedna rada, a ne nakon šest mjeseci. Klijent kaže „ipak ne treba to dugme tamo, treba ono ovdje” — u vodopadnom svijetu to je bila kriza s kriznim sastankom. U agile svijetu to je bio utorak.

Poanta prve posljedice ove lančane reakcije nije bila u sastancima, retrospektivama ili post-it ceduljicama po zidu — te su stvari došle poslije, kao alat, ne kao vjera. Poanta je bila jednostavna i, priznajmo, malo tužna u svojoj jednostavnosti: softver se pravi za ljude koji mijenjaju mišljenje, dakle proces mora dopustiti da se mišljenje promijeni bez da cijeli projekt izgori. To je sve. Nema tu magije, nema svete geometrije dijagrama — samo priznanje da je plan napisan šest mjeseci unaprijed uglavnom lijepa fikcija.

Eskalacija: metodologija postaje proizvod
§ 03

Eskalacija: metodologija postaje proizvod

Dobro, sad dolazi dio gdje pobuna prestaje biti pobuna. Prati domino: 2001. sedamnaest ljudi napiše stranicu protiv birokracije. Nekoliko godina kasnije ta stranica ima svoj vlastiti aparat — treninge, ispite, licencirane predavače, konferencije s bedžovima i kavom u papirnatim čašama. Ako ti to ne zvuči kao ono protiv čega su skijali u Snowbirdu, čitaj dalje, dolazi bolje.

Prvi zid domina: Scrum, koji je do tad bio skup preporuka koje je jedan tim radio na svoj način, dobiva vlasnika, brend i — ovo je ključno — certifikat. Certified Scrum Master. Dva dana tečaja, jedan online test na koji je teško pasti, i eto te, službeno ovlaštenog da drugim ljudima govoriš kako da rade softver koji možda nikad nisi ni napisao. Cijena tečaja? Ovisno o gradu i predavaču, od nekoliko stotina do preko tisuću eura za dva dana. Za usporedbu — to je više nego što neki fakulteti u regiji naplate za cijeli semestar informatike. Manifest je bio besplatan, na jednoj stranici, dostupan svima. Certifikat za razumijevanje te stranice — nije.

Drugi zid domina, veći: korporativni svijet je pogledao Agile i rekao — sviđa mi se ovo, ali premalo je komplicirano za nas. Rođen je SAFe, kratica za Scaled Agile Framework (Skalirani agilni okvir). Ako nikad nisi vidio SAFe dijagram, otvori sad sliku u glavi: boje, strelice, kutije unutar kutija, nazivi poput „Release Train Engineer”, „Value Stream”, „Portfolio Kanban”, „Lean Budgeting” — i to je samo prvi kat. Cijeli dijagram, uvećan i isprintan, izgleda kao tehnička shema nuklearne elektrane, ozbiljno, guglaj ga poslije ovoga. Manifest je stao na jednu stranicu. SAFe treba poster veći od tebe da bi ga objasnio, i onda ti dolazi certificirani SAFe konzultant da ti taj poster protumači, po satnici.

Treći zid domina, tihi: rituali ostaju, vjera ispari. Sprint, dnevni standup, retrospektiva — sve troje su bili alati s razlogom. Sprint je postojao da tim ima kratki, provjerljivi cilj umjesto šestomjesečne magle. Standup je postojao da se petnaest minuta usklade ljudi koji rade zajedno, stojeći, baš da se ne zadrže. Retrospektiva je postojala da tim pošteno pogleda što nije radilo i to promijeni. Sad zamisli standup koji traje sat vremena, sjedeći, gdje petnaest ljudi izvještava menadžera koji ne kodira, a nitko od tog izvještaja ne mijenja ništa u sljedeća dva tjedna. To je kargo-kult u čistom obliku — isti pokreti, ista terminologija, nula vjere iza toga. Ljudi na pacifičkim ostrvima su nakon rata gradili lažne piste i mahali kao piloti i signalizatori, uvjereni da će avioni s teretom opet sletjeti ako se ponove ti isti pokreti. Avioni nisu sletjeli. Sletjeli su samo onda kad je iza pokreta stvarno postojala pista, gorivo i netko tko leti.

I upravo tu treba stati na jednu nogu, iskreno: nije apsolutno sve ovo prazna gluma. Postoje timovi kojima je Scrum, čak i certificiran, čak i uz SAFe poster na zidu, stvarno pomogao da manje kasne i manje mrze svoj posao. Ali statistički, kad danas netko kaže „radimo Agile”, veća je vjerojatnost da opisuje kalendar pun sastanaka s imenima iz 2001. nego proces s duhom iz 2001. Metodologija je postala proizvod. Proizvod se prodaje, licencira, certificira i skalira. A duh — duh se ne skalira, duh samo nekad, tiho, ode.

Domino: pobjeda kao poraz
§ 04

Domino: pobjeda kao poraz

Evo domina koji pada. Manifest je govorio: „Ljudi i interakcija ispred procesa i alata.” Prva rečenica, prvi redak, ono najvažnije što su ta sedamnaestorica na Snowbirdu uopće htjela reći. I dvadesetak godina kasnije, ta ista rečenica visi uokvirena na zidu open-space ureda dok ispod nje sjedi tim koji ima točno definiran proces za sve, alat za svaki djelić tog procesa, i — gle ironije — sve manje interakcije, jer je sve to sad zapisano u alatu pa nema potrebe pitati kolegu ništa. Cijeli sustav se preokrenuo za 180 stupnjeva, i nitko nije primijetio trenutak kad se to dogodilo, jer se dogodio postupno, ceremonija po ceremoniju.

Uzmi samo jedan alat i pogledaj mu ime. Jira. Softver za praćenje zadataka koji je nastao iz riječi „Gojira” — japanski naziv za Godzillu. Netko u tvrtki Atlassian se toga sjetio kao interne fore dok su radili alat za praćenje bugova, koji je trebao „proždrati” sve te greške u kodu. Fora je slavna, ali slavno je i to koliko se obistinila kao metafora, samo u drugom smjeru: alat koji je trebao pojesti probleme postao je čudovište koje jede vrijeme. Timovi koji su nekad razgovarali kraj kavomata sad razgovaraju kroz tikete, komentare na tiketima, statuse tiketa i sub-taskove tiketa koji imaju svoje sub-taskove. Manifest je rekao: ljudi ispred alata. Stvarnost je: alat je postao posrednik za svaku ljudsku interakciju koja u timu uopće preostane.

I ovdje nisam ja taj koji to prvi kaže — nego oni sami, potpisnici. Martin Fowler, čije je ime na dnu manifesta jednako čvrsto kao i bilo koje drugo, skovao je 2018. termin koji je odjeknuo kroz cijelu industriju: „agile industrial complex” — industrijski kompleks agila. Cijeli ekosustav certifikata, konzultanata, alata i treninga koji prodaje agile onima koji ga u praksi ne provode, jer je certifikat lakše kupiti nego kulturu promijeniti. Fowler nije napao ideju. Napao je industriju koja se hrani ljušturom ideje dok srž bacaju.

Domino je pao potpuno predvidljivo, ako gledaš unatrag. Pobuna protiv birokracije je, uspjehom, stvorila novu birokraciju — samo s drugim rječnikom. Vodopad je imao Gantt tornjeve; agile ima burndown grafove — grafikone koji iz dana u dan crtaju koliko je posla ostalo do kraja sprinta, kao da gledaš gorivo koje curi iz spremnika, samo što ovdje gorivo su vaši preostali zadaci. Vodopad je imao šestomjesečne specifikacije; agile ima beskonačne backlogove — one liste svega što bi tim jednog dana trebao napraviti, samo teoretski, koje se nikad ne prazne, samo mijenjaju boju labela. Riječ se promijenila. Proces koji je riječ trebala uništiti — proces koji guši ljude i pretvara razgovor u papirologiju — vratio se, umotan u drugačiji vokabular, i nosi isti manifest kao alibi.

Svijet kakav poznaješ + spas iz ruševina
§ 05

Svijet kakav poznaješ + spas iz ruševina

Pogledaj svoj kalendar. Ne metaforički — stvarno, otvori ga sad. Ono plavo od devet do devet i petnaest, svaki radni dan, to je daily standup. Onaj blok u petak popodne, kad bi normalan čovjek gasio laptop, to je retrospektiva — sastanak na kraju sprinta na kojem se raspravlja što je išlo dobro, a što nije. Planning poker u ponedjeljak — igra u kojoj svatko baca kartu s brojem koliko mu se zadatak čini teškim, dok se procjene ne usklade — sprint review u srijedu, gdje se pokazuje što je tim stvarno napravio u zadnja dva tjedna, i negdje između toga sastanak da se dogovorite oko sastanka koji dolazi. Svaka kockica u tom kalendaru je domino koji je pao u jednoj vikendici u Utahu 2001. godine. Sedamnaest ljudi je htjelo pobjeći od sastanaka i papirologije, a napravili su najplodniju fabriku sastanaka i papirologije u povijesti softvera. To je lančana reakcija u svom najčišćem, najbolnijem obliku — i da, ironija je toliko gusta da bi se mogla rezati nožem, ali nemoj da te ta ironija zavara da je cijela priča crna.

Jer evo vage, i mrzim vage, ali ova zaslužuje mjesto: kargo-kult postoji samo zato što je original nekad stvarno letio — sjećaš se pacifičkih pista od prije. Ispod svih tih ceremonija, certifikata i dijagrama koji izgledaju kao shema nuklearke, leže tri ideje koje — kad ih netko stvarno radi, a ne samo izgovara na standupu — rade. Prva: manji koraci. Isporučiti nešto malo i konkretno u dva tjedna umanjuje šansu da za šest mjeseci otkriješ da si sagradio katedralu koju nitko ne treba. Druga: povratna informacija prije nego što je kasno. Pokazati korisniku polovan proizvod je neugodno, ali jeftinije nego pokazati mu gotov proizvod za koji kaže „ovo nije to”. Treća: isporuka je mjera istine, ne dokument. Kod koji radi na produkciji ne laže; specifikacija od osamdeset stranica može lagati sjajno, uredno formatirano, s naslovnom stranicom.

Razlika koja sve ovo dijeli na dvoje je razlika između agilnog kao prakse i Agilnog™ kao proizvoda. Praksa je nešto što tim radi jedni drugima i sebi — kratki ciklusi, iskren razgovor, spremnost da se plan baci kad stvarnost kaže drugačije. Proizvod je nešto što se timu prodaje odozgo, s certifikatom, dijagramom framework-a i konzultantom koji dolazi svaki utorak provjeriti poštuju li se rituali. Praksa ne treba ime napisano velikim slovima. Proizvod bez imena velikim slovima ne postoji — nema što staviti na PowerPoint.

Snowbird 2001. nije iznimka od tog pravila, nego jedan od njegovih najčišćih dokaza. Sedamnaest ljudi je napisalo stranicu protiv birokracije, a birokracija je, uvijek strpljivija od pobunjenika, pričekala dvadeset godina i onda tu istu stranicu ugradila u sebe kao novi certifikat. Domino je pao davno, prije nego što se rodio tvoj dnevni standup, i sad samo gledaš posljednju pločicu kako se ljulja na tvom kalendaru u devet ujutro. Pitanje koje ostaje nije je li se to dogodilo — dogodilo se, definitivno — nego što ćeš ti s preostalom pločicom u ruci. Praksu možeš spasiti iz ruševina proizvoda. Samo moraš prestati čekati da ti netko za to izda certifikat.