Unapređenja procesa

Metodologije upravljanja projektima su nekim ljudima kao religije - uhvate se kao pijani plota, pa ne puštaju. Zato i izbegavam da se priklonim bilo kojoj pojedinačno. Više mi se sviđa ideja da čitam o svemu što mi padne šaka, pa pustim procese da nastaju lagano, kroz niz sitnih unapređenja koja se stalno dodaju i peglaju.

U ovom intervjuu (kojim sam u par navrata smarao followere koji prate @istdn) David J. Anderson navodi par pitanja koja bi se s vremena na vreme trebala postaviti, a vezanu su za procese i procedure koje tim koristi:​

  1. "How well is our system operating?"
  2. "Do we have the right policies?"
  3. "Are we gathering the right metrics?"
  4. "Are we visualizing the right things?"

​I evo ga podsetnik, da se bar jednom mesečno preslišam, za slučaj da zaboravim:

​Repeat monthly

​Repeat monthly

Jer procesi su najbolji kada nastaju lagano i kada ih tim usvaja korak po korak, spreman da prihvati sledeći korak potaknut rezultatima koje je video prihvatanjem prethodnog.​

The Story so Phar

Phar je način da se fajlovi koji sadrže PHP kod grupišu i distribuiraju u obliku jedinstvenog paketa. Umesto da imate stotine PHP fajlova rasutih po nizu foldera koji se tako dižu na server, sve to možete imati u obliku jednog .phar fajla, bez da gubite fleksibilnost rada sa fajlovima (include i require rade kao što očekujete, kao i sve funkcije za rad sa fajlovima).

​PHP

​PHP

Na primer, activeCollab kod i kod biblioteka koje sistem koristi je rasut po 7000+ fajlova i foldera. Kada FTP klijent krene da uploaduje takav skript na server, sam upload zna prilično da traje pošto se za svaki fajl i folder šalju pojedinačne komande, rade provere itd. S druge strane, kada taj isti kod zapakujemo u Phar paket, dobijamo jedan poveći fajl koji se jako brzo uploaduje pošto ide set komandi za samo jedan fajl. Ovo se naročito primeti kod brzih veza, gde upload ide brzo kada se konekcija ostvari, ali se usporava kako broj komandi koje treba da se izvrši.

Početkom prošle godine activeCollab 3 je bio u beti. Početkom beta perioda nove verzije smo puštali u Phar obliku, ali su iste pravile velike probleme kada je na serveru na kome treba da se izvršavaju imao podešen APC. Pošto Phar sam po sebi nije bio piroritet (ali je bio lep bonus), odlučili smo da se za početak okanemo ćorava posla i fokusiramo na stabilizaciju verzije 3. Tako smo prvi put probali da proguramo Phar kao primarni oblik distribucije i odustali.

Onda se desio maj 2012, lansiranje verzije 3 i sav dalji razvoj koji je bio potreban da se sistem ustabili, upegla i zaokruži, tako da Phar dugo nije pomaljao svoju čupavu glavu. Sada, kada smo krenuli da zaokružujemo activeCollab 3.3 (trenutno u beti), odlučili smo se da ponovo probamo Phar kao distribucioni metod i kao osnovu auto-upgrade funkcionalnosti. Opet smo naišli na neke granične slučajeve, ali ovaj put sa dovoljno znanja i iskustva da oko njih prođemo. 

Taman kada som mislili da se ćemo da se "izvučemo" i napokom počnemo da koristimo paketa kao osnovu za distribuciju novih verzija, naletešmo na zid: IonCube loader puca kada naleti na naš paket. Jedna stvar je reći power-useru da pojedine APC config opcije podesi kako mi kažemo, a skroz druga tražiti od system administratora shared okruženja da isključi nešto bitno kao što je IonCube loader. Očekivati bug fix od IonCube ekipe, kao i brz upgrade od strane hostera je ludost, tako da o tome nismo ni razmišljali kao opciji (iako smo im sam bug prijavili).

I tako se vraćamo na početak - još jedno proleće, još jedno odustajanje (polovično, čitaj dalje), a sve pod geslom: više sleće na proleće 2014.

Ono što smo odlučili da uradimo je da zadržimo Phar kao mod za distribuciju, ali da napravimo activeCollab dovoljno pametnim da ume da otpakuje paket u graničnim slučajevima za koje nam je poznato da su problematični:

  1. Sistem nema registrovan phar stream wrapper.
  2. APC je instaliran i ima apc.stat setovan na 1. 
  3. Vidimo da je instaliran IonCube loader.

Ova lista verovatno nije konačna i naletećmo na još neke graničke slučajeve tokom bete, ali neće promeniti naš pristup problemu: Phar kao primarni način za distribuciju, a otpakivanje samo u slučaju potrebe. Lepa stvar je što Phar sam po sebi ume lepo da otpakuje arhive uz razumnu potršnju memorije (između 5 i 10MB, za .phar fajl veličine nešto više od 40MB).

Vidimo se sledeće godine u ovo doba. Nadam se da će PHP ekosistem u međuvremenu dovoljno napredovati da ono što nam danas pravi probleme tada ne bude prisutno. Uostalom, uskoro kreće activeCollab Cloud tako da će distribucija koda vremenom postajati sve manje i manje bitna…

