Archive for the 'Development' Category

Bogdaj veći kup

Fraza iz naslova ovog članka predstavlja stari slogan domaćeg SF fandoma, © by Krsto A. Mažuranić, kojim se naglašava potreba okupljanja ljudi sa sličnim interesima, bilo u obliku nekih udruga ili povremenih skupova.

I tako čitam ja Markov izvještaj sa seminara posvećenog Internet poslovanju, održanog prije par dana u Nišu u Srbiji, i shvatim da me oblijevaju zavist, ljubomora i inat — pa zar ima ikakvog razloga zašto se tako nešto ne bi moglo organizirati i kod nas?!

U Hrvatskoj kao da su informatička okupljanja u nekakvom čudnom limbu: donedavno glavni skup, velesajamski Info, malo je okazan, pa opet nije, ali s drugim konceptom; najposjećenija okupljanja su ona u organizaciji velikih tvrtki poput Microsofta i IBM-a koja su po logici stvari vrlo usko orijentirana; a jedina alternativa su skupovi poput CLUC-a u organizaciji akademske zajednice. Po mom mišljenju nedostaje barem jedan kvalitetan skup posvećen Internet tehnologijama i prije svega Internet poslovanju, naročito u vrijeme kad smo svjedoci njegovog ponovnog uzleta kroz famozni Web 2.0 i povećani interes investitora (kupnja YouTubea je samo vrh sante leda); svojevremeno su tu ulogu imali dosta dobro posjećeni dani Interneta u Rijeci, kao i First Tuesday u Zagrebu, no s pucanjem izvornog dotcom balona i za njih je zatvorena pipa.

Ako se realno osvrnem oko sebe, vidim s jedne strane učmalu i blaziranu većinu koja odlazi u Umag i Opatiju zato što tamo velike tvrtke obilato časte, te nedostatak volje i entuzijazma da se stvari pokrenu s mrtve točke. No s druge strane taj sloj žabokrečine lagano mreškaju neki pomaci, mali privatni projekti pojedinaca i malih tvrtki, poput ovih linkanih s desne strane. Danas je vrlo jeftino pokrenuti online servis — sredstva rada (računala i hosting) su sve jeftinija, i sve što je potrebno jest imati kvalitetnu ideju i znanje kako tu ideju implementirati. No ono što nam svima ovdje nedostaje jest iskustvo; mnogi ponavljaju greške koje su drugi već prošli, nailaze na već riješene probleme — a nedostaje kvalitetna komunikacija kojom bi se to iskustvo razmjenjivalo.

Naši susjedi imaju vrlo dobro posjećen forum za Web dizajnere i developere; kod nas je bilo više takvih pokušaja, no iz nekog razloga jedini donekle aktivan je mi3dot, dok ostali stagniraju. Možda je tome razlog upravo ta inflacija sličnih foruma? (Disklejmer: to je moj osobni dojam. Možda griješim ili sam nekoga previdio; za takve slučajeve postoje komentari ispod članka.)

Bilo kako bilo, nama nedostaje community, i mislim da bismo trebali ozbiljno razmisliti o organizaciji jednog nezavisnog skupa na kojem bi se mogla razmijeniti iskustva, upoznati ljude sa zajedničkim interesom i možda sklopiti i neka partnerstva. Bogdaj veći kup!

Jedino je pitanje — postoji li interes za takvo nešto? Pritom ne mislim samo na interes u smislu publike, već i u smislu sudjelovanja u organizaciji i programu. U tu svrhu ovaj post prati i mala anketa, a ako sam previdio neki odgovor, komentari su otvoreni. (Naravno, ako ste slučajno odabrali drugi ili treći odgovor u anketi, javite mi se.)

Popularity: 45% [?]

Masturbacija

Nedugo nakon što sam započeo ovaj blog, Vuk je citirao izjavu Alexandera Kjerulfa, koju sam ja zatim uzeo kao slogan bloga:

Vizija bez izvedbe je halucinacija.

(Digresija: Zanimljiva stvar se događa ako tu izjavu upišete u Google: u prvih nekoliko rezultata ćete je pronaći pripisanu raznim velikim ljudima, od Thomasa Edisona preko Alberta Einsteina do Stevea Casea. Ali nije važno tko je autor, izjava i dalje stoji.)

