Joel on Software

Joel on Software   Joel despre Software

 

Alte articole din "Joel on Software" in Romaneste

Alte articole din "Joel on Software" in engleza

Scrie-i autorului (numai in engleza)

 

Foc şi Mişcare


De Joel Spolsky
Tradus de catre Patric Ionescu
Duminică, 6 Ianuarie 2002

Bineînţeles, vin la birou, ma învârt pe aici, îmi verific poşta din zece în zece secunde, mă dau pe web şi chiar fac câteva lucruri care nu necesită prea multă gândire, cum ar fi plata facturii de la American Express. Dar pur şi simplu nu reuşesc să intru în ritm şi să scriu cod.

Tetris

 Puseurile astea de neproductivitate ţin de obicei o zi sau două. Dar au fost momente în cariera mea de programator când am pierdut săptămăni întregi fără să fiu în stare să fac nimic. Cum s-ar zice, nu sunt în mână. Nu sunt în priză. Nu sunt nicăieri.

Oricine are toane, ale unora sunt uşoare, ale altora pot fi mai pronunţate sau pot chiar să te lase într-o stare în care nu eşti bun de nimic. Şi perioadele de neproductivitate par sa fie cumva corelate cu cele mai negre dispoziţii.

Mă gândesc la toţi cercetătorii ăia care spun că în principiu oamenii nu pot controla ce mânăncă, astfel încât orice dieta e sortită unei vieţi scurte, iar cel ce-o încearcă va reveni mereu la greutatea sa obişnuită. Poate că nici ca programator nu pot cu adevărat controla când sunt productiv şi uneori trebuie doar să trăiesc cu ideea că există momente în care am spor şi momente în care nimic nu merge si să sper că în medie o să iasă suficient cod ca să nu am probleme cu slujba.

 

 
Go read The Onion for a while.

 
 

Ce mă înebuneşte e că încă de la prima mea slujbă am realizat că, ca programator, scot o medie de două până la trei ore de scris cod pe zi. Când am fost angajat într-o vară ca stagiar la Microsoft, un coleg angajat pe un post similar mi-a spus ca el munceşte de la 12 la 5 în fiecare zi Cinci ore, minus pauza de prânz, şi cei din echipă îl iubeau pentru ca tot reuşea să producă mai mult decât media. Am descoperit că acelaşi lucru se aplică şi la mine. Mă simt puţin vinovat când văd cât de mult par să muncească toţi ceilalţi în timp ce eu muncesc pe bune două sau trei ore pe zi şi întotdeauna sunt unul dintre cei mai productivi membri ai echipei. Probabil că ăsta este motivul pentru care Peopleware si XP insistă să elimine orele suplimentare şi să respecte strict programul de muncă de 40 de ore pe săptămână, o fac ştiind precis că asta nu va reduce productivitatea echipei.

Dar nu zilele când lucrez “doar” două ore pe zi mă îngrijorează. Mă îngrijorează zilele când nu pot să fac nimic.

M-am gândit o grămadă la asta. Am încercat să-mi aduc aminte când am lucrat cel mai mult în cariera mea. Probabil s-a întâmplat când Microsoft m-a mutat într-un birou frumos, nou, pluşat, cu ferestre enorme care dădeau într-o curte drăguţă plină cu cireşi în floare. Totul sclipea. Luni de zile am lucrat fără întrerupere şi am scos specificaţiile detaliate pentru Excel Basic – un vraf monumental de hârtii explicând incredibil de detaliat un model obiectual gigantic şi un mediu de dezvoltare. Efectiv nu m-am oprit niciodată. Când a trebuit să merg la Boston pentru MacWorld am luat cu mine un laptop şi am scris documentaţia pentru clasa Window stând pe o terasă plăcută la HBS.

Odată ce-ţi intri în ritm nu mai e aşa de greu să continui. Multe din zilele mele se desfăşoară aşa: (1) mă apuc de treabă (2) citesc poşta, mă dau pe web etc. (3) mă gândesc că mai bine mă duc întâi la masa şi mă apuc apoi de treabă (4) mă întorc de la masă (5) citesc poşta, mă dau pe web etc.(6) mă hotărăsc, în sfârşit, să mă apuc de lucru (7) citesc poşta, mă dau pe web etc. (8) mă mai hotărăsc odată ca trebuie să mă apuc de lucru (9) deschid nenorocirea de editor şi (10) scriu cod fără oprire până îmi dau seama că e deja 7:30 pm.

Undeva între pasul 8 şi pasul 9 se pare că e un bug, deoarece nu reuşesc mereu să trec hopul. bike trip Pentru mine singura chestie dificilă este să mă apuc de treabă. Un obiect nemişcat are tendinţa de a ramâne nemişcat. În creierul meu există ceva incredibil de greu care e foarte dificil de urnit şi de pus în mişcare, dar care odată ce rulează la viteză maximă nu necesită un efort suplimentar pentru a merge. Este ca o bicicletă echipată cu tot ce este necesar traiului pentru o excursie prin ţară – când incepi sa pedalezi faci o grămadă de efort, dar odată ce ai pus-o în mişcare merge la fel de uşor ca şi când nu ai avea nici un fel de greutate suplimentară.

Poate că ăsta este secretul productivităţii: să te apuci efectiv de lucru. Poate că programarea în doi merge când merge tocmai din cauză că planificând o sesiune de programare în doi cu un amic vă forţaţi unul pe celalalt să vă apucaţi de treabă.

