Search  
Thursday, September 21, 2017 ..:: Articole » Programatorul pragmatic ::.. Register  Login
 Articole Minimize

Programatorul pragmatic

1. Trebuie să-ţi pese de ceea ce faci

N-are rost să faci soft dacă nu vrei să-l faci bine. Fă altceva, de care-ţi pasă.

2. Gândeşte-te la ceea ce faci

Pentru a deveni un programator pragmatic, trebuie să te gândeşti la ceea ce faci în timp ce lucrezi. Trebuie să priveşti munca ta cu un ochi critic. Întotdeauna se poate face mai bine. Nu sta niciodată pe pilot automat.

Scrierea unui soft ar trebui să fie o materie exactă. Cu toate acestea, există loc pentru îmbunătăţiri. Gândeşte-te la catedralele construite în Evul Mediu. Tehnicile de atunci sunt arhaice şi depăşite acum. Dar rezultatul taie respiraţia şi azi. Peste 20 de ani, tehnicile tale vor părea la fel de depăşite, dar măiestria ta va fi respectată, chiar şi atunci.

"Kaizen" este un termen japonez care înseamnă a face continuu mici îmbunătăţiri. Este considerat arma secretă datorită căreia industria japoneză s-a dezvoltat până la a ajunge să fie imitată de ţări cu tradiţie. Kaizen se aplică şi indivizilor. Alocă-ţi puţin timp, în fiecare zi, pentru a îmbunătăţi şi a rafina ceea ce faci. Peste ani, vei fi uimit (şi-i vei uimi şi pe alţii) când vei vedea unde ai ajuns.

3. Oferă alternative, nu scuze penibile

Responsabilitatea este ceva de care te loveşti în fiecare zi. Îţi asumi răspunderea că ceva va fi făcut corect şi la timp, dar nu întotdeauna deţii controlul asupra tuturor aspectelor. În afară de ceea ce poţi face tu personal, trebuie să analizezi şi situaţiile care sunt în afara controlului tău direct. Ai dreptul să nu-ţi asumi răspunderea dacă crezi că riscurile sunt prea mari, dar dacă ţi-o asumi, trebuie să te aştepţi să fii răspunzător pentru asta.

Nu da vina pe alţii sau pe altceva. Nu veni cu scuze penibile. Nu învinovăţi producătorul limbajului de programare, limbajul de programare însuşi, conducerea sau colegii de servici. Este adevărat că toate acestea pot avea o influenţă, dar sarcina ta este sa vii cu soluţii, nu scuze penibile. Dacă îţi crapă harddiscul şi ai pierdut tot codul sursă fără să ai un back-up, e vina ta. Dacă dai vina pe producătorul harddiscului sau pe furtuna de-afară, vina ta nu se micşorează.

Nu veni cu scuze, ci cu alternative. Nu spune că nu se poate face, ci explică ce se poate face pentru a salva situaţia. Poate ai nevoie de resurse suplimentare. Nu-ţi fie teamă să ceri. Nu-ţi fie teamă să admiţi că ai nevoie de ajutor, dacă este cazul.

4. Nu lăsa ferestre sparte

"Entropie" este un termen din fizică ce descrie dezordinea dintr-un sistem. Există proiecte software proiectate îndelung şi executate de indivizi extrem de bine pregătiţi, care au eşuat în timp. Altele, în ciuda dificultăţilor şi a handicapurilor, funcţionează. Care-i diferenţa?

În oraşele mari, unele clădiri sunt frumoase şi curate, altele sunt ruine. De ce? Cercetătorii au descoperit un mecanism fascinant, care aduce o clădire dintr-un stadiu în celălalt. Acesta începe cu:

O fereastră spartă.

O fereastră spartă, lăsată nereparată un timp suficient de lung, instaurează în spiritul locatarilor clădirii un sentiment de abandon. Se sparge altă fereastră. Oamenii încep să plece. Apar grafitti. Apar probleme în structura clădirii. Într-un timp relativ scurt, clădirea se strică atât de mult, încât nu mai vrea nimeni s-o repare şi sentimentul de abandon devine realitate.