No danas mi je sinulo da se može konstruirati i druga izjava, svojevrstan antipod ovoj prvoj:

Izvedba bez vizije je masturbacija.

Ako pogledamo oko sebe, vidjet ćemo da su znakovi ovog pravila svuda oko nas, a u mojoj branši najbolje se mogu vidjeti u mnoštvu Web development frameworka koji niču kao gljive poslije kiše. Danas kao da svaki Web developer ima ideju kako najbolje napraviti razvojno okruženje, pa potroši mjesece na konstruiranje raznih hijerarhija klasa, lukavih rješenja pristupa bazi ili templating enginea. Odmah treba reći da nisu svi frameworci nastali na taj način — najbolji primjer je sveprisutni Ruby on Rails, koji je izvorno bio samo temelj aplikacije Basecamp, a isto vrijedi i za Django te još bezimeni framework kojeg naš Ilija planira izvući iz activeCollaba. No, brojna rješenja su nastala samo kako bi se razvili neki teorijski koncepti, ili iz autorovig ego-tripa, bez konkretne, praktične namjene — WACT, Willowgarden i QCodo samo su neki od njih (posebna su kategorija klonovi Ruby on Railsa, kao što su CakePHP ili PHP on Trax).

To ne znači da se na tim platformama ne može razviti suvisla aplikacija — no kako već neko vrijeme tvrdim, frameworci u osnovi nikome ne koriste, jer su s jedne strane ili preopćeniti (za one koji ne žele programirati, već samo složiti nekakav jednostavan dinamički site; za takve su idealni CMS-ovi kao što su Joomla, Xoops, Typo3 ili Drupal) ili preograničeni (za programere koji ne žele otkrivati toplu vodu, ali i imaju potrebe za većom fleksibilnošću; njima više koriste generički libraryji kao što su ADOdb, EZcomponents ili Solar). No developeri frameworka prečesto imaju običaj igrati se s nebitnim detaljima, fokusirajući se na besmislene fines — moj omiljeni primjer je feature da se tablice u bazi nazivaju u množini (npr. ‘people’) a ActiveRecord klase u jednini (npr. ‘person), i da framework to sam prepozna i poveže. To je takav očit primjer suvišnog i nepotrebnog kodiranja da se to ne može nazvati drugačije nego masturbacija.

Dakle možemo zaključiti da su vizija i izvedba dvije strane istog novčića, i jedno bez drugog nema puno smisla. Tako da ću sad sukladno tome i modificirati svoj slogan. :)

Popularity: 50% [?]

Radovan baca daske

Dharmesh javlja kako je još jedan online projekt — HackABuck.componuđen na eBayu. Nedavno smo bili svjedoci iste takve prodaje online kalendara Kiko, kojeg je — kako je javio i Vuk — kupio Web veteran Tucows, i to za više od četvrt milijuna zelembaća.

Ako čitamo objašnjenje Tucowsovog CEO-a o tome zašto su odlučili kupiti Kiko, ključna rečenica je:

We needed the functionality, quite desperately, inside of our email platform and it was going to take us a long time to get it.

Kurziv je moj, a tu sam riječ istaknuo jer ilustrira jedan novi način razvoja softvera koji se očito polako pojavljuje — prije nekoliko godina tu bi se negdje našlo mjesta za famoznu frazu “paradigm shift”. Naime, nekad su se aplikacije razvijale monolitno — svaka aplikacija za sebe, bez ikakve komunikacije s drugima osim eventualno konverzije formata dokumenata. S vremenom su se pojavili načini kako se aplikacije mogu povezati, s jedne strane kao dodavanje funkcionalnosti glavnoj aplikaciji kroz razne pluginove i ekstenzije (sjećam se da sam to prvo susreo kod Adobe Photoshopa i Netscape Navigatora, dok su danas neke aplikacije — poput WordPressa na kojem ovo pišem — praktički nezamislive bez pluginova), te s druge strane kao komunikacija među sasvim različitim aplikacijama korištenjem raznih komunikacijskih platformi kao što su CORBA, RPC, SOAP itd.

Čini se da smo sad na pragu nove faze u razvoju aplikacija, u kojoj individualne tvrtke — startupi ako hoćete — razvijaju cjelokupnu funkcionalnost, kako bi ju netko drugi otkupio i uklopio u vlastito rješenje. Odličan primjer je famozni Google Office, koji okuplja skup aplikacija — dio kojih je razvio sam, dok je dio kupio — čija se zajednička funkcionalnost pomalo približava Microsoft Officeu.

Edit: Michal Arrington je upravo na Techcrunchu objavio podcast intervjua s Elliotom Nossom iz Tucowsa, a postavlja i zgodno formulirano pitanje u istom tonu kao i moje gornje razmišljanje:

Is eBay the investment bank of Web 2.0? New companies are easy to start, easy to fund and (now) easy to sell for a few hundred grand on eBay…this might be the way many of these small companies eventually find liquidity.

Edith: Izgleda da ni to nije sve: jedan komentator na Michaelov post je ukazao na AllActu.com, čini se nekakav digg-klon, koji se prodaje na francuskom eBayu.

Digresija: Kako je moj francuski zahrđao još od osnovne škole, provukao sam stranicu kroz Babelfish. Bilo je relativno razumljivo, no izuzetno mi se dopao sljedeći prijevod, u opisu same aplikacije:

This site was programmed to turn on a waiter PHP5.1.4 + MySQL 5.0.16 + Apache 2.0.55, therefore you will not have evil to make it functional on your waiter.

:D

Popularity: 40% [?]

Moja hrana za pse

Postoji dobra stara izreka “eating your own dog-food”, što znači da se svaki biznis koji nudi neki proizvod ili uslugu mora i sam njome koristiti, čime a) dobiva na ugledu, te b) dijeli iskustvo s vlastitim klijentom, što pozitivno utječe na korisničku podršku i budući razvoj. Npr. kad direktor Toyote vozi automobile vlastite tvrtke, a ne recimo BMW, on “jede vlastitu hranu za pse”; suprotan primjer je kad 37signals za svoj vlastiti Web site koriste PHP (a trebali bi Ruby on Rails).

Kako na ovom blogu (a i drugdje) pametujem o raznim temama, u zadnje se vrijeme sve češće razmišljam o tome kako bih trebao početi jesti vlastitu hranu za pse (sva sreća da ova fraza nije doslovna…). Konkretno, ozbiljno se bavim mišlju da pokrenem mali, usputni biznis na području developmenta, organizacije i poduzetništva; i nakon dosta promišljanja i diskusija s kolegama iz svih relevantnih branši, odlučio sam se objaviti svoju ponudu. A ona se sastoji od sljedećih usluga, namijenjenih sljedećim grupama klijenata:

Za poduzetnike

  • Analiza i razrada poslovnih ideja. Bacite pogled na vrh ove stranice, gdje se nalazi “slogan” ovog bloga. Jeste? Fino. Dakle, moj cilj je pomoći poduzetnicima da prestanu halucinirati.
    Osnovni problem raznih projekata i “projekata” o kojima slušam u zadnje vrijeme jest što njihovi pokretači nemaju jasnu sliku o tome kolika je realna vrijednost njihovog projekta. Vrlo često slušamo o poslovnim idejama koje “imaju puno potencijala”, “nema šanse da ne uspije” ili “garantirano će nas kupiti Google”. Međutim, pritom ne postoji realna ideja o tome koliko vremena i resursa je potrebno da se projekt realizira; koje mu je tržište i konkurencija; kakav je poslovni model, koliki prihod se očekuje i izkojih izvora… Stoga moja ponuda uključuje uslugu analize i razrade poslovnih ideja, kako bi poduzetnik stekao predodžbu o tome koliko njegova poslovna ideja ima smisla za njega samoga. Moram napomenuti da sam odlučio — zahvaljujući vrlo poučnoj korespodenciji s Borjom — da ću se ove usluge prihvatiti isključivo ako a) zaključim da je projekt dovoljno vrijedan da bih u njemu bio partner, te b) ako s njegovim osnivačima mogu uspostaviti partnerski odnos.
  • Izrada poslovnih planova. Kod nas je uobičajena predodžba kako poslovni plan služi da bi se od banke izvukli krediti, pa se obično u njih stavlja sve i svašta, često bez realne veze sa samim projektom, a obično košta više od kamata za postignuti kredit. Razlog tome jest što kod nas svojevrstan monopol na poslovne planove imaju skupo plaćeni “konzultanti” koji niti ne obavljaju sav potreban research.
    Analiza poslovne ideje ključan je element izrade poslovnog plana, no kod nas se ona zanemaruje. Stoga sam ja odlučio razdvojiti ove dvije usluge, jer samo glancanje i pisanje poslovnog plana nema smisla ukoliko analiza ne ukaže na potencijal projekta.
  • Pronalaženje investitora za zanimljive projekte. Bez brige, neću naplaćivati proviziju unaprijed. :) Međutim, biti ću izuzetno izbirljiv, i kontaktirati ću potencijalne investitore isključivo ako procijenim da projekt zadovoljava moje — vrlo visoke — kriterije. Ako mislite da imate takav projekt, javite mi se; a ako niste sigurni, pratite ovaj blog — uskoro planiram postove o tome kako pronaći pravi projekt.