Putovanja i pos'o

​U zadnjih par godina dosta više putujem nego ranije. Mislim da od mog prvog zvaničnog godišnjeg odmora 2009. godine nije prošao ceo mesec, a da negde nisam otišao bar na produženi vikend. 

Svestan sam da takvo "preterivanje" sa putovanjima nije održivo samo po sebi, pa eksperimentišem u raznim varijantama i gledam da ga nekako uskladim sa poslom. 

Verovatno većini zvuči ludo da nosi posao na odmor. Međutim, ja na putovanja ne gledam samo kao na odmor i vreme kada ću da se isključim od svega, već kao na priliku da promenim okruženje, vidim i probam nešto novo. U takvim situcijama se često prebacim u neku drugu brzinu i mnogo bolje radim nego kada svakodnevno idem u kancelariju. Ili pak iskoristim vreme da eksperimentišem sa novim idejama za koje mi svakodnevica u Novom Sadu ne daje previše prostora.

​Treking na Cat Ba ostrvu, Vijetnam, sa sve laptopom u torbi

​Treking na Cat Ba ostrvu, Vijetnam, sa sve laptopom u torbi

Programiranje je posebno zahvalan posao što se kombinovanja sa putovanjima tiče - mogu da radim danima, i da onda dođem jednom i commitujem masu izmena koje sam napravio i uskladim se sa stvarima koje je ostatak ekipe radio.

Posle par eksperimenata, ovo su stvari koje mi provereno ne rade posao:

  1. Putovanje kroz mnogo mesta bez dugog zadržavanja u njima. Tako smo putovali Azijom (9 država u 2 meseca) i nisam gotovo ništa radio jer jednostavno nigde nismo ostajali dovoljno dugo da imam želju da radim.
  2. Nošenje tableta umesto laptopa. Čuda kao što su iPad su gotovo beskorisna jer na njima ne mogu da radim stvari koje bih želeo da radim u datom momentu (programiranje, pisanje itd) i moram da se ograničim samo na ono što mogu da odradim online (podrška, email), kada sam online (ne tako često).

Jedina stvar koja mi radi posao je nošenje laptopa na put gde nismo previše u pokretu i gde s vremena na vreme imam pristup internetu.

Dodatak 2013:

Tekst gore je originalno napisan tokom 2010. godine, nakon jednonedeljne posete Rimu (do koga smo stigli stopom). Od tada sam se malo smirio što se putovanja tiče (iako i dalje dosta putujem), ali se nije promenilo to da na putovanja nosim laptop i radim. 

Od nekih novih activeCollab mogućnosti koje su na putovanjima nastala su automatska kalkulacija roka plaćanja (u Splitu), značajna unapređenja kalendara (nastalo u Grčkoj, izlazi u okviru activeCollab 4), novog modula za koji postoji velika šansa da postane naš novi proizvod (nastao na relaciji Bački Brestovac - Bor tokom novogodišnjih praznika) itd.

11" MacBook Air je idealan računar za putovanje kada želite da radite jer je gotovo neprimetno veći od iPada, a nudi sve što se od jednog laptopa očekuje. Ni 13" Retina MacBook Pro (moj trenutni laptop) nije deleko po praktičnosti.

Top Sites, trenutno

Stvari koje su mi trenutno "prikačene"​ kao top sites u Safariju:

​My top sites

​My top sites

​Idemo redom:

  1. ​Naš activeCollab - tu se dešava sav razvoj, planiranje itd.
  2. activeCollab.com forum - možda je forum danas već "tradicionalan"​ način komunikacije sa zajednicom, ali ipak volim tu formu.
  3. Help Desk - podrška je možda nužno zlo, ali takođe i nešto što razlikuje firme koje žele ozbiljno da se bave prodajom softvera i hobije.​ Od prvog dana do danas koristimo HelpSpot.
  4. ​Payment Gateway - porudžbine, statistike i izveštaji, povrat i poništenje porudžbina itd, sve na jednom mestu. Partner je FastSpring.
  5. Build & Deploy - naša lokalna Jenkins instalacija koju koristimo da pravimo razvojne i produkcione buildove, kao i za neke deployment zadatke.​
  6. GitHub - Gde nam je sav kod…​

Sve vezano za posao. Jedna stvar je sigurna - na ovoj listi se neće nalaziti ni jedna društvena mreža :)

Podešavanje Mail.app da koristi Reply All

Donedavno sam koristio Sparrow, ali ga je onda Google kupio i tu lepa priča o lepom mail klijentu sa svetlom budućnošću staje. Par nedelja nakon toga, prebacio sam se na Mail.app, kao nečemu što je najbliže dobrom email klijentu za šta znam (a nisam previše istraživao da budem iskren, nisam imao vremena).

