Am petrecut primul deceniu din cei aproximativ 16 ani de când scriu cod, fiind atașat excesiv codului pe care l-am scris. M-am mândrit cu ceea ce am proiectat și am scris. Era copilul meu. Petreceam ore întregi scriind, refactorizând, clătind și repetând cu atenție. Mi-am urmărit codul și bibliotecile cum se maturizează. În general, am fost mulțumit de rezultat. Nimeni nu l-ar putea ataca fără ca eu să îmi asum imediat rolul de apărător parental. La urma urmei, acel cod făcea parte din mine. A fost suma tuturor anilor mei de învățare și practică. Am fost orbit de dragoste. Niciun copil nu este mai drăguț decât al tău.

scot

Sunt sigur că mulți oameni care au petrecut ani de zile scriind cod se pot identifica cu cele de mai sus. Din păcate, este într-adevăr o mentalitate oribilă de a avea în practică. Iată un studiu de caz, bazat pe o experiență cu ani în urmă, cu adevărat:

Am pus o cantitate excesivă de timp în scrierea unui client OAuth 2.0 în Python (acest lucru se întâmplă în zilele de schiță a specificațiilor înainte ca mulți clienți să fie disponibili). În acel moment era un alt client disponibil, dar a fost un monstru și mi s-a părut într-adevăr prea mare. Am petrecut mult timp săpând prin RFC-uri, înțelegând protocolul la cel mai scăzut nivel. Am petrecut la fel de mult timp cercetând abateri în implementările furnizorilor, ceea ce mi-a amintit de primele zile de dezvoltare a browser-ului clientului. Am petrecut apoi mult timp proiectând și implementând o bibliotecă de care eram mândru de. A depășit amprenta codului celeilalte biblioteci cu peste două ordine de mărime și, din câte mi-am dat seama, a oferit la fel de multă funcționalitate.

Am înțeles că am scris această bibliotecă în vid și am vrut să primesc feedback de la cineva mai înrădăcinat în comunitatea Python. Am urmărit o discuție susținută de cineva și mi-a plăcut, așa că am decis să mă adresez la ei și să cer revizuirea codului. Spre groaza mea, el a rupt-o. Mă simțeam ca și cum mi-am rupt inima și l-am călcat. Cum a putut vedea vreodată ceva în neregulă cu acest corp de perfecțiune pe care l-am creat?! Am găsit mesaje pe conturile sale de pe rețelele de socializare care aruncau diferite zone din cod (care nu se leagă de fapt înapoi la cod pentru a menține anonimatul). Maxilarul meu a lovit podeaua. Nu-mi venea să cred ce tocmai s-a întâmplat.

Am tras înapoi. I-am trimis un e-mail direct cu penele mele ciufulite. Ceva în efectul „) * &#$ # $ (*) &#$) # (* & ASD & *.”. Răspunsul său a fost:

Am dormit pe el. Deși am simțit că există o modalitate mult mai bună de a oferi feedback, m-a forțat să iau în considerare câteva întrebări mai mari. Cum naiba ar putea avea o separare curată între persoana mea și codul meu? Nu erau ei una și aceeași, deoarece codul meu este un produs al eforturilor mele?

Apoi becul s-a stins. Am gresit. Ceea ce mi-am dat seama este că, deși codul pe care l-am scris este într-adevăr al meu, în niciun fel, forma sau forma nu mă reprezintă ca persoană. Nu numai asta, dar nici doi ingineri software nu vor rezolva vreodată aceeași problemă în același mod. Trucul este să asculți ceea ce spun ceilalți, să înțelegi că:

a) Toată lumea rezolvă diferit problemele,

b) Toată lumea are un mecanism de livrare diferit, cu grade de tact extrem de diferite și

c) Nu vorbesc despre tine, vorbesc despre cod

Persoana cu cel mai mic tact poate spune „acest cod este teribil”. Nu-ți spun că ești un nebun. Nu spun că ești incompetent. Ei spun că codul dvs. nu este optim. Oricât de amuzant ar părea, odată ce ați ajuns la această realizare, gestionarea celei mai brutale revizuiri a codului sau chiar obținerea codului pe care l-ați scris complet șters din controlul sursei devine un tort. Nu mai luați lucruri pe care oamenii le spun ca atacuri personale, ci ca surse de cunoștințe pentru a vă îmbunătăți propriile învățări și dezvoltarea profesională. Dacă cineva spune „acest cod e de rahat”, aveți tendința de a vă întreba de ce crede asta și cum poate fi îmbunătățit, mai degrabă decât să intrați în argumente bazate pe pasiune în loc de raționamente tehnice solide. Veți fi, de asemenea, probabil surprins de numărul de ori în care oamenii cred că codul dvs. este de rau, deoarece nu înțeleg suficient de bine domeniul problemei. Veți fi, de asemenea, surprins de cât de des puteți învăța lucruri grozave de la cei care sunt puțin mai pricepuți în legătură cu tactul conversațional.

Bineînțeles, nu pledez pentru a rupe verbal codul cuiva sau prin intermediul rețelelor de socializare. De obicei, cel mai bine este să purtați discuții individuale cu cineva care a contactat dvs. pentru o recenzie. Ceea ce încerc să ajung aici este importanța de a te putea separa de codul pe care îl scrii. Te va ajuta de-a lungul carierei tale.