Za programere

  • Pisanje CV-a i ponuda za posao. Kod nas nekako svi misle da znaju sve, pa tako i napisati dobar poslovni životopis, te ga na pravi način predstaviti potencijalnom poslodavcu. Nažalost, nedavno sam imao prilike poći kroz vrlo širok raspon programerskih životopisa, i tu je zaista bilo svega.
  • Pronalaženje klijenata, odnosno svojevrsna programerska agentura. Dakle, ja neđem klijenta, povežem ga s programerom koji dogovori i obavi posao; meni ide provizija.
  • Pronalaženje i dogovaranje programerskih poslova. Ponovo nalazim programera za odgovarajuće poslove, no za razliku od prethodnog ovdje ja preuzimam odgovornost za posao, organiziram i koordiniram programere, te naplaćujem od klijenta i plaćam programeru.
  • Organizacija naplate preko tvrtke. Individualni programeri često su u inferiornom položaju prema trvtkama jer a) djeluju manje ozbiljno, te b) u startu su skuplji (osim ako naplaćuju na crno), jer i plaćanje preko autorskog ugovora (~35%) i preko student-servisa (18%) predstavlja tvrtki-naručitelju veći trošak od PDV-a (22%, ali se vraća kroz predporez). Kroz ovu uslugu programer bi preko mene mogao ispostaviti fakturu i dobiti honorar uz minimalne komplikacije.

Za poslodavce

  • Provođenje natječaja za zapošljavanje programera. Kroz svoj (sad već poduži) radni vijek bio sam svjedokom (na obje strane) raznovrsnih natječaja za radna mjesta programera (i srodnih zanimanja), i vidio sam svakojakih situacija — od raznih testova inteligencije i osobnosti bez ijedne linije koda, preko testiranja tehnologija zastarjelih prije više godina, do zapošljavanja Java programera tamo gdje je potreban C programer. Uz časne iznimke, došao sam do zaključka kako velika većina tvrtki, čak i programerskih, jednostavno ne zna na pravilan način testirati kandidate za programerska radna mjesta.
    Ova usluga bi uključivala konstrukciju teksta oglasa, analizu i testiranje kandidata, razgovore s njima te sugestiju konačnog odabira, u bilo kojoj kombinaciji.
  • Pronalaženje kvalitetnih programera i drugih kadrova bez natječaja. Odnosno, klasični headhunting. Najkvalitetniji programeri obično već imaju dobar posao i ne javljaju se na natječaje, i često ih je lakše i sigurnije pronaći kroz neformalne kanale i mrežu znanaca nego natječajem.
  • Savjetovanje u organizaciji programera i razvojnih timova. U karijeri sam sudjelovao u brojnim timovima (kako programerskima, tako i nekim drugima, poput radijskih i nakladničkih redakcija, ili pak košarkaškog tima), i uočio sam vrlo velik problem nepostojanja kvalitetne organizacije u većini slučajeva programerskih timova. Dok kod “tradicionalnih” timova, poput redakcija i klubova, postoje uhodani obrasci koji osiguravaju da tim kvalitetno funkcionira, velika većina developerskih managera jednostavno ne poznaje slične obrasce za taj tip tima, ili jednostavno nisu ni svjesni njihovog postojanja, pa se uhvate pravila za neku vrstu tima i onda neuspjeh svaljuju na programere.
    Moja ponuda će obuhvaćati strukturiranje razvojnog tima za klijente koji prepoznaju potrebu za tim, te provođenje reorganizacije. To uključuje kako human resources, tako i tehničke pretpostavke za kvalitetan razvojni tim.