Nu lăsa "ferestre sparte" (design greşit, decizii incorecte, cod slab) nereparate. Repară-le pe măsură ce le descoperi. Dacă n-ai timp, notează-le undeva, pentru a le rezolva când ai timp. Comentează codul greşit, introdu un mesaj "Nu este implementat incă", fă ceva. Orice încât să previi continuarea distrugerilor şi să controlezi situaţia.

Am văzut sisteme funcţionale care s-au deteriorat repede din momentul în care ferestrele au început să se spargă. Există şi alţi factori care concură la distrugerea unui proiect, dar neglijenţa este unul dintre cei mai importanţi. Nu lăsaţi entropia să învingă.

Dacă vezi că proiectul pe care l-ai primit are câteva ferestre sparte, este foarte uşor să gândeşti: "Tot codul este varză, cui îi mai pasă? O să urmez aceeaşi linie". Nu contează dacă proiectul a fost bun până în momentul respectiv. În experimentul iniţial, care a dus la elaborarea teoriei ferestrei sparte, o maşină a stat abandonată o săptămână fără să păţească nimic. Apoi s-au dus şi i-au spart o fereastră. Maşina a fost devastată şi întoarsă cu roţile în sus într-un interval măsurat în ore!

Dacă intri într-un proiect al cărui cod a fost scris îngrijit, elegant şi bine proiectat, atunci instictiv îţi iei măsuri suplimentare să nu-l strici. Nu vrei să fii tu cel care strică totul.

5. Fii catalizatorul schimbării

Trei soldaţi se întorceau înfometaţi din război. Când au văzut un sat înaintea lor, s-au bucurat, fiind siguri că sătenii le vor oferi o masă caldă. Dar când au ajuns acolo, au găsit doar uşi încuiate şi obloane trase. După mulţi ani de război, sătenii o duceau ei înşişi greu şi economiseau cu grijă tot ceea ce aveau.

Netulburaţi, soldaţii au pus un ceaun cu apă pe foc şi au pus cu multă grijă trei pietre înăuntru. Sătenii, uimiţi, au ieşit să vadă ce se întâmplă.

"Este supă de pietre" au zis soldaţii. "Asta este tot ce puneţi în ea?" "Sigur că da, deşi unii zic că iese mai bună dacă pui şi trei cartofi înăuntru."

Unul din săteni a fugit în casă şi a adus cei trei cartofi.

Câteva minute mai târziu, alt sătean a întrebat: "Asta-i tot? Cât o fierbeţi?" "O oră, şi asta-i cam tot, dar trei roşii i-ar da mai multă consistenţă". Un alt sătean a dispărut în casă, întorcându-se cu cele trei roşii.

În cursul următoarei ore, soldaţii au numit şi restul ingredientelor pentru supă: carne, sare şi verdeaţă. De fiecare dată, alt sătean se ducea să aducă cele necesare.

Într-un târziu, au fiert un cazan mare cu supă. Soldaţii au aruncat pietrele, apoi toată lumea s-a aşezat şi au mâncat cea mai bună supă făcută în ultimii ani.

Soldaţii i-au păcălit pe săteni, stimulându-le curiozitatea pentru a obţine mâncare. Dar mai important este faptul că soldaţii au acţionat ca un catalizator, stimulând sătenii să colaboreze, aducându-i împreună, pentru a produce ceva ce nici unul n-ar fi reuşit de unul singur - un rezultat sinergic. La final, toată lumea a învins.

Ştii exact ceea ce trebuie făcut. Întregul sistem este în faţa ochilor tăi şi ai o imagine exactă. Acum cere permisiunea să-l faci. O să te loveşti de priviri absente şi întârzieri. Oamenii vor forma comisii, bugetele trebuie aprobate şi lucrurile încep să se complice. Fiecare îşi apără propriile resurse.

Este momentul să aduci pietrele. Cere ceea ce poţi, în limite rezonabile. Apoi, adaugă: "Sigur, ar fi bine dacă am adăuga..." Pretinde că nu e important. Retrage-te pentru un timp şi aşteaptă-i să te pună să adaugi funcţionalitatea pe care ai dorit-o iniţial. Oamenii se alătură mai uşor unui proiect aflat pe calea spre succes. Arată-le un pic de viitor, şi o să-i ai aliaţi.