Kada se sve sabere, Mail.app je jako dobar email klijent. Vide se godine i "tradicionalan"​ pristup tom tipu softvera, ali radi posao jako lepo u slučajevima kada koristite dosta mail adresa (meni se vremenom nakupilo pet). Pored niza stvari koje Mail.app radi lepo, jedna stvar me je dosta iritirala: ne postoji način da se aplikaciji kaže da koristi Reply All po defaultu kada odgovara preko tastaturne prečice (Cmd+R). Bar ne direktan…

Ono što može da se uradi je da se kroz Shortcuts panel Keyboard Preferences panela preslože prečice za Reply i Reply All komande:

​Keyboard Shortucts

​Keyboard Shortucts

​Nakon restarta, Mail.app će pokupiti ta podešavanja i koristiti ih.

Fascinantno mi je da Apple misli da je korisnicima logično da je ovaj tip podešavanja centralizovan na nivou operativnog sistema, umesto da je na nivou aplikacije. Na isti način na koji su mislili da će iOS aplikacije dodavati svoja podešavanja u Preferences alat… Možda neke, ali vreme je pokazalo da ih korisnici očekuju u aplikacijama, ne na nivou operativnog sistema.

Bilo kako bilo, slagao se sa ovim pristupom ili ne, drago mi je da postoji jednostavno rešenje. Možda nekom ovaj savet bude koristan, ako ne za konkretan primer, onda za neki drugi slučaj gde treba da se "gaze"​ podrazumevane prečica.

DayOne, dnevnik koji stvarno vodim

Malopre sam okačio sledeći tvit:

DayOne, jedina aplikacija zbog koje mi je drago što imam smartphone. Sve ostalo je nebitno, na duže staze

pa su me pitali o kojoj aplikaciji je reč i za šta je koristim. Odgovor na to pitanje je malo duži, a već odavno imam plan da napišem ovaj post, pa ga evo sada, sa kojim mesecom zakašnjenja.

Najjednostavniji način da opišem (moje viđenje) DayOne aplikacije je sveprisutni dnevnik koji te ne opterećuje pri unošenju beleški. Već sam ranije, u raznim momentima u životu, pokušavao da vodim dnevnik, da beležim stvari i istražujem ideje (pisanje pomaže razmišljanje). Ako izuzmemo ovaj blog kao neku varijantu sporadičnog piskaranja o stvarima i idejama koje me zanimaju, svi pokušaji vođenja dnevnika su se neslavno završavali. Da bi vodio tipičan dnevnik, trebaš imati papir i olovku pri sebi, a i imati mogućnost da sedneš i zapišeš stvari. Na žalost, nikada nisam bio dovoljno sistematičan da uveče sednem i pozapisujem stvari koje su mi se tokom dana desile. Takođe, nisu sve stvari koje želiš da zabeležiš reči. Dosta češće su to slike, što sa papirnim dnevnikom ne ide.

Te probleme DayOne rešava zahvaljujući trima osnovnim osobinama:

  1. Sveprisutan je. Aplikaciju imam na svim uređajima koje koristim, uključujući i uređaj koji uvek imam pri sebi (telefon).
  2. Unos slike je dosta pojednostavljen. Kada pogledam svoju arhivu, više od pola unosa su slike sa kratkim pratećim tekstom.
  3. Ne forsira formu unosa, već omogućava da unosite kratke beleške gde slika, lokacija i vremenski uslovi dodaju kontekst belešci.

Sveprisutnost kao feature

Sveprisutnost kao feature

Ostatak tvita je tvrdnja da mi je samo zbog ove aplikacije drago što imam smartphone. Kada pogledam, bez svih aplikacija koje na telefonu imam i koje svakodnevno koristim (Reeder, Instapaper, Tweetbot, iA Writter, Things itd) bih mogao funkcionisati bez trunke žaljenja. Radio bih nešto drugo umesto čitanja vesti ili kačenja koještarija na Twitter (verovatno bih nosio knjige sa sobom, ali bih zanimljive ideje samo podvlačio i zadržavao za sebe). Jedina stvar koje bi mi stvarno bilo žao je nemogućnost da uhvatim i zabeležim momente koji se možda čine kao mali, ali koji čine život vrednim življenja.

Npr, momenat kada je trogodišnja sestričina dobila brata (postao sam ujak pre neki dan) i njeni ispadi ljubomore (ovde cima tatu da je nosa pošto je sve "boli"):

Ljubomorko
Ljubomorko

Ili pak odmaranje u Runolistu nakon jednog dana na snegu. Pilo se pšenično pivo (Godža i Irena toplu čokoladu) i čavrljalo o svačemo, pre svega o utiscima nakon prvih snowboarding časova kroz koje je naš Cloud tim tog dana prošao:

Odmor u Runolistu

Odmor u Runolistu

Da ne ispadnem sada prevelik romantik, ali ovi momenti stvarno jesu bitni. Ja ih, s druge strane, sve češće zaboravljam što mi se više stvari u životu dešava.

DayOne koristim od leta. U zadnjih 6+ meseci imam beleške za svaki dan (nekad samo jednu, a za neke dane i desetak). Već sada, nakon tako kratkog perioda, uzmem pa prelistam unose. Jedan swipe i kao da si upao u vremeplov! Ima tu svega - ličnih stvari (koje NIKADA ne bih okačio na neku društvenu mrežu), beleški vezanih za posao, fotografija mesta na kojima sam bio i stvari koje sam radio, društva, rodbine itd. 