Za svakoga pomalo

  • Organizacija stručnih skupova, kongresa, prezentacija itd. Naravno, prije svega iz područja developmenta i poduzetništva. U početku planiram ponuditi organizaciju održavanja takvih skupova za nekoga tko želi organizirati, npr. domaću varijantu Web 2.0, a s vremenom se nadam i samostalno pokrenuti odgovarajuće skupove.

Popularity: 45% [?]

Balkan Express

Izgleda da je nekoliko postova na blogovima i Webote forumu, uključujući i moj predzadnji post, pokrenulo malu lavinu ideja i misli o lokalnim (u regionalnom smislu) online projekata. (Digresija: zaključio sam da je termin “online projekt” puno bolji od nejasnih alternativa poput “Web 2.0 projekt” ili “startup”.)

Borja me mislio raznijeti (ali je, srećom po njega, odustao ;) ) zbog mog stava da su lokalno orijentirani projekti (uključujući tu i Dvanula) osuđeni na propast, pa moram malo razjasniti na što sam mislio, da se Borja slučajno ne predomisli.

Kao prvo, ja online projekte dijelim na dvije vrste: komercijalne i nekomercijalne. (Možda su još bolji izrazi “profitni” i “neprofitni”, jer oni omogućuju i treću vrstu, “neprofitabilne” — to su “profitni” kojima baš ne ide). Moj komentar o lokalno orijentiranim projektima odnosio se isključivo na ove prve; jer nekomercijalni projekti nemaju imperativ uspjeha i profita, pa tako ne mogu ni propasti.

Što razlikuje komercijalne projekte od nekomercijalnih? To nije nužno zarada, jer postoje projekti koji su zamišljeni kao nekomercijalni ali su počeli donositi velike novce od Google AdSensea i drugih izvora. Razlika je u namjeri: komercijalan projekt je od početka postavljen i vođen s ciljem da donese prihod i profit svojim vlasnicima.

Ta razlika utječe i na kriterij uspjeha i neuspjeha: nekomercijalan projekt je uspješan ako ga ljudi koriste, te ako ima nekakvog utjecaja na Web svijet. Najbolji primjer su projekti poput Craigslista ili Wikipedije, ili kod nas Iskrice (koja donosi minimalan prihod).

No komercijalan projekt postaje uspješan isključivo ako svojim osnivačima donese zadovoljavajući profit, bilo u obliku izravnog prihoda od korisnika ili oglasa, ili kroz akviziciju od strane nekog velikog igrača. Upravo smo svjedoci pokušaja vlasnika online kalendara Kiko da povrate investiciju kroz prodaju aplikacije na eBayu; mnogi blogeri i komentatori dali su svoje viđenje takvog iskoda za Kiko, i svi se uglavnom slažu da je taj projekt bio osuđen na propast, jednostavno zato što nije imao dobro razrađen poslovni model. Unatoč velikoj bazi korisnika, Google PageRanku 7 i 40.000 korisnika mjesečno, nisu imali ni centa prihoda bilo od korisnika ili od reklama.

Da se ja vratim sad na lokalne projekte. Za mnoge od njih problem leži u tome da jednostavno nemaju poslovni model, odnosno nemaju nikakav poslovni model. A iskreno, ne mogu ga ni imati na ovom minijaturnom hrvatskom tržištu, pa čak i ako se osvrnu na malo šire horizonte i pokriju područja susjednih zemalja. Tko će platiti za usluge koje nude Gorivo.com ili Stari prijatelji? Neki projekti, kao što su Limundo ili Aukcije.hr, imaju izravne prihode od transakcija obavljenih preko njih, i to je najsigurniji poslovni model; ostali su osuđeni na prihode od reklama, koji teško mogu imati težinu na hrvatskom tržištu (AdSense još ni ne podržava hrvatski jezik).

Da pojednostavim: a) Komercijalni projekti moraju imati poslovni model. b) Većina poslovnih modela se svodi na naplatu korištenja ili prihod od oglašavanja. c) Hrvatsko tržište je vrlo malo — s jedne strane imamo malo stanovnika, a s druge vrlo mali postotak redovno koristi Internet. d) U većini će slučajeva prihod — uz bilo koji poslovni model — biti vrlo slab, a mogućnost akvizicije je praktički nepostojeća. e) Moj zaključak: uspješni komercijalni online projekt treba se orijentirati na šire tržište od hrvatskog, bilo to regija, Europa ili svijet — inače je osuđen na propast.

Naravno, nema ništa loše da projekt bude nekomercijalan. Dvanula, u sadašnjem obliku, jedan je dobar nekomercijalan projekt čiji vlasnik ne očekuje prihode i zaradu. Borja najavljuje zanimljive modifikacije na projektu, pa će se i moja procjena možda promijeniti; kako bi Francuzi rekli, qui vivra, verra.

Popularity: 40% [?]

Malo nas je al’ nas nema…

Upravo sam u listu linkova na domaće projekte dodao par komada koje mi je poslao Siniša putem Webote foruma. Na listi se sad nalazi jedanaest linkova, a kako sam ih unosio i pregledavao nisam mogao izbjeći da mi jedna stvar ne upadne u oko: osim activeCollaba, svi ostali projekti — dakle više od 90% — namijenjeni su isključivo domaćem tržištu (gdje se pod domaćem podrazumijeva zemlja autora).

Odnedavno pratim analizu Web 2.0 aplikacija u raznim zemljama koje provodi Read/Write Web, a u članku o španjolskoj Web sceni uočio sam rečenicu koju je zanimljivo usporediti s gore navedenom činjenicom:

[…] Spanish Web entrepreneurs think that Spanish-only sites have a limited audience - “only 300 million people or so” (!) - so a lot of them create multilingual apps.

Dakle njima govorno područje španjolskog jezika — koji je službeni jezik u dvadeset jednoj zemlji (plus Europska unija i ujedinjene nacije) — nije dovoljno jako tržište, a mi se ograničavamo na mala nacionalna tržišta koja u nekim slučajevima ukupno imaju manje stanovnika nego neka predgrađa Ciudad de Mexica.

Po mom (ne)skromnom mišljenju, lokalno orijentirani projekti osuđeni su na propast. Bacimo pogled na listu: kao što rekoh, activeCollab je jedini orijentiran na svjetsko tržište, no on nije klasični online projekt već open-source aplikacija; Aukcije.hr i Limundo nemaju što raditi na svjetskom tržištu gdje dominira eBay; KupiBON i Metak su najbolji kandidati na svjetskom tržištu, jedino prvi mora osigurati suradnju s lokalnim mobilnim operaterima, a drugi nabaviti veću bazu jezika; Povez i Stari prijatelji imaju naravno beskrajno jaču globalnu konkurenciju, a ovi drugi su i vrlo lokalnog karaktera; ostali su prvenstveno jezikom orijentirani na domaće tržište; jedino nisam sasvim siguran kakve potencijale ima Momenat, koji još nije službeno objavljen, ali domena mi također ukazuje na lokalni karakter.

Zanima me vaše mišljenje: u čemu je naš problem? Zar je moguće da smo toliko jadni da ne možemo smisliti ništa originalnije od blijedih kopija svjetskih uspješnica? Ili se držimo one “bolje velika faca u malom selu nego nitko i ništa u gradu”?

Popularity: 33% [?]

Kremenkanje i druge jezikolomije

Kao nesuđenog jezikoslovca oduvijek su me zanimale nove riječi nastale kako bi se imenovali novi fenomeni i pojmovi (za razliku od izmišljanja novih riječi za stare pojmove, poput zrakomlata). U najnovijem postu na Codesnipers jedan od njihovih redovitih autora, Peter Harkins, ukazuje na vrlo zanimljivu riječ flintstoning, koja opisuje pristup u developmentu u kojem se neki taskovi ne rješavaju programski, već se prepuštaju ljudima da ih obave ručno. Iako je to na prvi pogled kontraproduktivno, ako je riječ o relativno rijetkoj i nezahtjevnoj aktivnosti to se često daleko više isplati.

Na primjer, ne tako davno sam imao slučaj gdje je korisnik trebao jednom mjesečno (pa i rjeđe) u bazu importirati sadržaj jednog Excel dokumenta. I dok sam mogao napisati (ili inkorporirati) filter koji bi uzeo Excel dokument, proparsao ga i podatke spremio izravno u bazu, bilo je daleko jednostavnije da operater prvo napravi eksport podataka u CSV, kojeg potom ručno doradi na par mjesta i onda ga uploada u aplikaciju. Kako se radi o vrlo rijetkoj operaciji, tih par minuta koje operater potroši svaki mjesec meni je uštedjelo (pa prema tome i klijentu) nekoliko sati pripreme, programiranja i testiranja. A ako se jednom učestalost importa poveća, postat će i isplativo napisati takav filter.

Peter kao inspiraciju za ovaj pojam navodi Cambrian House, vrlo zanimljiv site na kojem su me odmah privukle dva sadržaja. Prvi je “usluga” crowdsourcinga, što u praksi znači da možete gore “naručiti” neku aplikaciju koja vam treba a onda će je programeri napisati. Ti programeri nisu njihovi zaposlenici ili vanjski suradnici, već nedefinirana gomila ljudi koji su spremni nešto doprinijeti.

Crowdsourcing je općenito jedan suvremeni pojam koji označava kreiranje sadržaja (ili kôda, u ovom slučaju) od strane “širokih masa”. Najpoznatiji primjer crowdsourceanog sadržaja je Wikipedija koja sama kaže sljedeće o tom fenomenu:

[…] crowdsourcing relies upon unpaid or low-paid amateurs who use their spare time to create content, solve problems, even do corporate R & D.

Cambrian House je među prvima našao načina kako iskoristiti ovaj fenomen, a druga stvar koja mi se kod njih dopala jest plaćanje zanimljivih poslovnih ideja.

Popularity: 27% [?]

Zašto programeri vole raditi u gaćama

Za početak, moram priznati da me interes kojeg je potakao moj prethodni post potpuno iznenadio, i premda imam desetak tema koje želim pretvoriti u postove na ovom blogu, nikako uloviti vremena i koncentracije…

U zadnje vrijeme sam svjedokom jednog neobičnog trenda. Naime, kao što neki od vas već znaju, trenutačno se bavim organiziranjem developerskog tima u tvrtki za koju radim. Moj plan je malo-pomalo skupiti nekoliko kvalitetnih developera raznih profila i specijalizacija — za početak jednog (uz mene), a onda postupno dodati i ostale kako će se projekti razvijati.

Znao sam da će ljude biti malo teže naći jer dolazi ljeto, oni koji su već zaposleni žele iskoristiti godišnji, pa mjesec dana otkaznog itd, ali naletio sam na jedan problem koji nisam očekivao.

Postupak je bio klasičan: od pristiglih životopisa probrali smo one zanimljivije, te tim ljudima poslali testni zadatak. Odgovori su, naravno, varirali u kvaliteti, no nakon kratkog dopisivanja s kandidatima ispostavilo se da svi do jednog žele raditi honorarno, od kuće, radije nego dolaziti u ured i raditi u timu.

S jedne strane, razumijem način razmišljanja koji stoji iza takvih preferenci — i sam sam dosta vremena proveo razvijajući razne sajtove u fušu od doma, a jedno vrijeme mi je to bio i temeljni izvor prihoda. I baš zato dobro znam sve prednosti i mane takvog načina rada, i znam zašto telecommuting može samo iznimno biti koristan u ozbiljnom softverskom developmentu.

Koje su prednosti telecommutinga? Prije svega, prednosti su na strani developera — može si organizirati radni dan prema volji, raditi usred noći ili rano ujutro, na balkonu ili u gaćama, može sjesti za računalo kad ga ulovi inspiracija ili se izvaliti pred televizor ako mu se ne radi. Također se štedi vrijeme putovanja na posao i s njega, za ručak je dovoljno otići do kuhinje i tako dalje. Između ostalog, vješt developer može na ovaj način raditi paralelno za nekoliko poslodavaca, čime uz malo više truda može ostvariti veći prihod.