6. Nu scăpa din ochi imaginea de ansamblu

Dacă iei o broască şi o arunci într-un vas cu apă fierbinte, va sări imediat de-acolo. Dar dacă o pui într-un vas cu apă la temperatura camerei, pe care o încălzeşti, broasca va sta acolo până se fierbe.

Acesta este un principiu diferit de cel al ferestrei sparte. Acolo, oamenii îşi pierd dorinţa de a lupta împotriva entropiei, deoarece înţeleg că nimănui nu-i pasă. Aici, broasca nu sesizează diferenţa.

Nu fi broască. Nu scăpa din ochi imaginea de ansamblu. Revizuieşte constant tot ceea ce se întâmplă, nu doar ceea ce faci tu.

7. Calitatea este un criteriu obligatoriu

Lumea reală nu îţi permite să scrii software-ul perfect. Timpul, tehnologia şi temperamentul conspiră împotriva ta. Cu toate acestea, nu ar trebui să fii frustrat. Trebuie doar să scrii software care este suficient de bun. Suficient de bun pentru utilizatori, pentru tine (în depanare) şi pentru liniştea ta interioară.

Expresia "suficient de bun" nu înseamnă cod imperfect sau greşit. Sistemele trebuie să îndeplinească cerinţele utilizatorilor lor pentru a fi bune. Utilizatorii trebuie să aibă un cuvânt de spus în acest proces. Întotdeauna ceri specificaţii de la utilizatorii tăi. Dar cât de des i-ai întrebat: "Cât de bun să fie programul?" În mod surprinzător, majoritatea vor răspunde că doresc programul (chiar şi imperfect) azi decât să aştepte un an pentru versiunea multimedia. Dacă le oferi utilizatorilor programul, feed-back-ul pe care îl primeşti te va duce de obicei la o soluţie mai bună decât cea pe care o aveai în minte.

În anumite privinţe, să scrii software seamănă cu pictura. Ai tendinţa să adaugi tot timpul câte ceva. Din când în când, arunci pânza şi o iei de la început.

Un artist ţi-ar spune că toată munca ta se duce de râpă dacă nu ştii când să te opreşti. Dacă adaugi strat peste strat, detaliu peste detaliu, pictura se pierde sub vopsea. Nu strica un program bun adăugându-i tot felul de îmbunătăţiri inutile, sau rafinamente nelalocul lor. Treci mai departe şi lasă codul să funcţioneze aşa cum e. Poate nu este perfect, dar nu trebuie să-ţi faci griji: niciodată n-o să fie.

Uite-te la instrumentele cu care lucrezi. Poţi să găseşti vreo evidenţă a faptului că lor le convine ca au lansat pe piaţă un soft despre care ei ştiu că este imperfect? Tu eşti utilizatorul lor. Răspunde la întrebarea: ce preferi? 1. Să aştepţi până când elimină toate bug-urile? 2. Să ai un software complex şi să tolerezi câteva bug-uri? sau 3. Să optezi pentru un soft mai simplu cu mai puţine defecte?

8. Investeşte în portofoliul tău de cunoştinţe în mod regulat

Cunoştinţele şi experienţa ta sunt cele mai importante valori ale tale. Din păcate, sunt valori perisabile. Nu este nici o diferenţă între cunoştinţele tale şi un bilet la meci. Peste 3 luni, n-o să mai valoreze nimic. Pe măsură ce apar alte tehnologii, limbaje de programare, cunoştinţele tale vor deveni depăşite sau nerelevante. Ţinând cont de viteza cu care se deplasează informaţia, acest lucru se va întâmpla destul de repede.

Pe măsură ce valoarea cunoştinţelor tale scade, acelaşi lucru se întâmplă cu valoarea ta pentru client sau pentru firma la care lucrezi.