Po meni, DayOne i uređaji na kojima se isti izvršava su dobar primer kako moderna consumer tehnologija može da se koristi za nešto što je tipično ljudsko i što su ljudi vekovima pre radili. Samo je sada to lakše i dostupnije.

Minimum Viable Product?

Pre koju nedelju se održao peti po redu Starti Meetup, prvi put u Novom Sadu. Priča koju sam pričao je bila malo drugačija od ostalih, pošto A51 ne kreće danas, već iza nas stoji celih 5 godina profitabilnog poslovanja. Sve se vrtelo oko par pitanja: šta smo radili u prethodnih pet godina, gde smo bili, gde smo stigli i da li imamo snage i ambicija za još pet (pedeset?) godina1.

Posle takve jedne priče i sa pogledom na stvari iz tog konktekstu, bio sam jako oštar prema Minimum Viable Product konceptu (možda čak i previše). Prošla je već koja nedelja od onda, pa su mi se utisci slegli i sada mogu da koliko-toliko racionalizujem svoj "hejt" prema MVP.

Lično smatram da je Minimum Viable Product kao cilj dosta ograničen. Umesto toga, ljudi treba da se fokusiraju na izgradnju kompanije i ideje koja može opstati na tržištu. Tu misao, koja mi je do danas bila prilično neodređena, su sjajno artikulisali u ovom tekstu kao Minimum Sustainable Company.

Techcrunch (i slični) verovatno imaju cele liste kompanija koje su došle do MVP faze, ali nisu doživele svoj treći ili peti rođendan. Proizvodi i ideje dođu i prođu, trendovi takođe. Odlika dobre, izdržljive kompanije je da se svim tim promenama prilagođava i odoleva. Iskreno sam fasciniran kada čujem priče osnivača softverskih kompanija koji posle 10 ili 20 godina i dalje rade za istu firmu, na istoj ili sličnoj grupi problema, sa istim ili čak pojačanim žarom. U poređenju sa tim, sve MVP priče, priče o brzom rastu, exit strategijama i sličnim stvarima mi deluju bledo i plitko.

1 Odgovor je "Da, imamo"

Outlook i Microsoftova arogancija

Možda znate, možda ne, ali Microsoft se odlučio da zadrži Word kao sistem za prikaz HTML mailova u Outlooku 2013 (matora vest) umesto da vrati Internet Explorerov:

Microsoft switched to Word (from Internet Explorer) as its rendering engine with the introduction of Outlook 2007 and hasn’t looked back (errr, forward?) since. Despite the email community’s efforts and a well-intentioned response from Microsoft, this means that HTML and CSS support in Outlook has remain virtually unchanged between versions 2007, 2010 and now 2013.

Razlika je bitna: Word renda HTML kao neki bajati browser sa kraja devedesetih, dok IE, koliko god da ga kritikovali, sasvim lepo radi taj posao, posebno u verzijama 9 i 10.

Razlog zašto me ova odluka toliko nervira je zato što je doneta iz pogrešnih razloga. Iz Microsoftove perspektive, sve je super - sjajna "interoperabilnost" između aplikacija koje oni proizvode. Njihov univerzum je u balansu i oni misle da je to jedini što je bitno.

Ono što je problem, a što Microsoft nikako ne kapira zadnjih 10 godina, je da ovo nisu više devedesete i da oni lagano tonu u nebitnost. Njihov market share, a samim tim i njihov univerzum, lagano opada:

Last year, we concluded by saying, “Fortunately for Microsoft, none of this is going to happen. Windows 8 will reassert the dominance of the Windows PC. Office and other business products will remain corporate necessities, and developers will never be able to ignore Microsoft. Windows Phone will become a viable third mobile platform, the Xbox will continue to dominate the living room, and new products will surprise the pundits who thought Microsoft couldn’t innovate. Even Bing will finally make a profit someday.”

This year, it’s a lot harder to say much of that. Windows 8 doesn’t seem to be reasserting the dominance of the PC. Windows Phone is not a viable third platform. Bing is still burning money. The Microsoft nightmare scenario is actually becoming a reality.

Ovakvo ponašanje (zanemarivanje otvorenog standarda u korist sebičnog interesa i internog rešenja) ne pije vodu u situaciji kada firma više nije alfa i omega na tržištu. No, to je njima nebitno i oni guraju po svome. Mislim da će im se takvo ponašanje brzo obiti o glavu, na sličan način kao što im se zanemarivanje Internet Explorera u verziji 6 lepo vratilo. Samo treba da budemo strpljivi dok se većina Outlook korisnika polako prebaci na web mail sisteme ili na konkurentske proizvode, pa onda lagano možemo da ga zanemarujemo.

Izazov za web developere

A51 nudi sjajne uslove za rad, atraktivne plate i sistematičan pristup razvoju, a ovaj izazov koristimo kao način da vidimo kakav ste programer. Cela stvar je zamišljena kao zanimljiva mini aplikacija koja može da se napravi u slobodno vreme, a da uz to pokaže Vaše programersko iskustvo i pristup rešavanju problema.

Samostalno rešavanje ovog izazova je uslov da biste konkurisali na programersku poziciju u našoj firmi.

Izazov

Uz pomoć bilo kog popularnog PHP frameworka napravite mini aplikaciju koja:

  1. Uvozi sadržaj fajla fraze.xml u bazu podataka. Neka potpis svake "fraze" bude njen MD5 hash.
  2. Iako je sam XML fajl mali, potencijalno može biti dosta velik (hiljade fraza) tako da savetujemo korišćenje XPatha za izvlačenje vrednosti, umesto prostih XML to array funkcija.
  3. Omogućava korisnicima da definišu jezik (zahtevano polje je ime jezika), a potom prevedu sve fraze iz uvezenog fajla. Povezati frazu sa prevodom za odgovarajući jezik preko njenog "potpisa".
  4. Primer interfejsa za prevođenje je ponuđen (prevodilac.png) kao inspiracija. Slobodno ga učinite boljim i funkcionalnijim ako želite.
  5. Izlistati sve jezike koji su definisani u bazi podataka i omogućavati posetiocima da otvore jezik i pogledaju listu fraza i njihovih prevoda.
  6. Svaki prevod fraze počinje sa +1 glasova. Posetioci sajta mogu da glasaju za prevode podižući im vrednost za 1 za svaki pozitivan glas (i time potvrde da je prevod dobar) ili da joj daju negativan glas, što rezultuje negativnim poenom (i time kažu da je prevod loš). Glasa se klikom na + i - dugmad, koja vrednosti šalju PHP skripti kroz Ajax zahtev (POST metodom).
  7. Na stranici jezika, gde su prikazane prevedene fraze osvežavati broj glasova paralelnim Ajax zahtevom svakih 30 sekundi.
  8. Prevod fraze koji padne na -1 glasova (tj. dobije doboljno negativnih glasova da padne na vrednost ispod nule) treba da bude automatski obrisan.

Prilozi (fraze.xml i prevodilac.png): https://www.dropbox.com/s/vvmjw9hvfc649in/izazov.zip

Kada završite ovu aplikaciju, zapakujte kod i pošaljite ga na ilija.studen@activecollab.com, sa kratkim instrukcijama za podešavanje skripte.

Hvala i srećno! Iskreno se nadamo da ćemo se čuti i upoznati, te da ćete postati deo našeg tima!

Oglas za posao: A51 traži web developere

A51 doo je softverska firma iz Novog Sada. Postojimo pet i po godina i fokusirani smo na razvoj web aplikacija koje pomažu timovima i malim firmama da rade efikasnije. Najznačajniji proizvod koji smo izbacili je activeCollab, popularan sistem za upravljanje projektima i saradnju koji koriste hiljade firmi širom sveta, uključujući i zvučna imena kao što su Apple, BBC, Nokia, McLaren, Sony i mnogi drugi.

Pošto imamo velike planove za postojeće (a i neke nove) proizvode, u potrazi smo za dobrim programerima. Iz tog razloga tražimo:

Iskusne Web Developere

Opis posla:

  1. Peglanje postojećih i razvoj novih mogućnosti u našim proizvodima (objektno orijentisan PHP i MySQL na server strani, HTML5, CSS i mnogo JavaScripta na klijent strani).
  2. Rad na sistemima koji nam omogućavaju pakovanje, demonstraciju i prodaju proizvoda (naši interni alati i sistemi koji pokrivaju stvari od deploymenta, preko samog sajta do besplatnih demoa na sajtu).
  3. Rad na novim proizvodima i uslugama koje A51 planira da ponudi u budućnosti.
  4. Razne integracije i usklađivanje sistema sa novim otvorenim standardima (SSO, standardni formati razmene informacija, integracije i transfer podataka iz drugih popularnih alata i slično).
  5. Sve ostalo vezano za razvoj i održavanje naših proizvoda i alata koji nam omogućavaju da ih razvijamo, demonstriramo, prodajemo i podržavamo.

Šta nudimo:

  1. Atraktivnu i redovnu platu koja prati kurs Eura, u skladu sa vašim mogućnostima i iskustvom.
  2. Fleksibilno radno vreme (u razumnim granicama) i dogovorenu radnu nedelju: od ponedeljka do petka. Vikend je vaš i od vas se neće očekivati prekovremeni rad.
  3. Nova kancelarija (na Bulevaru Oslobođenja), nov računar (Mac laptop ili desktop), kuvan ručak svaki radni dan.
  4. Sistematičan razvoj s jedne strane (agilan razvoj sa čestim šipovanjem), ali i prostor za eksperimentisanje s druge.