Postoje prednosti i za poslodavca, i to prije svega u smanjenim troškovima, jer telecommuter ne treba radni stol u uredu, a u domaćim uvjetima često niti računalo, jer mnogi developeri koje znam kod kuće imaju jači stroj nego im tvrtka daje na korištenje.

No, postoje i nedostaci, i to također na obje strane. Gore opisani način developmenta može se primijeniti isključivo na mlade programere, koji ili žive sami ili s uviđavnim roditeljima koji ga puštaju na miru, te koji imaju dovoljno energije da mogu kodirati petnaestak sati na dan i tako “opsluživati” dva-tri poslodavca. Developeri koji imaju vlastitu obitelj, a posebno ako ta obitelj uključuje malu djecu, suočavaju se s konstantnim prekidima koncentracije, a dokazano je da svaki prekid zahtjeva 15-30 minuta za povratak na istu razinu koncentracije kao prije njega; dakle, ako vam klinac pet puta upadne u sobu s pitanjem “Tata, a cto jadis?”, to predstavlja gubitak produktivnosti od dobrih dva sata.

Na strani poslodavca nalaze se veći problemi, iako često poslodavci njih nisu svjesni. Naime, kod razvoja kompleksnih aplikacija — uključujući i Web aplikacije — vrlo je rijetko slučaj da jedan developer samostalno razvija cijelu aplikaciju, pa čak i jedan njezin segment. U pravilu to rade timovi, koji stalno trebaju međusobnu koordinaciju i komunikaciju, a da ne govorim o tome da je poanta tima u bliskosti i međusobnom poznavanju developera. Svakome zainteresiranom za tu temu svakako preporučujem knjigu Peopleware, koja kondenzira brojne rezultate istraživanja i pojedinačna iskustva.

Timovi osiguravaju još jednu važnu stvar, a to je konzistentnost arhitekture i koda. Svi članovi tima trebaju se pridržavati zajedničkih standarda, tako da svaki od njih može uskočiti na mjesto nekog drugoga u slučaju potrebe, kao i da se olakša kasnije održavanje aplikacije. To posebno vrijedi za velike kompleksne aplikacije, gdje nije praktično iznova napisati dio koda ako se pokaže nerazumljivim.

Gdje telecommuting ima smisla? Prije svega kad pojedini developer samostalno radi određenu programsku cjelinu — idealno cijelu aplikaciju — a posebice kad interna arhitektura i kvaliteta koda nisu bitni, te se ne očekuje preveliko održavanje nakon što je posao jednom završen. U domaćim uvjetima to u praksi znači manje ili više jednostavne Web sajtove, obično pogonjene nekim CMS-om kućne izrade ili prilagodbom Joomle, Typa3, ezCMS-a ili nekog sličnog FOSS rješenja.

Kod izrade ozbiljnih, kompleksnih aplikacija, telecommuting nije posebno korisna opcija. No, nije potpuno isključena: moguće je zamisliti situaciju gdje jedan član tima treba raditi na udaljenoj lokaciji: npr. ako iz privatnih razloga mora ostati kod kuće ili se preseli u drugi grad, ili ako se nalazi u dislociranom uredu tvrtke. Ova prva dva slučaja kod nas se obično rješavaju prekidom radnog odnosa, no gubitak vrijednog člana tima zbog takvog razloga nema puno smisla, i onda je telecommuting idealno rješenje da vuk (ne Vuk :) ) bude sit a koza ostane cijela. Rands (kojeg i inače preporučujem) je u siječnju 2006. imao odličan post na tu temu (s gomilom odličnih komentara).

Dakle, da sažmem: kod velikih, složenih aplikacija nužno je imati dobar, cjelovit tim developera koji rade na istoj lokaciji; konzistentnost tima važnija je od tehničkih i prostornih problema i ograničenja, a telecommuting tu može odigrati veliku ulogu u zadržavanju cjelovitosti tima. Zato prvo treba izgraditi dobar tim, a onda se tek može raditi na daljinu.

Popularity: 26% [?]

« Previous Page