Agilno i Nauka o Podacima (Data Science) kao savršen spoj
Kako sam se pre par meseci upoznala sa manifestom agilne metodologije – vrednostima i principima, najzanimljivije mi je bilo da razmišljam o njegovoj primeni u Data Science projektima.
Ideja je vrlo jednostavna. Međutim, duboko sam ubeđena da svaka od vrednosti ima i drugu stranu, jer ono što je primenljivo u jednom kontekstu, u drugom pak nije, ne donosi istu vrednost.
Agilni manifest, kao korak napred u odnosu na tradicinalne metodologije, kao što je model vodopada, treba da omogući smanjenje jaza u komunikaciji koji postoje između klijenta i vendora. Istovremeno, treba da odgovori i na sve brži razvoj novih tehnologija i sve ćešće promene u inicijalnim zahtevima, koji nastaju kao posledica dinamike rada, digitalizacije i konkurentnog tržišta.
Podsetimo se agilnih vrednosti kroz prizmu Data Science-a.
Pojedinci i interakcije ispred procesa i alata.
U Data Science-u, interakcije su ključne tokom razumevanja i definisanja problema, odnosno izvlačenja maksimalne vrednosti na osnovu analize. Jako je bitno zadržati kritički um i ukazivati na nepravilnosti. Neki uvidi često navode na promenu smera i rešavanje stvari koje nisu bile definisane projektom, što ponekad podrazumeva da se ode i van procesa. Sa druge strane, ograničavanje analitike na određene alate i tehnologije može da rezultuje okrnjenom analizom i neupotrebljivim uvidima. U ovakvim projektima održavanje sprinta može biti izazov zbog prirode samog naučnog istraživačkog procesa, ali je dobro imati ritam koji omogućava da se evaluira progres.
Primenljiv softver ispred detaljne dokumentacije.
Ovo je možda vrednost o kojoj može najviše da se diskutuje kroz prizmu Data Science-a. Imati primenljiv softver i isporučiti rešenje je jako važno, međutim pisanje detaljne dokumentacije i objašnjenja na koji način su podaci uzorkovani i pripremljeni, koji modeli su i zašto korišćeni, šta stoji iza tih modela i kako tumačiti dobijene rezultate, kakve su očekivane performanse – sve ovo je jako važno detaljno razdraditi kako bi se osim isporučenog rešenja osigurala i njegova upotrebna vrednost. Dodatno, kako ulazimo u eru veštačke inteligencije, transparentnost i objašnjivost algoritama i načina korišćenja podataka su neophodni kako bi se obezbedila etička primena, a to ne može da se postigne bez odgovarajuće metodologije dokumentovanja rešenja.
Saradnja sa klijentima ispred ugovornih aranžmana.
Kao i u svakom razvoju rešenja, imati dobru saradnju sa klijentima je preduslov za sve. U Data Science-u je ovo jako bitno, što kroz razumevanje domena kroz interakciju sa klijentom, što kroz tumačenje i testiranje rešenja koje se isporučuje, od strane klijenta. Budući da je specifična oblast, jako je važno uspostaviti saradnju sa klijentom koja podrazumeva ulaganje zajedničkih napora kako bi se kreiralo rešenje koje će imati upotrebnu vrednost – najćešće vrednost rešenja direktno zavisi od znanja koje čuči kod domenskih eksperata.
Reakcija na promenu ispred pridržavanja plana.
U ovome se agilno i Data Science najviše poklapaju. Čest je slučaj da se kao rezultat analize probudi neka nova ideja o budućim koracima, unapređenju ili prilagođavanju postojećeg plana. Zato je potrebno biti agilan i ne pridržavati se slepo definisanog plana, kako bi se uspešno odgovorilo na ovakve zahteve. Plan jeste jako bitan, ali zastareva i postaje neupotrebljiv kako se ciljevi redefinišu i menjaju.
Da budem dovoljno jasna – to što su agilno i Data Science, kako sam ih već okarakterisala – “savršen spoj”, ne znači da u realizaciji dovode uvek do savršenog ishoda, već agilno dozvoljava Data Scientist-ima da se posvete istraživanju, da u zavisnosti od toka analize i izvučenih uvida menjaju smer kretanja i redefinišu ciljeve i da usko sarađuju sa klijentima u pokušajima da pronađu rešenje.
Ako se govori o agilnim principima (onih čuvenih dvanaest), velike su šanse da će se svaki Data Scientist/Developer na prvu loptu složiti sa svakim od njih. To i jeste lepota agilnih principa – definisani su tako, da se mogu uspešno primeniti u većini projekata. Treba reći da postoje i neki principi koji jesu diskutabilni – kao što je princip koji govori da najbolja arhitektura, zahtevi i dizajn dolaze od samo-organizujućih timova. Ja verujem u ovo. Ali jedan jako važan preduslov za ovo je način na koji su ti timovi sačinjeni. Ukoliko u tom timu nisu ljudi koje krasi inovativnost, “growth mindset”, autonomija i odgovornost – vrlo verovatno će ova ideja pasti u vodu. Prosto, najčešće se desi da su timovi napravljeni “kako mora” i ponekad je evidentno da timu fali lider koji će ga voditi.
Mogla bih ovako o svakom principu ponaosob, ali zadržaću se samo na ovom, a dopustiti vama da porazmislite o dobrim i lošim stranama svakog (ili situacijama kada bi neki princip mogao biti osporen).
Međutim, postoji nekoliko (ozbiljnijih) problema, koji mogu da se pojave kao posledica ovog spoja, a to su:
- loše i šturo (ili čak nikakvo) dokumentovanje procesa istraživanja, jer je fokus na uvidima i rezultatima, što može predstavljati problem ukoliko neko drugi treba da se uključi u proces;
- jako česte promene zahteva mogu da odvedu analizu u potpuno drugom smeru, te je zbog toga teško definisati kriterijume za prihvatanje rešenja i vremenske rokove – ponekad proces razvoja nekog modula oduzme i više meseci (nepotrebno);
- klijenti nemaju uvek razumevanja za mršave rezultate prediktivnih modela, što onda utiče na komunikaciju i kvalitet saradnje;
- klijenti često veruju da je Data Science magično oružje koje će rešiti sve njihove poslovne probleme – što opet utiće na komunikaciju, kvalitet saradnje i praktičnu upotrebu rešenja, ali vodi i do neostvarenih očekivanja;
- Data Scientist-i često imaju problem sa osećanjem velikog pritiska – njihovo rešenje teško je opredmetiti, a kada se opredmeti, kritično je zavisno od ulaznih podataka, na koje oni ne mogu da utiču;
- komunikacije na dnevnom nivou mogu da budu demotivišuće, jer često se desi da na nekim Data Science zadacima nema značajnog progresa nekoliko dana uzastopno, gde se ideja čestih i inkrementalnih pomeraja gubi.
Bilo kako bilo, najbitnije je prepoznati u kom trenutku napraviti optimalan balans između agilnih vrednosti i onoga što je potrebno timu. U nastavku možete naći par iskustvenih saveta kako to može uspešno da se uradi:
- neka timovi budu kros-funkcionalni, jako je bitno da tim okuplja pojedince različitih veština, kako bi mogao da iznese projekat od početka do kraja. Treba voditi računa o tome da tim ne bude ni premali ili preveliki (5-6 članova po timu je optimalno);
- kako bi se pratio pogres, a obezbedila kontinuirana i inkrementalna isporuka, najbolje je raditi u sprintovima, gde je svakome jasno na kojim zadacima radi u svakom sprintu, i šta se očekuje na kraju sprinta (sprintovi od dve nedelje su u Data Science-u sasvim korektan period u kome je moguće ostvarivati progres);
- potrudite se da i na projektima istraživanja i razvoja (R&D) imate inkrementalni progres. U suprotnom će ti projekti trajati celu večnost, i izgubiti upotrebnu vrednost. Definišite očekivanja od svake faze istraživanja, kako biste po potrebi znali kada da presečete i počnete sa ulaganjem napora u nešto korisnije;
- biti agilan ne znači biti haotičan. Ovo je klopka u koju se jako lako upada. U redu je da dinamički odgovarate na novonastalu situaciju, međutim nepromišljeno delanje brzo vodi ka haotičnoj realizaciji, što uzrokuje kontra efekte, a to nije ideja agilne metodologije.
Budući da je Data Science tako šarenolik, u zavisnosti od toga šta podrazumeva Data Science projekat na kome radite, mogućnost primene agilnih metoda će se razlikovati od jednog do drugog projekta. Ukoliko radite na razvoju proizvoda, Data Science u tom smislu postaje niša softverskog inženjerstva, gde se primena agilnih metodologija i scrum-a pokazuju kao jako korisne. Sa druge strane, ukoliko radite na jednokratnim projektima ili rešenjima primena može biti mnogo blaža i smislena samo u određenim fazama. Najbitnije je prepoznati koje su to dobre strane koje biste mogli da iskoristite, kako biste unapredili svoj način rada i postigli najbolje moguće rezultate. Drugim rečima, možete primeniti agilni način razmišljanja u vašim Data Science projektima, a da ne morate bukvalno primenjivati agilnu i scrum metodologiju.
Autor : Valentina Đorđević, Head of Data Science u kompaniji Things Solver