Raditi u agenciji ili na razvoju proizvoda? Ovo je dilema s kojom se mnogi developeri suočavaju kada traže novi posao ili razmišljaju o novim izazovima. Koje su prednosti, mane i razlike, otkrili su nam Tony i Antun iz dvije sestrinske tvrtke, Mediatoolkita i Bornfighta.
The post Dvoboj developera: Je li bolje raditi na proizvodu ili u agenciji? appeared first on Netokracija.
Obojica ste karijeru započeli u Degordianu, no vaš je razvoj išao u različitim smjerovima. Antun, ti si se prebacio u Mediatoolkit i započeo s radom isključivo na tom proizvodu, a ti, Tony, nastavio si s radom u Degordianovom development odjelu (današnjem Bornfightu) i odabrao rad na projektima za klijente.
Antun Tomašević:
Prvo prebacivanje na proizvod mi je bilo privremeno još kao zaposleniku Degordiana i dogodilo se slučajno, ali više iz potrebe firme nego neke vlastite odluke.
U tom trenutku, radilo se o Socialpuzzleu i na to sam uletio praktički kao i na bilo koji drugi kratkoročni projekt. Najveća razlika mi je bila u načinu pristupa radu jer se uz praktički svaki feature postavljalo i pitanje uklapanja u poslovni model, što je inače nešto što bi sami klijenti razradili prije nego bi task došao do mene. Kasnije, kad se krenulo s intenzivnim razvojem Mediatoolkita, bio sam prvi u redu za prebacivanje jer me privukla mogućnost utjecaja na razvoj ne samo proizvoda, već cijelog poslovanja od samog početka.
Tony Mrakovčić:
Definitivno su potpuno različite priče. Imam osobnog iskustva u dilemi između rada na proizvodu i u agenciji, ali znam i kakva su tuđa. Recimo, sjećam se kako je jedan član tima radio na setovima malih Facebook aplikacija za klijente i rekao je da više stvarno ne može raditi te sitne male stvari. Baš je želio raditi jednu stvar, na duži period. I stavili smo ga na takav projekt. Šest mjeseci kasnije je bilo – ja ne mogu više gledati taj isti interfejs, fakat bih htio svaki mjesec raditi nešto novo.
Tony:
Jako je velika vaga između ta dva smjera, osobito u nekakvom developerskom svijetu, i ona ima svoje prednosti i mane. Sad se sve može na individualnoj razini interpretirati kao prednost ili mana – ovisno o preferencijama. Ali, recimo, kad gledam te neke, ‘ajmo ih nazvati agencijske projekte. Znači, nešto gdje imamo projekt, pa drugi projekt, pa treći projekt koji nemaju nikakve veze jedan s drugim.
Ono što je tu pozitivno, bar ja to tako vidim, je što gledaš drugu stvar i imaš skroz druge probleme u smislu rješavanja nekakve biznis logike. Imaš skroz druge probleme u rješavanju njihovih zahtjeva u domeni samog projekta – znači, u jednom periodu radiš na naprednoj web aplikaciji za edukatore u SAD-u, u drugom periodu se prebaciš na razvoj interne komunikacijske aplikacije za jednu veliku multinacionalnu korporaciju, a nakon toga radiš na razvoju trading platforme koja je bazirana na blockchain tehnologiji.
Setup se potpuno razlikuje od projekta do projekta i jedino što ti, u biti, vučeš je iskustvo s onog prije – stvari koje su prije puknule, načini hendlanja klijenata, ljudi i vremena. A kod rada isključivo na jednom proizvodu je pozitivno što se stvarno možeš fokusirati – znaš da bi za godinu dana bilo super da proizvod radi na određeni način i da za to trebamo napraviti ovaj set stvari. Prvi mjesec radimo prvu, drugi mjesec drugu, treći treću, a sve kako bismo na kraju dana došli do onoga što smo zamislili. Možeš puno dugoročnije razmišljati i biti fokusiraniji.
Ali opet, s druge strane, to je sve o čemu razmišljaš – najčešće nema nekih novih stvari koje su van okvira. Nekad, naravno, ima, ali puno rjeđe. Puno je manja nekakva dinamika i promjena domene.
Antun:
Da, činjenica je da na proizvodu imaš manje šanse za eksperimentiranje. Oni u agenciji na jednom projektu koriste jednu stvar, a na sljedećem imaju tu slobodu da iskoriste neki drugi framework – sad smo u PHP-u, ‘ajmo probati u Node.js-u. Na proizvodu nemaš baš takav benefit jer ti je primaran posao omogućiti neometan rad korisnicima tog proizvoda, a bilo kakvo prebacivanje u druge tehnologije je rizik. Ne možeš se toliko igrati, jer vučeš za sobom hrpu stvari – i gradiš na njima.
Antun:
Nećeš ići u nešto potpuno novo, osim ako se kroz neki period ne pokaže da smo nekad u prošlosti napravili nešto arhitekturalno loše. OK, ovo nam je bila loša odluka i bilo bi super da sad radimo na nekom novom frameworku ili tehnologiji. Ali, to je proces koji traje. Nije kao u agenciji – od sljedećeg projekta sve radimo na novi način, već si odredimo rok u kojem to možemo obaviti, ali to se može protegnuti i na dvije godine prepisivanja koda.
Tony:
Isto bih tako napomenuo, ako baš pričamo o konkretnom vremenskom razdoblju kad je Antun odlučio prijeći u Mediatookit. Tada smo imali malo velikih produkata, kada govorimo o tipu projekta. Naši projekti tada su trajali između dva tjedna i dva mjeseca, dok sada ni blizu nema Facebook aplikacija kakve smo tada razvijali. U toj smo fazi radili na projektima koji su se koristili za kampanje i bili aktivni samo po par dana i nakon toga više nikad. Kad tako radiš, moraš imati jedan poseban mindset.
Tony:
Kužim kaj hoćeš reći, ali mislim da je dosta slično u Mediatoolkitu. Svi mi imamo tehnologije koje najviše koristimo. U Mediatoolkitu je to Node.js, kod nas PHP – jako lako se kaže “ovo nam je najbitnije”, a ovo ostalo, ako znaš, je extra point. Ono što je super kod nas je što smo uspjeli napraviti setup da mi znamo biti noobovi u tehnologijama, a šest mjeseci nakon popravljamo ljudima pluginove po internetu i postajemo stručnjaci u tim tehnologijama. Sve to u razdoblju od šest mjeseci do godinu dana, što je po meni dosta brzo za takav setup.
U Bornfightu se jako brzo upiju stvari kad želiš učiti – na temelju toga bih rekao da fakat znamo koje tehnologije nam trebaju kao core i što razvijamo extra. Ali najbitnije je biti otvoren – da ti je OK raditi, da znaš koji je alat, koja tehnologija za što i da si spreman malo investirati u to ako kužiš da ćeš s tim puno bolje riješiti neki problem.
Antun:
Pa eksperimentira se, ali više kao nekakav proof of concept. Gledaš više baza i gledaš kako se ponašaju, ali i dalje poprilično dugo vrtiš ono na čemu radiš trenutno – dok sa strane radiš nekakav benchmark i testiraš druge tehnologije da vidiš kako se ponašaju.
Uvijek se kreće s laganim uvođenjem – ‘ajmo vidjeti što možemo mic po mic uvoditi. Nemaš taj luksuz brzih promjena. Povremeno je hard switch nužan, što stvara dosta stresa, ali se u pravilu poprilično oprezno ide u sve promjene.
Antun:
Ukratko, nije da se ne eksperimentira, samo nema tog osjećaja instant povrata, u kojem vidiš kako ljudi počinju nešto koristiti odmah po launchu jer je launch zapravo dugotrajan. Ovdje je sve na razini, “OK mi smo istestirali i to je prošlo”, ali, realno, ne znaš hoće li implementacija u sustav glatko proći.
Ukratko, puno ćeš opreznije kod ovakvih dugogodišnjih proizvoda ići u neke veće switcheve, bilo u tehnologijama ili bilo čemu drugome. Ali, prednost je što znaš točno što ti, odnosno, tko ti treba. Nakon testiranja tehnologije, shvatili smo da nam treba ta i ta osoba s tim znanjima. Na temelju toga, za sljedeće selekcije koje planiramo uzimamo ljude koje baš to zanima i koje to razumiju. S druge strane, potrebe agencije se mijenjaju s praktički svakim novim projektom.
Tony:
Najveća je razlika kad ti to promijeniš jer, kad si tri godine u jednom proizvodu, potpuno si povezan s njim – znaš što backend radi, znaš što front radi, znaš što business radi, kako tržište funkcionira, što sales radi, što marketing i zašto to oni rade. Sve ti je bjelodano zato što si toliko u tome. A u Bornfightu imaš ljude za to, a ti si tu konkretno developer. Očekuješ od tih drugih timova da poslože ostale stvari, dok radiš prvenstveno na svojoj. I to je glavna razlika – kod nas se mijenjaju kompletne domene i to je barem meni jako zanimljivo. Završiš proizvod i, kad kreneš na novi, imaš fresh start.
Antun:
Da, to je najveća razlika – da bih ja to postigao, morao bih potpuno mijenjati firmu svakih godinu dana. U Bornfightu oni imaju istog poslodavca, samo druge klijente. Tamo je situacija da doslovno možeš reći – OK, već dvije godine radim na ovom projektu, vidio sam da smo dobili ovaj novi i mislim da mogu tamo doprinijeti. I onda se prebaciš i ideš dalje.
Tony:
Što se tiče mog osobnog razvoja, najveća stvar koju bih naveo je ta veličina tima. Kad imaš tako puno projekata, treba ti i više ruku, stručnosti, razmišljanja, mozgova i samim time moraš imati više timova. Ovako na prvu ruku kad gledam, u Mediatoolkitu imaš jedan tim, a ako imaš dva produkta, jako ćeš teško imati samo jedan tim ili jednu osobu za ta dva projekta jer idu istovremeno. Samim time dođeš do toga da moraš povećavati broj ljudi.
A onda naravno moraš sve i skalirati – mora se napraviti struktura u smislu drugih team lidera, nekakvih razvojnih potencijala osoba, praćenja toga, praćenja projekata, praćenja uspješnosti i takve stvari. Osobno mislim da je to najveća stavka koju bih naglasio kad je u pitanju osobni razvoj. Moram priznati da sam se dosta odvojio od konkretnog tipkanja i fokusirao na vođenje ljudi. U biti, veća je stvar to što počneš gledati sve kao jedan cjelovit sustav, a ne samo sebe kao pojedinca.
Antun:
Pa nikad nisam razmišljao o tome da ću dugoročno programirati. To me zanimalo kao klinca i htio sam to naučiti, ali sad to gledam šire. Gledam koja je to neka stepenica više – ‘ajmo vidjeti bih li mogao biti neki team lead i vidjeti kako to ide.
Osobno mi je ovo sad tranzicijsko razdoblje u product managera. Prije malo manje od godinu dana sam pričao o razvoju i vidim li se na nekim drugim poslovima osim developmenta unutar firme. Kako sam surađivao sa svim timovima, na praktički svim razinama, mogao sam otprilike zamisliti gdje se dalje vidim. Bilo mi je ponuđeno par smjerova koje sam mogao odabrati i najbolje od svega je što su ti svi smjerovi došli zbog prošlih suradnji sa svim tim timovima.
Ideje su išle od razine neke vrste growth hackera i fokusa na dovođenje klijenata, do razvoja u smjeru sales operationsa i gledanja kako s tim timom optimizirati i automatizirati proces. Na kraju je pala odluka na kretanje u smjeru product managera – činila mi se kao zanimljiva uloga i onda je sa svim tim meni došao cijeli novi set zaduženja, ali i prilika za učenje. Prije svega, našao sam se u poziciji gdje iznova učim kako raditi s ljudima i uključiti ih u što više aspekata posla.
Antun:
Opet, ne vjerujem da postoje neke jako velike razlike. Strukturalno trebaš imati osobe koje će moći graditi druge osobe i dizati druge timove. Gledaš koja ti je potreba u timovima i olakšavaš ljudima rad dovođenjem novih osoba i uređivanjem procesa. Što se tiče samih procesa, rekao bih da je tu jedina razlika to što u Bornfightu sad imaju svoj set procesa koje su napravili i primijenit će ih sad na novi projekt. Na tom će projektu naučiti što je dobro i što može bolje, a onda će to sve primijeniti na prvom sljedećem projektu. A kod nas se nekako cijelo vrijeme iterira u tom krugu i tu se puno, puno dugoročnije gleda na projekt jer mi konstantno radimo na njemu.
Tony:
Da, čak bih rekao da je kod nas ta situacija da na svakom novom projektu vidiš kako nešto funkcionira u pojedinom kontekstu. Tipa – sve je super, ali ovaj dio me malo zeza. Na sljedećem projektu onda taj dio možeš dodatno ispeglati. Ako gledamo Bornfight u odnosu na Mediatoolkit, iako je Mediatookit samo jedan proizvod, iako mi radimo proizvode, to nije sve što radimo. Tu ima nekoliko različitih procesa i svaki od tipova proizvoda ima malo prilagođen proces jer je nemoguće da sve funkcionira isto.
Prvo – nisu svi projekti jednako dugi. Neki projekti traju tri mjeseca, neki su kompleksniji pa mogu trajati i do godinu dana. Ne može proces biti isti za sve jer su po definiciji ili opširniji ili kompleksniji ili zahtijevaju totalno neka druga znanja i fokuse.
Drugo – različiti tipovi projekata mogu imati potpuno različite ciljeve. S jedne strane možemo imati razne korporativne webove kojima su primarni ciljevi employer branding i prezentacija branda, kao na primjer web koji smo razvili za Mercury Processing Services International. Takva stranica u nekom kontekstu nije čisti proizvod, već digitalno rješenje koji ima cilj prikazati nešto u najboljem svjetlu. Za produkt, kao na primjer Eye on the Goal, to nije toliko presudno – presudno je da savršeno radi onaj posao za koji je namijenjen. Isto tako, postoje i razlike kad se govori o tehnologijama i o samom pristupu projektu.
Znači, nećemo sad razvijati kojekakve lude sustave da bismo samo ispisali naslov i paragraf teksta. Za to poseban alat nije potreban jer ima stvari koje su već jako dobro istestirane i rade to super. Isto tako, često nam od klijenata dolaze upiti da napravimo nešto što nikad u životu nismo vidjeli i mi sad moramo osmisliti čitav novi proces. Je li to nova tehnologija, možda se radi o potpuno novom tipu projekata koji radimo po prvi put, kao što je bilo kad smo radili aplikacije za muzej u Kuvajtu koje su se morale povezivati s različitim uređajima i tipovima hardwarea. Nemaš definirani proces za to – moraš sjesti i razmisliti kako će to funkcionirati. A svako malo dođe tako nešto skroz izvan konteksta gdje se ti moraš prilagoditi. I koliko se ti tome uspiješ prilagoditi, toliko si dobar.
To bi bila jedna od većih razlika – taj dolazak novih tipova projekata.
U Mediatoolkitu toga nema, odnosno bilo je jednom kad se Mediatoolkit prebacio iz discovery u keyword alat. To je, recimo, taj switch gdje više ne možeš funkcionirati na jedan način, već radiš nešto potpuno novo, ali većinom se iterira na postojećim funkcionalnostima i njih unaprjeđuje.
Antun:
Ne bih rekao da je to istina – mi isto imamo klijente. To su svi ljudi koji koriste naš alat i želimo da on njima dobro radi i da su oni njime zadovoljni. Hoću reći – kad razvijaš proizvod, bitno je da imaš nekakvu viziju gdje želiš da to vodi. Krajnji cilj Mediatoolkita je da ti samo klikneš i da na temelju svih podataka mi možemo pametno razaznati točno što tebe zanima, što te ne zanima, kad te zanima. To je end goal i prema tome razvijaš proizvod.
Antun:
Znamo kamo želimo da ovaj naš proizvod ide, znamo što želimo i koje probleme želimo riješiti našim korisnicima. I, da, usput ćemo dobivati sugestije od klijenata koji koriste alat, ali se opet na kraju sve svodi na to vodi li sve što radimo i sve što dodajemo u alat prema tom našem krajnjem cilju. Kod toga moramo jako prioritizirati i fokusirati se na odnos uloženog i dobivenog jer je svaki dodatak naša direktna investicija u alat. Tako da možemo reći da si sam svoj klijent, ali mislim da je preciznije reći da si sam svoj investitor jer moraš odlučiti u što ti se isplati ulagati, a to dijelom temeljiš na feedbacku ljudi i njihovim očekivanjima od tvojih proizvoda, te na temelju toga što radi konkurencija. Kažem, tu je dosta vaganja i prioritizacije jer kriva odluka, bez obzira radi li se o tome da smo nešto novo uveli ili smo propustili uvesti, može dovesti do gubitka klijenata.
Tony:
S druge strane, kod nas je bilo situacija gdje je klijent došao i rekao mi želimo da se napravi to što želim, točno kako želim i ne zanimaju me vaši inputi. Ali klijenti od nas, osim same produkcije, u najvećem broju slučajeva očekuju i da ih konzultiramo. Dobra je stvar što, kao velika kompanija s dosta godina iskustva i puno uspješnih projekata, imamo kilometražu da znamo što će funkcionirati, a kako svaki proizvod uvijek testiramo s korisnicima, svaki savjet možemo potkrijepiti direktnim feedbackom. To je jedan od naših većih benefita jer smo već 100 puta neke stvari napravili i možemo reći da nešto nije radilo, ili je radilo ili je pak bilo brutalno. I sve možemo potkrijepiti primjerima jer smo to i sami napravili. Ako je nešto bilo loše, iterirali smo dok nismo došli do rješenja koje radi, ako je nešto bilo dobro, gradili smo na tome kako bi bilo još bolje.
U tom smislu imamo klijente koji znaju kako nešto žele napraviti i znaju koji glavni cilj time žele postići. Mi, s druge strane, imamo sredstva kako to postići. I naravno da ćemo pričati zajedno – nismo samo kutije koje tipkaju, već zajedno radimo na tome da se napravi najbolje rješenje jer je to i jednima i drugima u interesu. No na kraju dana, naši su klijenti vlasnici tog proizvoda koji za njih razvijemo i oni mogu s njime napraviti što žele.
Antun:
Trebalo bi doći do zasićenja ovime što trenutno radim. Da osjetim potrebu za tom većom dinamikom koja je prisutna kod tog agencijskog pristupa gdje se radi na više kraćih projekata i da se poželim malo odvojiti od te jake povezanosti s jednim proizvodom. Ta je povezanost dobra jer znaš točno kako se sve odvija i kako radi, ali to znači da također imaš uvid i u sve probleme i uvijek nalaziš stvari koje mogu biti bolje, koje ne funkcioniraju kako bi trebale i koje treba popraviti.
Ova povezanost s jednim projektom gdje sam uključen u sve i znam apsolutno sve što se događa trebala bi me početi jako opterećivati i biti mi jako stresna da bih razmislio o tome da se prebacim na agencijski način rada.
Tony:
Prva neka stvar, kako već dugo nisam u nekoj prejakoj operativi, bila bi da netko dođe i pokaže mi brutalnu ideju i kaže da trebamo izgraditi tim koji će to razvijati. U smislu da se pokreće ogroman proizvod u koji je kvalitetno investirano. Naravno, ideja mora biti dobra, da drži vodu, barem meni u glavi. To bi moralo biti nešto u što mogu vjerovati da će to u, ‘ajmo reći, sljedećih pet godina na tržištu imati smisla.
Stvar je u tome što se puno takvih proizvoda radi danas u Bornfightu, samo što nisam u funkciji da imam direktan kontakt i jurisdikciju nad njima. To su nam klijenti i mi za njih i njihovo poslovanje razvijamo proizvod. A ovo bi bilo nešto gdje bih bio direktno uključen u smislu da razvijamo cijeli tim samo za taj jedan ogroman proizvod. Kad bi se tako nešto dogodilo, razmislio bih o prebacivanju na takav način rada.
The post Dvoboj developera: Je li bolje raditi na proizvodu ili u agenciji? appeared first on Netokracija.
30/05/2019 11:55 AM
2014 © Hrvatske aplikacije i vesti