As a User, I want
Kao neko ko se bavi razvojem softvera, želim da nikada nije izmišljena fraza: “As a User, I want…”. Pre nego što me Agilni Nindža pošalje u sporu i bolnu smrt, želim i da dodam: “A takođe ni User Stories.”
Eto, rekao sam.
Smatram da user stories nisu evolucija. Već oblik formalizacije. To ne znači da je u pitanju nešto fudamentalno pogrešno; nije. Ima dobrih i razumnih stvari. No da parafraziram Šekspira: “ono što nazivamo user storijem podjednako će raditi i pod drugim imenom.” Znali smo da proizvodimo dobar softver, na dobar način, sve sa iteracijama i pre nego što smo znali šta je user story. Jer je suštinski problem isti: komunikacija u trouglu klijenta, razvijaoca i softvera, zar ne?
Šta me onda iritira? To što sada postoji formalan način da pravimo greške. Sada je dovoljno da gotovo bilo ko dođe na projekat i prospe “As a User, I want…” mudrost, i gle - eto nama user storija. Osim što to nije. Tri rečenice objašnjenja, bez analize, bez utvrđivanja vrednosti, prioriteta, kompleksnosti… je sve samo nije user story. Nažalost, često nailazim na takve storije, čak i kada tim ima incijativu da radi stvari na dobar način.
Druga stvar je nešto što nazivam “zamka okvira”. Kada god postoji okvir (framework) koji se ne može objasniti jednoznačnim pravilima, prirodno težimo različitom razumevanju upotrebe okvira, te na kraju dobar deo energije trošimo u pokušaju da pratimo pravila (koja samo mislimo da postoje) umesto na korisnu upotrebu okvira. Primera radi, sećam se kada sam davno, davno, lupao glavu oko nekih finesa UML-a; bio sam toliko očajan što ne razumem “pravi način” korišćenja da sam pitao Alistair Cockburna za savet. Nasmejao se na moj mejl (tako sam bar zamislio da je uradio) i odgovorio da upotrebim šta god je razumljivo meni i mom timu. Kako bilo, za razliku od prethodnog, “zamku” razumem.
Zagrevamo se sada. A šta kada bih izjavio da se user storiji zasnivaju na pretpostavkama? Izusti sledeće: “kao korisnik, želeo bih…”. Stop. Kako zaista znaš da bih to (kao korisnik) želeo, a potom i uradio navedenu akciju - i kako znaš da je upravo ta akcija najbolja za moj problem, koji nismo ni definisali? Drugim rečima, gde je opisana veza potrebe, situacije, onoga-šta-žulja-korisnika sa njegovom motivacijom (a ne željom) da dođe do rezultata, rešenja? Gde je: izvor, put i cilj? Gde je zašto ja to sve kao korisnik želim!? Ilustrujem: “Kao Igor, želim da 1000 ljudi čita moj blog” - ili - “Kada me pukne situaciju da moram da podelim nešto meni vredno, želim da doprem do što više ljudi, da bih se upustio u kvalitetnu diskusiju iz koje svi možemo da naučimo.” Razlika je očigledna. Čini mi se da je vreme da se User storiji zamene sa nečim novim, jasnijim (kao i da prestanem da pišem blog i otvorim pekaru :).
As a User, I wish there is a better way to describe a project, so we can evolve.
p.s. Naravno da preterujem. Ili ne?