Cum să fii dev productiv?

Ca programator, un lucru important pe care cu cât îl înțelegi mai devreme, cu atât mai bine este valoarea pe care o oferă munca ta, sau ce câștigă firma de pe urma muncii tale. Cu cât mai devreme realizezi că nu ești plătit pentru prezență ci pentru că în vreun fel firma câștiga suficient încât să îți plătească salariul, următoarele întrebări pot apărea:

1. Ce anume din ce fac aduce valoarea în firmă?

Ca programator, lucrurile la care lucrezi sunt suficient de abstracte. Dacă ai un modul de autentificare, cum aduce acesta valoare în firmă? Firma la care lucrezi nu e plătită pentru că ai făcut tu modulul de autentificare. Ci e plătită pentru că acel modul de autentificare ajută utilizatorul final să își gestioneze moderatorii unui shop online, ca magazinul să fie editat eficient de mai mulți angajați. Cu cât înțelegi mai bine această problemă finală pe care o rezolvi, îți dai seama că defapt modulul de autentificare, el singur, nu înseamnă nimic. De altfel nu contează nici limbajul de programare, nici tehnologiile folosite și nici multe lucruri pe care tu ca programator le dai importanță zi de zi.

2. Cum pot aduce mai multă valoare în firmă?

Odată ce realizezi ce anume aduce valoare în firmă, problemele pe care le rezolvi, se pot împărții în următorele 3 categorii:

  1. Probleme de mentenanță. Acestea sunt problemele tehnice ce pot apărea de-a lungul procesului de livrare. De la scris linia de cod și până ca aceasta să ajungă în producție există un timp de întârziere. Cu cât acest timp de întârziere e mai mare și cu cât apar mai multe probleme la livrare, firma are de pierdut, pentru că nu poate oferi ceva funcțional pentru utilizatorul final.
  2. Probleme la adăugarea de noi funcționalități. Întreg procesul de livrare este suficient de complex, cât să nu poată fi abordat în timp umani. Un exemplu este un proiect în care o funcționalitate ar trebui livrată în 2 luni, iar îmbunătățirea procesului de livrare al unei noi funcționalități durează 6 luni. Va trebui să te obișnuiești cu faptul că ai azi un sistem imperfect cu care va trebui să livrezi aplicația dar pe care va trebui să îl aduci în stare cât mai bună în 6 luni.
  3. Probleme de gândire pe termen lung. Cum putem să îmbunătățim aceste lucruri minimaliste, care nu aduc valoare azi, dar care sunt esențial de abordat de-a lungul timpului pentru a îmbunătăți procesul de livrare. Cum faci ca devii să lucreze mai bine între ei, și utilizatorul final să primească funcționalități noi cât mai repede și cu cât mai puține probleme?

A fi eficient în programare este să înțelegi cât mai în profunzime ce probleme rezolvi. Înțelegând aceste probleme, ca om tehnic, treaba ta e să aduci la cunoștiință ce implică aceste probleme pe care le rezolvi, ce consecințe ar putea apărea și cum s-ar putea face cel mai bine având la dispoziție resursele necesare. Nu contează că lucrezi 16h, 8h sau 2h pe zi, contează ca de aceste probleme, e cineva care se ocupă de ele și le rezolvă. De multe ori aceste probleme sunt pe termen lung, 3 luni, 6luni, 1an, 2 ani. Este de la sine înțeles că nu ai cum să schimbi zi de zi aceste priorități, și eficiența în sine constă în a avea o hartă după care să te ghidezi încotro mergi în următoarele luni, dar cu suficienți de mici pași cât să poată fi abordați de-a lungul unei zile.