Pentru a avea o carieră de succes, trebuie să-ţi gestionezi portofoliul de cunoştinţe. Acesta se gestionează la fel ca un portofoliu financiar:

  • Investitorii serioşi investesc în mod regulat.
  • Diversitatea este cheia spre succesul pe plan îndelungat.
  • Investitorii serioşi menţin un balans între investiţiile conservatoare şi cele riscante, dar cu posibilităţi de câştig însemnat.
  • Investitorii încearcă să cumpere ieftin şi să vândă scump.
  • Portofoliul trebuie reevaluat periodic

Pentru a avea un portofoliu impresionant, trebuie să respecţi următoarele cerinţe:

  • Investeşte în mod regulat. Chiar dacă aloci foarte puţin timp acestei activităţi, rezultatul este la fel de important.
  • Diversifică. Cu cât ştii mai multe lucruri diferite, cu atât eşti mai valoros. Cerinţele se schimbă rapid în informatică. Cu cât ştii mai multe lucruri, cu atât îţi este mai uşor să treci peste schimbare.
  • Gestionează riscurile. Tehnologiile sunt de două feluri: cu risc mare, dar cu câştiguri pe măsură, şi cu risc mic, dar cu venituri reduse. Nu-ţi ţine toate ouăle într-un singur coş.
  • Cumpără ieftin, vinde scump. Învăţarea unei tehnologii înainte ca ea să devină populară este la fel de grea ca şi găsirea unui pachet de acţiuni neevaluate, dar câştigurile sunt mari. A învăţa Java când a apărut părea de neconceput, dar cei care au intrat primii în branşă sunt acum în top.
  • Reevaluează. Această industrie este extrem de dinamică. Tehnologia hot pe care ai studiat-o acum trei luni acum ar putea fi depăşită. Reevaluează-ţi atuurile. S-ar putea ca acum, unele dintre ele să fie cacealma.

Cum faci asta? Uite cum:

  • Învaţă un limbaj nou de programare în fiecare an. Limbaje de programare diferite abordează aceeaşi problemă din perspective diferite. Chiar şi aflarea perspectivelor te poate ajuta.
  • Citeşte o carte de specialitate la fiecare trei luni. După ce te obişnuieşti, citeşte una pe lună. După ce le termini pe cele care se referă la obiectul muncii tale (limbajul de programare preferat), treci la cele care nu sunt în legătură cu el.
  • Citeşte cărţi de literatură. Calculatoarele sunt folosite de oameni. Nu uita latura umană a ecuaţiei.
  • Urmează cursuri. Chiar şi la facultate sau la liceu.
  • Participă în grupuri de utilizatori. Nu sta cloşcă; participă activ. Întreabă. Răspunde, dacă ştii. Izolarea este cancerul carierei.
  • Experimentează diferite medii. Dacă ai lucrat numai în Windows, încearcă Linux. Dacă ai lucrat numai cu makefile şi un editor, încearcă un mediu de programare integrat. Şi invers.
  • Menţine-te la zi. Fă-ţi abonamente la reviste. Alege şi unele care acoperă tehnologii diferite de cea pe care o foloseşti în mod curent.
  • Conectează-te. Vrei să ştii toate dedesubturile unei anumite tehnologii? Înscrie-te la un mail-list sau la un grup de news. Află termeni. Caută articole şi site-uri comerciale. Caută, citeşte şi păstrează orice sursă de informaţie pe care o găseşti.

Şi într-o zi vine cineva şi te întreabă ceva. Şi habar n-ai care-i răspunsul. NU BATE CÂMPII! Admite că nu ştii, dar n-o lăsa aşa. Află-l. Întreabă un guru. Dacă n-ai unul pe-aproape, postează un mesaj pe liste sau grupuri de news.

Nu-mi spune că n-ai timp. Dacă analizezi timpii morţi dintr-o zi, o să vezi că ai o grămadă de timp. Stai la coadă la medic? Ia-ţi o revistă sau o carte cu tine. Altfel, o să ajungi să petreci cele două ore citind cartea de telefoane sau reviste din 1973 cu Papua Noua Guinee.


    

 Google Ads Minimize

    

Copyright 2002-2013 Profox   Terms Of Use  Privacy Statement