Očekivanja se u osnovi svode na:

  1. Treba da budete dobar programer koji voli da razvija aplikacije i unapređuje ih.
  2. Cenimo temeljnost, snalažljivost, sposobnost da se problem primeti, nađe i brzo i efikasno reši, kao i radnu etiku, ozbiljno shvatanje obaveza i preuzimanje odgovornosti za napravljeno. Ukratko, cenimo zreolost u pristupu poslu.
  3. Temeljno poznavanje web tehnologija: PHP baziran stack koji koristi MySQL ili sličnu bazu na server strani i HTML5, CSS i JavaScript na klijent strani.
  4. Posao obavljamo iz naše kancelarije u Novom Sadu, tako da treba da ste ili iz Novog Sada i okoline, ili spremni da se zbog ovog posla preselite u Novi Sad.
  5. Mogućnost verbalne i pisane komunikacije na engleskom je zahtevana, što zbog naših mušterija, što zbog nekih naših zaposlenih (iz UK su i ne pričaju sprski).
  6. Fakultetska diploma nije obavezna, ali ne može da škodi.

Ukoliko ste zainteresovani, pogledajte (i rešite) naš izazov za web developere. Hvala i srećno!

Oglas za posao: Support Engineer

A51 doo is a software company from Novi Sad. Our focus is development of web based tools that help organisations get more done by helping them communicate better.

Our flagship product, activeCollab, is used across the globe by thousands of organisations, including some of the largest technology and media companies and well known universities (Apple, BBC, Sony, Nokia, Disney, Yale, Stanford etc, just to name the few).

As our business and popularity of activeCollab grows, we are looking for new people to join our support team. Currently open position is for:

Support Engineer

You will be:

  1. Providing great and timely support to people who have activeCollab related questions. Technical support is provided mainly via email, but we don't shy away from screen-sharing tools.
  2. Helping customer install, upgrade and troubleshoot their activeCollab installation.
  3. Improving end user and administration documentation.
  4. If you like to demonstrate products and workflows, you may even host webinars for our users, record workflow videos etc.

What we offer:

  1. Combination of attractive salary, great work environment and reasonable flexibility with work hours.
  2. Work is done Monday to Friday, weekends are off.
  3. Clean and quite environment where you can concentrate and get work done. We even offer home cooked lunch served in the office every day.
  4. Opportunity to learn new and develop existing skills.
  5. Great equipment to work on (new Macs and high quality peripherals). If you don't like Mac OS, no worries - Macs run Windows just fine.
  6. Type of energy that only small companies can offer. You will not find inertia and closed minds here.
  7. Make the difference! activeCollab is one of the best known end user software products coming from Serbia. It is also a globally recognised project collaboration platform.

What we expect from you:

  1. Experience with hosting and managing PHP applications is required. Troubleshooting will probably required some serious programming chops, so you should not shy away from PHP, MySQL and JavaScript (we can help with some super heavy problems).
  2. Good written and spoken English. We offer tools and resources to improve your English, but good foundation is required.
  3. Knowledge of German, French, Spanish or Portuguese is an advantage.
  4. Work is done in our brand new office in Novi Sad (in Aleksandar Boulevard Center, on the corner of Bulevar Oslobodjenja and Novosadskog Sajma).
  5. Faculty degree is a plus, but not a requirement.

How to Apply?

If you are interested and see a fit here, please prepare a cover letter (we don't need your CV just yet) where you will provide following details:

  1. Why do you feel this is a perfect job for you? What attracts you to customer support line of work?
  2. Customer is having problem with setting up activeCollab on their server and they are frustrated. Defuse the situation and offer sincere help (you can log in via FTP or SFTP to check what the problem is if they send you connection parameters).
  3. activeCollab does not provide typical Gantt chart view. Explain in two to three paragraphs that traditional Gantt charts implementation is not provided, and that customer should take benefit of Outline (which provides easy management of project's task structure) and Milestones (which displays and provides easy management of project timeline) features instead.

Please send this letter to info@activecollab.com by the end of 2012. We'll get back to you within one business day with initial response, and take it further from there.

Thank you for your time!

Šta očekujem od novog laptopa

​Početkom oktobra, moj laptop je napunio četiri godine. U pitanju je prva MacBook Pro generacija koja dolazi u unibody paketu (15"). Od kada je kupljen, "osvežio" sam ga dodavanjem SSD-a (apgrejd koji donosi skok u performansama kao kupovina računara novije generacije) i 8GB RAM-a, a bateriju sam silom prilika morao da menjam prošle godine pošto se stara "naduvala". 

macbook-pro-unibody-large.jpeg

Zahvaljujući tim dodacima, laptop me još uvek lepo služi, ali već lagano gledam da ga zamenim. Mislio sam da će odluka biti no-brainer kada Apple izbaci novu MBP generaciju, ali su me malo "zeznuli" - umesto da samo izmene form factor i učine laptop manjim (a cenu istom), oni su dodali Retina displej zahvaljujući kojem je računar postao osetno skuplji, a i sporiji u nekim svakodnevnim operacijama. Na taj način osveženi ne-Retina MBP je verovatno zadnji trzaj tog formata (znači, nije novi MBP), a sa novim Retina MBP-om ne dobijam ono što sam pre četiri godine dobio sa ovim laptopom (pouzdan računar koji me dobro služi niz godina). Zez...

To sve znači da ću još malo čekati na novi laptop, a do tad evo mojih očekivanja od novog računara:

  1. Bez džidža koje ne koristim: ne sećam se kada sam zadnji put koristio DVD, mrežni kabal ili Firewire. Možemo i bez toga (u MBP Retina to su već izbacili).
  2. Manji i lakši: sadašnji laptop mi nije ni veliki ni težak, ali ne postoji razlog da novi ne bude manji i lakši. Kada se izbace nepotrebne stvari, može se napraviti dovoljno mesta za veću bateriju, a da pritom finalni proizvod bude i manji (MBP Retina to već nudi).
  3. Baterija da drži duže:​ sa sadašnjim laptopom mogu da izvučem dva do tri sata rada. U zadnjih 4 godine baterije su dosta napredovale, tako da bih voleo da novi može bez većih problema da izvuče bar pet, šest sati (više je bolje).
  4. Brži u svakodnevnom radu: kada kupim novi računar, ne očekujem da sporije rešava neke stvari od starog računara. Na žalost, tu MBP Retina ima problem. Naime, potrebno je dosta snage da se ta rezolucija "nahrani" tako da osetno jači novi računar može da "štekne" kod nekih stvari koje ne muče stari računar. Rešiće se to vremenom, ali za sada je tako i to je ono što me najviše odvraća od kupovine Retina modela.
  5. Očekivan rok službe od bar četiri godine: kao i kod trenutnog laptopa, i od novog očekujem da bude relevantan kroz četiri godine. Na žalost, manje i kompaktnije znači i zatvorenije u Apple svetu, tako da sam računar treba odmah "nasvirati" (16GB RAM-a i jači procesor od prvog dana). Ovde se provlači i stavka #4. Ako računar dana ima problema sa nekim zadacima, ta situacije će se samo pogoršavati kako godine budu prolazile.

U suštini, ono što želim je osvežena verzija uređaja koji me danas dobro služi. Jedino očekivanje koje odstupa od računarske verzije "bržeg konja" je očekivanje da bude future proof, tj. da sadrži tehnologije koje danas nisu opšte rasprostranjene, ali očekujem da će biti kroz koju godinu (ekran visoke rezolucije pre svega).

4D i OHIO

Dnevno rešavam stotinak mailova. Ima tu svega: podrške, transkripti razgovora sa mušterijama, notifikacija iz našeg sistema o poslu na kome se radi, ostalih poslovnih mailova i (najmanje)​ lične pošte. Iako ne bih mogao reći da je zatrpan mailbox sam po sebi uzrok stresa, definitivno pomaže pošto sam primetio da tenzija raste sa brojem stvari koje su mi "otvorene" (nezavršene).

No, u zadnjih mesec dana sam počeo da koristim izuzetno jednostavan pristup kojim jako brzo čistim i lični mail i podršku. Svodi se na primenu dva jednostavna principa koja opisuju dve skraćenice: 4D i OHIO. Znam da su skraćenice i glupe i da bacanje istima nedvosmisleno pokazuje želju govornika da se svidi ili ostavi utisak pametne i informisane osobe. Ipak, ovde ću se držati skraćenica zašto je mail nešto sa čime radim svakodnevno, a skraćenice pomažu da se principi lako zapamte i još lakše koriste, pa postaju skoro kao mantre.

4D samo kaže da treba da uradite jednu od ove četiri stvari kada primite mail:​

  • Do It - Uradi šta treba odmah umesto da ostaviš za kasnije. Postoji gomila stvari koje mogu da se reše za manje od dva minuta i bolje ih je uraditi odmah, nego ostavljati za kasnije.
  • Defer It - Ako ne možeš da rešiš sada, odloži za kada možeš. Ja svoje stvari beležim u Things i arhiviram mail, ali za ovo može poslužiti i neki folder, podsetnik, parče papira itd.
  • Delegate It - Prebaci nekom drugom da dalje rešava. Ovo je česta stvar na podršci. Mailove šaljem dalje na verifikaciju problema, da se reši neki bug, pomogne mušteriji itd.
  • Delete It - Najslađa D u listi. Brišem sve što mogu, a arhivu ne organizujem. Kada je gotovo, više nije bitno.

Za razliku od 4D, koji kaže šta da se radi, OHIO kaže kako da se radi: Only Handle It Once. Svaki ponovni povratak poruci koju ste već pročitali bez da je rešena je nepotrebno trošenje vremena i pažnje. Onog momenta kada vidim mail, rešim šta ću sa njim i ne vraćam mu se (osim ako nije odložen). Jednostavno.

​Sparrow, Inbox Zero

​Sparrow, Inbox Zero

Dodatak: U momentu pisanja, help desk kaže 0/0 (prazan inbox, prazan moj queue), a Sparrow pokazuje Inbox Zero. Stoji da je tehnika čist productivity porn, ali meni lepo radi posao.

Moj stav o SEO

U zadnje vreme ne viđam previše SEO priča, saveta i čuda. Možda je to zato što ne zujim po web dev forumima i što sam prilično isfiltrirao blogove koje pratim, a možda je i zato što se napokon prašina (ili mulj?) oko SEO smirila. Uostalom, nije ni bitno zašto sve manje nalećem na slične članke i teme. Ionako imam već izgrađen stav prema svemu tome i sumnjam da i jedan novi tekst ili guru mogu da ga promene.

Suština mog pogleda na celu priču je da SEO treba ignorisati. Pozicija na pretraživačima je rezultat nečega dobrog što radite, a ne nešto što treba da izmanipulišete. Stvari kao što je dobra tehnička realizacija sajta, čisti linkovi, pravilan odabir ključnih reči itd pomažu, ali definitivno ne dovoljno ako ono na čemu radite nije vredno nečije pažnje.

Dobar proizvod i usluga je ono što će (vremenom)​ dovesti do dobre pozicije na pretraživačima. Sve ostalo je po meni jalov posao i prazna priča (od koje neki konsultatni lepo žive, ali opet…).

​Napomena: Ovaj post je stari draft iz 2010. Moj stav se u međuvremenu nije promenio, tako da sam ga na brzinu osvežio i objavio.

Ili rasteš ili umireš

Horace Dediu u "Reverting to the mean":

​Rather than assuming that businesses are in a state of average growth or in some anomalous state above or below that average (from which they’ll recover) we need to think of them being either growing or failing. Going straight up or straight down.

Sudbina kompanija je da ili rastu ili umiru. Samo umiranje može biti jako dug proces tokom koga kompanija lepo živi, ali se ne menja činjenica da lagano nestaje. ​

Apple i NFC

Kroz par diskusija koje sam sa @godza imao o iPhone 5, uvek se nekako vratimo na NFC. Moje razmišljanje o tome koje nisam uspeo (stigao?) da verbalizujem se svodi na:

The truth is that NFC won’t take off without Apple — at least not nearly as quickly as it would with Apple

Izvor: Technology vs. Utility by Matt Drance

Sumnjam da Apple ne može da shipuje NFC sada ili čeka da ga neko drugi učini "prevelikim da bi se dalje ignorisao". Mislim da je istina bliže tome da Apple zna da NFC neće "poleteti" bez njih, te da ga čuvaju za novu generaciju uređaja i dobar use case koji će običnom korisniku (ne nekom zagriženom giku) biti očigledan i jako brzo nezamenljiv.

Sada se ne bih usudio da predvidim šta je tačno taj use case, ali mora biti dobra demonstracije tehnologije, a za to je potrebno partnerstvo sa nekim poznatim i sveprisutnim brendom (na američkom tržištu). Keyless otključavanje automobila nekog od premium brendova deluje zanimljivo kao demonstracija, ali pre će biti nešto tipa plaćanja računa u Starbucksu telefonom (na ovaj način bi se Apple "ugradio" i uzmeo deo kolača i na tom frontu).

Android uređaji mogu da se hvale što su tehnologiju dodali ranije, ali najviše će profita uzeti onaj koji tu tehnologiju učini masovno željenom i korišćenom. Sumnjam da su to Google i Android (po statistikama, većina Android korisnika nisu velike "trošadžije").

Vreme će pokazati…

Pažljivo sa rokovima

Nasumično određeni, a nepotrebni rokovi lako mogu da nam se obiju o glavu: 

Unrealistically tight deadlines result in longer-duration projects than desired, and 42% higher cost (Boehm 2000), lower quality, longer time to benefit realisation (if ever) and frustrated and dissatisfied team members

Takođe:

Boehm’s work with software projects showed a 42% increase in effort and cost resulting from a deadline that was 75% or less than ideal for the project’s scope and staffing.

Izvor: Stacy Goff, Tight, Inflexible Deadlines: Scourge of Projects

Čisto da znate koja cena se plaća kada se forsiraju rokovi koji nisu dobro odmereni i baziraju se na pustim željama umesto na iskustvu i dobrom planiranju. Čak bih se usudio reći da je nemanje nikakvog roka bolje nego imanje pogrešnog roka (loše "šacnut" ili postavljen iz pogrešnih razloga).

Deadline

Definicija, iz Oksfordovog rečnika:

Deadline: The line on the ground in a military prison, beyond which the prisoner shall be shot dead.

Pet preporuka za čitanje

Peopleware - Ova knjiga se pre svega bavi uslovima u kojima i pod kojima ljudi dobro rade, od radnog okruženja, do unutrašnje motivacije.

First, Break All the Rules - O zapošljavanju, manama i snagama pojedinca u timu i firmi, odnosu menadžera prema zaposlenima itd.

The Toyota Way - Sjajan uvod u lean principe. Postoje knjige koje se bave lean principima i alatima za firme koje razvijaju softver ili pružaju usluge, ali je moje mišljenje je najbolje sa principima početi na mestu gde su i nastali - u proizvodnji.

The Goal - Ključna reč: usko grlo! Uvod u theory of constraints koji svako može da čita (objašnjeno u obliku pitkog romana).

egonomics - Ego i donošenje odluka, odnos prema drugima, tim…

Ništa bez bonusa:

E-Myth Revisited - Zanimljiva priča o franšizama koja se bazira na prostoj ideji da proizvod firme ne bi trebalo da bude samo ono što ista pruža kupcima, već i ceo proces kako do toga dolazi. 

Plain Talk - Moja omiljena u celoj listi. Nećem kvarim, pročitajte…