Joel in the Army

Când eram paraşutist în Israel un general a venit să ne ţină o scurtă prelegere despre strategie. În luptele de infanterie, ne-a spus el, nu există decât o strategie: Foc şi Mişcare. Te deplasezi către inamic în timp ce tragi cu arma. Focul tau îl forţează să ţină capul jos si nu poate să tragă în tine. (Asta vor soldaţii când strigă “acoperă-mă.” Înseamnă “trage în inamic ca să-l faci să stea ghemuit şi să nu poată trage în mine până alerg pe partea cealaltă a străzii.”Funcţionează.) Mişcarea îţi permite să cucereşti teritoriul şi să te apropii de inamic la o distanţă de la care ai mai mari şanse să-l împuşti. Dacă nu te mişti inamicul o să decidă urmatoarea mişcare, ceea ce nu e bine. Dacă nu tragi inamicul o sa tragă in tine, ţintuindu-te la pamânt.

M-am gîndit mult la treaba asta. Am remarcat cum aproape orice strategie militară, de la luptele aeriene până la manevrele la scară mare ale marinei, e bazată pe idea de Foc şi Mişcare. Mi-au mai trebuit alţi cincisprezece ani ca să realizez că faci lucrurile în viaţă după principiul Foc şi Mişcare. Trebuie să înaintezi un pic în fiecare zi. Nu contează dacă codul tău e de doi lei şi plin de erori şi nimeni nu îl vrea. Dacă te mişti înainte, scriind cod şi reparând buguri într-un ritm constant, timpul e de partea ta. Fii atent când competiţia trage în tine. Vor oare să te ţină ocupat cu eschive la rafalele lor, astfel încât să nu poţi sa înaintezi?

Gândiţi-vă la istoricul strategiilor de acces la date care au venit de la Microsoft: ODBC, RDO, DAO, ADO, OLEDB, şi acum ADO.NET – toate noi! Sunt astea o necesitate? Rezultatul unui grup incompetent care nu e in stare să facă un design reuşit şi simte nevoia să reinventeze metodele de acces la date an de an? (Probabil că ăsta e de fapt motivul). Dar rezultatul este, în final, foc de acoperire. Concurenţa nu are de ales şi trebuie să îşi petreacă tot timpul portând şi aducând la zi, timp în care nu mai pot să îşi îmbunătăţească produsul. Uitaţi-vă cu atenţie la piaţa de software. Companiile care merg bine sunt cele care se bazează cel mai puţin pe marile companii şi nu îşi pierd vremea adaptând şi reimlpementând şi reparând buguri care nu apar decât pe Windows XP. Companiile care-o dau de gard sunt cele care pierd prea mult timp încercând să ghicească în cafea direcţia în care o va lua Microsoft. Oamenii sunt speriaţi de .NET şi decid să îşi refacă arhitectura pentru .NET pentru că se gândesc că aşa trebuie. Microsoft trage în tine şi e doar foc de acoperire pentru ca ei să poată să se mişte înainte, în timp ce tu nu poţi pentru că aşa se joacă jocul ăsta, Bubby. O să oferi suport pentru Hailstorm? SOAP? RDF? O să le suporţi pentru ca au nevoie de ele clienţii tai, sau pentru că cineva trage în tine şi simţi nevoia să răspunzi? Echipele de vânzări ale marilor companii înteleg ce-i aia foc de acoperire. Ei se duc la clienţi şi le spun “OK, nu trebuie să cumperi de la noi. Cumpără de la cel mai bun vânzător. Dar asigură-te că iei un produs care stie de (XML / SOAP / CDE / J2EE) pentru că altfel o să fii Închis În Portbagaj” Apoi când companiile mai mici încearcă să îi vândă aceluiaşi client, tot ce aud este papagaliceasca obedientă a CTO-ului “Aveţi J2EE?”. Şi trebuie să îşi piardă vremea lucrând cu J2EE chiar dacă nu le aduce vânzări în plus şi nu le dă nici o ocazie să se distingă. Este o facilitate tip bifă – o faci ca să poţi bifa în listă că o ai, dar nimeni nu o sa o folosească niciodată şi nimeni nu şi-o doreşte. Şi este foc de acoperire.

Foc şi Mişcare, pentru companiile mici, cum este a mea, înseamnă două lucruri. Trebuie să ai timp la dispoziţie şi trebuie să înaintezi în fiecare zi. Mai devreme sau mai târziu vei câştiga. Tot ce am reuşit să fac ieri a fost să îmbunătăţesc un pic schema de culori de la FogBUGZ. Asta este OK. Devine mai bun pe zi ce trece. În fiecare zi programul nostru devine mai bun şi mai bun şi avem din ce în ce mai mulţi clienţi şi de fapt doar asta contează. Până când o să ajungem o companie de talia lui Oracle nu are rost să ne gândim la strategii de amploare. Tot ceea ce trebuie să facem este să venim la lucru în fiecare zi şi, cumva, să pornim editorul.

It's getting better all the time... o/~



Acest articol a aparut initial in engleza cu numele Fire and Motion  

Joel Spolsky este fondatorul Fog Creek Software, o mica firma de software din New York City. El a absolvit Universitatea Yale si a lucrat ca programator si manager la Microsoft, Viacom si Juno.


Continutul acestor pagini reprezinta opinia unei singure persoane.
Tot continutul Copyright ©1999-2005 de Joel Spolsky. Toate Drepturile Rezervate.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky