10 lecții despre managementul unei echipe

Au trecut mai bine de două luni de când am devenit team lead și m-am gândit să fac un scurt review al lecțiilor pe care le-am învățat până acum.

Au fost două luni pline, stresante, cu bune și cu rele. Dincolo de învățatul unei meserii noi am învățat foarte multe despre mine. Și ca orice medicament eficient, gustul n-a fost neapărat dulce.

Până acum sunt mândru de mine. Mai ales că am ieșit din toată această perioadă cu o compasiune și înțelegere față de mine însumi care îmi dau speranța că o să fac treabă bună și pe viitor. Până acum astea-s observațiile mele:

1. Ritmul muncii e diferit

Bănuiala că munca are alt balans a venit la început ca un paradox: deși munceam mai puțin, eram mai stresat. Mi-a luat ceva timp să mă prind că deși programarea nu mai era activitatea mea principală, eu continuam să-mi măsor munca după cât de mult am programat.

Munca de dinainte se reflecta în cod scris, iar acum trebuia să citesc mai mult decât să scriu. Nu mai eram la curent doar cu bucata mea, ci trebuia să fiu la curent cu ce lucrează fiecare. Și dacă îți dai seama că un programator e eficient după numărul de task-uri terminate, cum îți dai seama dacă un team lead e eficient? Cum stabilești valoarea unei decizii, prezența acestuia la un meeting sau un feedback talk cu un membru al echipei?

“Vei munci, dar în unele zile te vei întreba dacă chiar muncești cu adevărat”, îmi spunea un prieten team lead. Greșeala mea a fost că măsuram greșit. Iar problema cu măsuratul greșit e că atunci când vei încerca să produci rezultate mai bune, nu vei vedea nicio diferență pentru că urmărești rezultatele greșite.

Până la urmă mi-am spus că o să fiu judecat după rezultatele echipei mele și nu după task-urile pe care le fac în fiecare zi. Și conceptul ăsta schimbă puțin dinamica lucrurilor pentru că acum vei fi responsabil și de rezultatele altora. Când am realizat asta am crezut că n-o să am control deloc, însă sunt destule instrumente prin care să influențezi mersul lucrurilor.

2. Nu mai e despre tine

Dacă înainte încercam să fac o treabă bună și să ies în evidență, acum trebuie să-i ajut pe alții să se remarce. Încă sunt determinat să fac o treabă bună, dar preocuparea mea principală e ce pot să fac ca să-i ajut pe alții să-și atingă potențialul? Nu doar să-și facă treaba, ci să facă cea mai bună versiune a muncii lor.

Cei mai mulți oameni strălucesc atunci când le dai cât mai multă libertate. Alții au nevoie să știe că ești lângă ei. Treaba ta e să descoperi nevoile fiecăruia și să le îndeplinești.

Există o singură excepție de la regula asta: când se întâmplă ceva rău. Atunci e datoria ta să-ți asumi responsabilitatea pentru orice merge prost.

3. Trebuie să-ți găsești tonul

Pentru că a fost prima mea experiență de team lead, la început am avut nevoie de timp ca să-mi găsesc tonul potrivit. N-am știut exact ce tip de lider vreau să fiu: foarte de treabă și chill sau exigent și distant? Ce ton o să folosesc atunci când o să trebuiască să critic pe cineva? Când o să știu că e momentul potrivit să spun ceva sau nu?

Oamenii se așteaptă la autoritate din partea ta și o să-ți simtă lipsa de încredere. Dar în același timp dacă ești prea autoritar n-o să fie prea fericiți. Și o echipă nefericită nu livrează rezultate.

Cât de bine reușești să-ți găsești tonul depinde de o grămadă de factori și nu cred că există o rețetă de succes. Dar trebuie să ai curajul să experimentezi.

“If you try to change it, you will ruin it. Try to hold it, and you will lose it.”, spunea Lao Tzu în cartea sa despre Tao. Cam așa cred că e și cu tonul potrivit în echipă.

4. Controlează-ți stresul

Dacă nu-ți controlezi stresul, te va controla el pe tine. Nu doar că vei avea un impact toxic asupra celorlalți, dar stresul pe termen lung te va îmbolnăvi la propriu. Oricât de mișto e jobul pe care îl ai, e o idee tâmpită să te îmbolnăvești muncind.

A fost o idee proastă să cred că berea după lucru mă va ajuta să mă relaxez când de fapt m-a împiedicat să dorm noaptea și să fiu productiv a doua zi. Lipsa somnului combinată cu stresul și efectul depresiv ale acoolului și-au spus cuvântul după vreo două săptămâni. Noroc că am avut programat un concediu în România. Mă rog, am băut și acolo, că nah Electric Castle, dar când m-am întors mi-am promis că o să fac o pauză de la alcool.

Momentan n-am mai băut alcool de o lună, mă duc regulat la sală și meditez în fiecare zi. Nu știu cât vreau să mă țină, dar acum vreau să fac ceva cu viața mea și prioritatea nr. 1 e să am mintea clară și energia care să-mi permită să fac acest lucru.

Rezultatele acestor măsuri se văd nu doar la muncă ci și în viața personală. În ultimii 6 ani nu țin minte să fi fost atât de controlat, optimist și energic pe o perioadă atât de lungă.

5. Fii confortabil cu luatul deciziilor nepopulare

Deși nu vrei ca lumea să te urască, nu trebuie să-ți consumi energia încercând să fii plăcut de toată lumea. Oricât de amabil vei fi, unele lucruri n-o să se întâmple doar cu lapte și miere. Și atunci trebuie să fii încrezător și să te impui.

De exemplu, una din responsabilitățile mele e să mă asigur că fiecare are ceva de făcut. Ca să fac asta, uneori trebuie să-l bat la cap pe PM să pregătească din timp un task și trebuie și să mă asigur că developerul o să înceapă acel task când devine liber. S-ar putea ca nici PM-ul, nici developerul să nu aibă chef de mine, însă eu trebuie să-mi fac treaba și să nu mă simt vinovat pentru că am așteptări de la ceilalți să facă același lucru.

Apoi, dacă gândești pe termen lung, vei realiza că lumea are destulă vreme să te placă din nou. Cel mai important e să lucrați bine împreună.

6. Găsește-ți un confident de încredere

Nimeni din echipă n-o să-ți spună când faci ceva greșit. O să vină la tine și o să se plângă despre alții, dar când tu vei fi cel care greșește, nimeni n-o să te atenționeze. De aceea e bine să găsești un om care poate să-ți spună când greșești.

Am găsit un astfel de om într-un tester. E destul de convenabil pentru că participă la fiecare meeting și e acolo să-mi observe greșelile, dar nu sunt managerul lui direct așa că nu-i e frică să-mi spună ceva neplăcut. Ba chiar i-am spus să  mă atenționeze ori de câte ori fac ceva greșit.

Cu toții gresim și e bine să fim deschiși la neajunsurile noastre. Am văzut oameni extrem de inteligenți care n-au reușit să-și atingă potențialul tocmai din cauză că n-au fost dispuși să-și vadă greșelile pe care le făceau constant.

7. Fii atent la manipulare

E curios cum unii oameni vor încerca să te manipuleze fără intenție. De exemplu, dacă cineva nu vrea să muncească mai mult, o să-ți explice de ce nu are rost să fac un anumit task. O să caute scuze de ce n-a făcut o treabă 100%. S-ar putea să-ți spună că un bug pe care tocmai l-ai descoperit nu e așa important și se poate rezolva în viitor.

Treaba amuzantă e că nimeni nu face asta cu intenție. E mai mult un comportament inconștient bazat pe emoții. Însă treaba ta e să fii atent la astfel de capcane inocente și să nu pici în plasa lor. Pentru că dacă vei fi de acord, vei face un compromis pe care în viitor s-ar putea să-l regreți.

8. Comunicarea e extrem de importantă

E evident că trebuie să comunici cu oamenii, dar ce îți va fi mai puțin evident la început e dificultatea cu care te vei confrunta când vei încerca să comunici.

Trebuie să convingi, trebuie să fii sincer și să te deschizi, să comunici clar așteptările pe care le ai de la fiecare, să oferi feedback, să rezovi conflicte ș.a.m.d. Și după ce comunici și tot comunici, îți amintești că mai e și partea non-verbală a comunicării. Te uiți în ochii oamenilor când vorbești cu ei? Ce postură ai la daily stand-up? Și cu mâinile ce încerci să faci?

E destul de greu dacă nu ești obișnuit să faci asta. Iar eu n-am fost obișnuit. Felul în care comunicăm îl învățăm de mici și la fel ca toate obiceiurile deprinse din copilărie e foarte greu să-ți schimbi felul în care comunici cu ceilalți.

Am avut discuții în urma cărora cei cu care am vorbit au devenit mult mai productivi. Au fost și discuții din care nu s-a ales nimic. Încă o să învăț mult și bine la acest capitol.

9. Ai răbdare

Poți controla viteza lucrurilor până la un punct. Când eram programator puteam să mă forțez să muncesc mai repede, dar ca team lead nu poți impune oamenilor ritmul în care să lucreze.

Din primele zile am încercat să fac cât mai multe reforme. Eu sunt mai nerăbdător din fire și de multe ori grăbesc mersul lucrurilor. Dar la un moment dat a trebuit să recunosc că nu pot schimba prea multe peste noapte. Când în ecuație sunt mai multe persoane trebuie să ai o altă abordare pentru rezultate rapide.

Nu-i poți spune unui om să lucreze mai repede, dar poți să-l motivezi. Iar dacă un proces durează prea mult devenind un obstacol, poți decide să-l schimbi.

10. Ai grijă de echipa ta

Când am devenit team lead mi-am spus că nu am primit o promoție, ci am primit o echipă. Iar rolul meu e să mă asigur că fiecare om din echipă își face treaba cât mai bine fără să fie perturbat de factori exteriori. Cu alte cuvinte, dacă cineva are o problemă cu un om din echipă, va trebui la început să aibă o problemă cu mine.

Deși n-ar mai trebui să programez, când apare o problemă urgentă mă ocup eu de ea. Mă uit peste task-uri înaintea lor. De obicei lipsesc detalii tehnice și atunci încerc să completez eu ceea ce nu a adăugat PM-ul. E o muncă continuă în care le țin spatele, dar în același timp mă asigur că le pregătesc calea din față.

 

***

Orice proiect în IT trebuie să fie scalabil: dacă funcționează cu 100 de utilizatori poate fi extins să funcționeze și cu 100 de milioane de utilizatori. Când vine vorba despre abilitățile mele de team lead cred că sunt scalabil: pot să cresc.

Am atitudinea necesară care îmi permite să învăț în continuare. De aceea nu prea am emoții când mă gândesc la viitor. Însă va trebui la un moment dat să decid ce o să fac în continuare. În doar 6 ani am adunat multe lecții și cred că undeva pe la anul viitor va trebui să am o discuție cu mine însumi despre ce vreau să fac în viitor.

Dar până una alta sper că voi sunteți bine :) N-am mai dat demult un semn, dar sper că v-a plăcut articolul. O zi faină!

După 6 ani

Tocmai m-a încercat un sentiment de bărbăție cumpătată și un echilibru pe care țin minte că l-am mai simțit acum 6 ani. Atunci, la fel ca acum, mă întorceam acasă după o perioadă mai învolburată de care nu vreau să-mi amintesc.

6 ani. Dacă nu căutam articolul aș fi putut jura că au trecut doar trei. Și ce ciudat: tot luna iulie, tot aceeași perioadă. Citesc articolul și zâmbesc la gândul că parcă știam mai multe atunci. Sau poate că eram doar naiv. N-ai cum să-ți plănuiești toată viața. Atunci vroiam doar să fiu un programator de firmă de apartament. Oare dacă i-aș spune acelui copil că va ajunge prin Berlin s-ar bucura sau mi-ar spune că am fost prost?

Nu, nu mai am aroganța să-mi plănuiesc viața. E mult mai simplu să știu ce fel de bărbat voi fi. Și acum pentru prima oară în 6 ani mi-am regăsit echilibrul. Acum știu cine vreau să fiu :)

Team Lead

De săptămâna trecută am început să lucrez pe postul de team lead la firma la care sunt de mai bine de un an și jumătate. Nu-i ceva plănuit; la ultimul feedback i-am spus șefului că nu sunt interesat de alte poziții. În cele din urmă am acceptat pentru că oricât mi-ar plăcea programarea, unele schimbări nu le poți face decât fiind la masa oamenilor care iau decizii.

Recunosc, în cele două săptâmâni care au durat până la anunțul oficial am avut parte de dubiile mele. Poate nu-s pregătit, poate n-o să-mi placă, poate n-o să fac o treabă bună ș.a.m.d.

De pregătit, cu siguranță nu-s pregătit. Dar am încredere în atitudinea mea: sunt pregătit să învăț și să fiu pus în situații inconfortabile. La urma urmei, dacă aștepți până o să fii pregătit o să fie prea târziu.

Vă țin la curent cu evoluția lucrurilor :)

 

Disagree and commit

Second, most decisions should probably be made with somewhere around 70% of the information you wish you had. If you wait for 90%, in most cases, you’re probably being slow. Plus, either way, you need to be good at quickly recognizing and correcting bad decisions. If you’re good at course correcting, being wrong may be less costly than you think, whereas being slow is going to be expensive for sure.

Third, use the phrase “disagree and commit.” This phrase will save a lot of time. If you have conviction on a particular direction even though there’s no consensus, it’s helpful to say, “Look, I know we disagree on this but will you gamble with me on it? Disagree and commit?” By the time you’re at this point, no one can know the answer for sure, and you’ll probably get a quick yes.

Jeff Bezos’ Annual Letter

The bump in the road

Când pornești într-o călătorie cu mașina, te aștepți ca de-a lungul drumului să mai dai de câte o groapă. Cu toate astea, acest fapt nu e suficient ca să te facă să te răzgândești să pornești la drum. Nici nu te oprești de fiecare dată când dai peste una să te cerți cu ea, ar fi ridicol.

Însă zi de zi ne lovim de câte un “bump in the road” și în loc să ne continuăm drumul, ne oprim și ne certăm cu gropile.

Treaba ta e să vezi aceste lucruri ca fix ceea ce sunt: niște denivelări perfect normale. N-are niciun sens să te concentrezi pe ele.

De câte ori are un first date, colegul meu de apartment e neliniștit: “Și dacă nu mă place?”, “Dacă nu o plac eu?”, “Dacă n-am ce povesti cu ea?”
Îi răspund de fiecare dată. “Next, next, next”. Nu te place, next girl. Nu o placi, next girl. Dacă te-ai hotărât să cunoști pe cineva, e normal și foarte probabil să întâlnești persoane nepotrivite. Dar trebuie să vezi aceste lucruri ca niște “bumps in the road” și să-ți continui drumul. Pentru că drumul tău nu e despre ele, ci despre destinația ta.

Da, unele lucruri vor fi nedrepte și dacă ești ca mine vei simți nevoia să faci ceva în legătură cu ele. Însă asta ar însemna să te oprești din drum și să vorbești cu o groapă. E stupid.

Micile denivelări sunt parte din drum. Cu cât mai repede înțelegi asta, cu atât va fi mai greu să fii descurajat.

Despre temperament

Am avut ieri o discuție cu șeful meu și mi-a spus că a fost surprins de schimbarea mea la nivel personal: “N-am ce să-ți reproșez din punct de vedere tehnic pentru că tot timpul ai fost foarte bun, dar la nivel personal nu știu ce ai făcut, dar te-ai schimbat enorm.”

Schimbarea la care s-a referit a fost în legătură cu faptul că uneori eram emoțional. Un polonez mi-a spus că am un caracter puternic și că nu evit conflictele, un nigerian mi-a spus că aș fi fost perfect pentru armată, un francez mă numea în glumă “Big D, who doesn’t give a fuck.”, iar un canadian spunea că sunt temperamental.

Șeful spune că nu știe ce anume s-a întâmplat. Eu știu. Nu e o coincidență că acum un an mi-am luat Kindle-ul și am început să citesc mai mult ca de obicei. Însă nu cititul în sine m-a ajutat, ci reflectatul la ceea ce am citit. Cărțile n-au fost decât niște unelte cu care am săpat și am tot săpat până am scos afară toate fosilele urâte și am început să ajung la cine sunt cu adevărat.

Și eu am simțit că m-am schimbat. E ciudat, dar mă simt mai înțelept și mai așezat în ultima vreme. Faptul că și altcineva a observat asta suficient de mult să mi-o spună, nu mă face decât să fiu recunoscător și să știu că în sfârșit sunt pe drumul cel bun.

Warren Buffett spunea într-un interviu:

“Temperament is more important than IQ. You need reasonable intelligence, but you absolutely have to have the right temperament. Otherwise, something will snap you.”

Fraza de mai sus a fost ca o revelație pentru mine când am citit-o. Și de când am ajuns să-mi controlez temperamentul mă simt de parcă aș avea un secret care îmi aduce avantaje enorme. Aproape că sunt dezamăgit să aflu că o schimbare atât de mică îmi poate aduce atâtea satisfacții în viață.

“Properly treated :) Andrei could become a great leader.”  îmi scria o femeie pe care o respect într-o recomandare. Îmi place să cred că s-a referit la temperamentul meu în acel “properly treated” :)

Înțelept vs. stupid

Să fii înțelept, să știi ce lucruri trebuie să faci ca să ai success e mai complicat. În primul rând, trebuie să știi ce anume trebuie să faci, apoi să depui efortul ca să îți îndeplinești scopurile. Majoritatea oamenilor rămân blocați la primul pas neștiind care sunt lucrurile pe care ar trebui să le facă.

Să nu fii stupid, pe de altă parte, e mai ușor. Lucrurile stupide sunt mai vizibile și ți-e mai ușor să le eviți. Nu mai ești înghețat între multe alegeri, ci trebuie doar să depui un oarecare efort să nu faci ceva stupid.

Dacă vrei să slăbești poți alege să faci sport. Însă sportul poate fi dureros și necesită o voință puternică la început. Iar pe termen lung devine din ce în ce mai greu să mergi regulat la sală, mai ales dacă nu vezi rezultate din primele luni.
Pe de altă parte, să reduci din caloriile pe care le consumi și să renunți la mâncarea de tip fast-food e mult mai ușor și ajungi să ai rezultate mult mai rapide.

Nu sunt nutriționist, iar articolul ăsta nu e despre dietă, ci despre viață în general. Dacă ai consuma 10% din voința ta ca să nu fii stupid, ai ajunge la rezultate mult mai bune decât dacă ți-ai consuma 50% din voință ca să faci lucrurile inteligente.

Majoritatea oamenilor s-au ratat în viață pentru că au făcut lucruri stupide, nu pentru că n-au făcut lucrurile inteligente. Cu puțin bun-simț poți ajunge relativ de succes doar nefiind stupid.

28

Nu știu cât de înțelept m-a făcut ultimul an. Au fost niște lecții care au tot venit, dar nu la lecții mă gândesc acum, ci la oamenii cu care m-am înconjurat de ziua mea.
Acest articol e un reminder pentru mine să nu uit cât sunt de recunoscător pentru fiecare om pe care l-am cunoscut până acum. Oricât aș începe de la zero undeva, nu mi-aș dori nimic mai mult de cât am acum.
Mulțumesc mult prieteni :)

O poză de la party, nu s-a gândit nimeni să facă mai multe. Oricum n-ai cum să fotografiezi sentimentele.

Principiul după care mă ghidez la muncă

Despre nevoia de munci după un principiu fundamental am aflat într-o prezentare făcută de Bret Vitor. Principiul după care se ghidează acesta spune că între creator și creație trebuie să fie o conexiune imediată: “when you make a change you need to see that change immediatly, without delay”.

Principiul după care mă ghidez eu e asemănator, dacă nu chiar identic, însă nu se referă doar la creație, ci la un spectru mai larg din munca mea.

Odată ce am o imagine clară despre scopul companiei în care lucrez, rolul meu e să identific și să îndepărtez orice barieră din calea acelui scop.

Cred cu certitudine că nimic n-ar trebui să intervină între tine și activitatea care contează cu adevărat. Și atunci trebuie să îndepărtez orice obstacol. Ăsta e principiul meu: “clear any barriers for important work”.

Acest principiu poate suna abstract așa că am să dau câteva exemple care să clarifice lucrurile.

Automatizez orice muncă repetitivă

Lucrurile pe care le faci în mod repetat nu sunt deloc “real work”, ci doar niște pași pe care trebuie să-i urmezi ca să ajungi la activitatea care contează cu adevărat. Rolul meu e să găsesc acele activități și să încerc să le automatizez.

Aveam la un job vreo 15 tabele care trebuiau șterse de fiecare dată când QA-ul testa un anumit feature. Timp de un an nimeni nu s-a gândit să scrie un script de 5 rânduri ca să automatizeze chestia aia. L-am scris eu în două minute. Nu e un câștig enorm, însă la cât de des testau chestia aia, după vreo două luni au fost pe profit în materie de timp. Și în loc să facă chestii repetitive s-au putut concentra pe ce contează cu adevărat: real work.

Poate că cea mai profitabilă chestie a fost un alt script care scria migrații automat în funcție de niște parametrii. Acolo am văzut cum o muncă a unui programator de două ore a devenit două minute.

Cât mai puțin efort din partea utilizatorului

Când fac o librărie nu mă mai gândesc la ce face, ci la cum e folosită. Cred că de aceea TDD-ul produce un cod flexibil, pentru că atunci când un programator face TDD, acesta scrie codul din perspectiva utilizatorului și nu din cea a dezvoltatorului.

Însă nu trebuie să fac TDD ca să-mi urmez principiul. E suficient să mă pun în papucii colegului care va lucra cu librăria mea. Și îl înțeleg ce vrea să facă: vrea să facă cât mai puțin efort, ca mai apoi să se concentreze pe munca adevărată. De aceea caut cu orice prilej să produc o librărie care să necesite cât mai puțin efort din partea celui care o va folosi.

Aici trebuie să subliniez că cine va folosi acest principiu trebuie să fie umil și să nu aibă așteptări. Cu cât faci o treabă mai bună atunci când scrii o librărie, cu atât mai puțini vor fi deranjați de ea. Și puțini observă lucrurile care nu-i deranjează, însă toți se plâng de codul care-i “jenează”. Git blame, annotate îți spune ceva? :)

Cât mai puțin efort din partea celor ce îmi citesc codul

Când scriu o bucată de cod, vreau să încerc să îndepărtez orice sarcină cognitivă a programatorului care o să-mi citească codul. De exemplu, detest if statement-urile. Cu fiecare if pe care-l citești, ocupi un anumit spațiu din memoria ta. Când trebuie să ții cont de prea multe if-uri, o iei razna și de multe ori trebuie s-o iei de la capăt ca să fii sigur că ai înțeles tot. Un fel de “allowed memory size exhausted” personal :)

Detest if-urile atât de mult, încât cred că dacă un programator se va concentra să scrie un program cu cât mai puține if-uri, va deveni un programator mai bun.

În acest gist am adăugat două exemple simple. Atunci când lucrăm cu date, în loc să ne gândim la un flow imperativ, ar trebui să ne gândim mai mult la structuri de date. Linus Torvalds spunea “good programmers worry about data structures and their relationships.

O structură care îți spune ceva e mult mai eficientă decât o logică cu multe if-uri.

Veți spune probabil că al doilea exemplu ar fi mai simplu cu if. În acel exemplu simplist da, însă când ai logică mai complexă ca aici, vei fi mai câștigat.

Polimorfismul ne ajută enorm, sau alte structuri simple precum un stack sau queue. Nu o să intru în detalii, însă o prezentare foarte bună pe această temă găsiți aici.

Nu sunt un obstacol când comunicăm în echipă

Felul în care mă comport se subordonează aceluiași principiu. Iar dacă vreau să îndepărtez obstacole, mă asigur să nu fiu eu însumi un obstacol.

La meeting-uri aleg să tac atunci când ceea ce aș spune nu contribuie cu nimic la tema întâlnirii. Atunci când se pune o întrebare, mă gândesc bine dacă din toată încăperea eu sunt cel potrivit ca să răspund la ea. Poate că acest lucru te va face mai puțin vizibil, dar felul ăsta de a fi nu te va ajuta să fii mai vizibil, ci să faci ceea ce e cu adevărat important.

Veți crede că dacă vorbiți mai puțin, ideile voastre nu vor fi luate în considerare. Nu e adevărat. Recent am avut un meeting în care soluția mea a fost acceptată, deși la început toți programatorii au vrut să facă altceva. Am preferat să tac și să-i ascult. La sfârșit CTO-ul m-a întrebat “Andrei, what do you think?”.  În 2 minute mi-am explicat poziția luând în considerare tot ce au spus colegii mei și în cele din urmă i-am convins.

Dincolo de multă vorbărie, prefer substanța și logica. Și nu poți să ai substanță dacă nu taci și asculți. N-o să fiu niciodată omul care vorbește cel mai mult într-un meeting, dar când voi spune ceva, atunci mă vei asculta pentru că știi că nu vorbesc decât atunci când am ceva util de spus.

Simplific procese complicate cu o documentație solidă

Când am observat că mai mulți programatori aveau o problemă cu o parte din sistem am profitat de această ocazie ca să mai îndepărtez un obstacol. Am documentat acel proces ca să mă asigur că nimeni nu va mai avea probleme cu partea aceea și vor putea face ceea ce e cu adevărat important: să producă valoare.

Dincolo de exemplele de mai sus sunt atâtea modalități de a îndepărta obstacole. Poate fi un refactor al unui feature important, poate fi o îmbunătățire a unui proces care ia prea mult timp(code reviews, workflow etc), sau să știi când să te oprești într-o dezbatere. Trebuie doar să fii atent și să observi obstacolele.

Uneori va dura ceva timp, obstacolele sunt deghizate în sisteme acceptate(“this is how we do things around here”), și poate fi greu să le observi pentru că toată lumea se folosește de ele.

Felul ăsta de a fi implică disciplină, modestie și proactivitate. Dacă vrei să fii cineva poate nu e cel mai potrivit mod de a munci. Dacă vrei să faci ceva, atunci cred că e un principiu bun.

Omul care a influențat extrem de mult armata americană e un tip necunoscut. Pentru că a ales un mod de viață care se opune ideii de a fi vizibil. Am să închei cu vorbele lui spuse unui tânăr:

“Tiger, one day you will come to a fork in the road and you’re going to have to make a decision about which direction you want to go.
If you go that way you can be somebody. You will have to make compromises and you will have to turn your back on your friends. But you will be a member of the club and you will get promoted and you will get good assignments.
Or you can go that way and you can do something — something for your country and for your Air Force and for yourself. If you decide you want to do something, you may not get promoted and you may not get the good assignments and you certainly will not be a favorite of your superiors. But you won’t have to compromise yourself. You will be true to your friends and to yourself. And your work might make a difference.
To be somebody or to do something. In life there is often a roll call. That’s when you will have to make a decision. To be or to do? Which way will you go?”

Code is not literature

But then it hit me. Code is not literature and we are not readers. Rather, interesting pieces of code are specimens and we are naturalists. So instead of trying to pick out a piece of code and reading it and then discussing it like a bunch of Comp Lit. grad students, I think a better model is for one of us to play the role of a 19th century naturalist returning from a trip to some exotic island to present to the local scientific society a discussion of the crazy beetles they found: “Look at the antenna on this monster! They look incredibly ungainly but the male of the species can use these to kill small frogs in whose carcass the females lay their eggs.”

Code is not literature