Oameni, produs și tehnologie: un ghid pentru începători pentru managementul ingineriei

Publicat: 2022-03-11

În calitate de inginer software, responsabilitățile tale sunt de obicei definite foarte clar: sarcinile îți sunt atribuite, iar sarcina ta este să le implementezi la timp și eficient.

Cu toate acestea, în rolul de manager de inginerie, responsabilitățile nu sunt adesea definite la fel de clar. Managementul nu este binar; nu există răspunsuri directe la anumite întrebări și probleme. Cât de mult ai succes ca manager va depinde de cât de bine ești capabil să-ți conduci oamenii, să-ți gestionezi produsul și să-ți administrezi tehnologiile.

Oamenii sunt prioritatea ta

În rolul de manager de inginerie, noua ta prioritate este echipa ta. Deci, cum vă asigurați că aveți o echipă grozavă?

Construirea unei echipe și stabilirea încrederii

Primul pas este să vă asigurați că angajați oamenii potriviți pentru echipa dvs. dacă nu aveți deja o echipă la locul lor.

O angajare proastă nu numai că le va pierde timpul, ci și timpul celorlalți membri ai echipei dvs., care vor trebui să-și retragă timpul. Acest lucru va demoraliza restul echipei tale. Chiar dacă o persoană este un programator genial, poate fi totuși o angajare proastă dacă nu se potrivește bine cu cultura echipei.

Asigurați-vă că puneți nu numai întrebări tehnice, ci și întrebări deschise despre lucrul în echipă sau asumarea unui rol de conducere. De exemplu, întrebați un candidat:

  • Pentru a descrie o problemă recentă pe care au trebuit să o rezolve
  • Cum au implementat soluția
  • Ce abordări alternative au luat în considerare
  • Pentru a vorbi despre o perioadă în care au avut o problemă critică în producție, cum au răspuns la aceasta și ce au făcut pentru a preveni același tip de problemă în viitor

Odată ce ai o echipă, dedică timp pentru a câștiga respectul echipei tale și pentru a stabili încrederea. Pentru a conduce o echipă eficient, trebuie să dezvoltați o relație sănătoasă cu membrii echipei. Fă-ți timp pentru a înțelege obiectivele lor de carieră și ceea ce este important pentru ei.

Întâlnirea unu-la-unu este un instrument esențial pentru formarea unei legături cu fiecare dintre membrii echipei și pentru a-i cunoaște mai bine. Care este frecvența ideală de întâlnire unu-la-unu? Acest lucru va depinde de nevoile specifice ale membrilor echipei, dar este o idee bună să vă întâlniți cu ei de cel puțin câteva ori în fiecare lună.

Cu toate acestea, dacă tu și echipa ta colaborați strâns sau aveți o echipă mare, puteți organiza întâlniri o dată pe lună.

Cum managerii de inginerie împuternicesc și îmbunătățesc echipele

O mare parte a muncii tale se bazează pe identificarea punctelor forte și a punctelor slabe ale membrilor individuali. Ajutați-i să-și abordeze punctele slabe asociindu-le cu un inginer senior și efectuând recenzii frecvente de cod și concentrându-se pe punctele lor forte. La urma urmei, punctele noastre forte sunt cele care ne motivează și modelează ceea ce ne face plăcere.

Atribuiți sarcini pe baza abilităților și trăsăturilor fiecărui inginer pentru a extrage tot ce este mai bun din fiecare persoană și pentru a crea o echipă grozavă. Automatizarea poate merge mult în acest sens. Configurați integrarea continuă pentru a identifica codul rupt sau suboptimal și persoana care comite un astfel de cod în mod frecvent.

Membrii echipei tale vor căuta în mod constant să învețe, să se îmbunătățească și să crească în domenii care contează pentru ei sau pentru echipă. Rolurile și responsabilitățile care au avut sens pentru fiecare membru al echipei anul trecut ar putea să nu mai fie potrivite anul acesta. Pentru a ne asigura că fiecare membru al echipei continuă să se simtă provocat și să se îmbunătățească:

  • Acordați o atenție deosebită creșterii lor personale, investiți în dezvoltarea lor și ajutați-i să-și atingă ambițiile.
  • Întâlnește-te individual cu membrii echipei pentru a crea planuri de dezvoltare personală și pentru a le da puterea să-și mapa strategiile de carieră.
  • Încercați să alocați timp suplimentar pentru auto-dezvoltare, permiteți membrilor echipei să schimbe periodic rolurile și organizați ateliere interne sau cursuri de formare.

Pe lângă asigurarea dezvoltării profesionale a tuturor, responsabilitatea unui manager de inginerie este de a-și proteja echipa. Ar trebui să împuterniciți echipa să ia decizii fără să vă fie frică de eșec. Dacă lucrurile nu reușesc, asumați-vă responsabilitatea și învățați din greșeli.

Acest lucru va stimula îndrăzneala în echipa ta, pe măsură ce încearcă noi abordări și dezvoltă o mentalitate de creștere. Acestea fiind spuse, greșelile nu ar trebui să apară de mai multe ori dacă ați oferit feedback adecvat și ați luat măsuri în timp util pentru a vă îndrepta echipa în direcția corectă.

Manageri de produs și manageri de inginerie

Al doilea aspect important al rolului unui manager de inginerie este produsul. Va trebui să formați o relație strânsă cu managerul de produs pentru a alinia așteptările și a valorifica tehnologia și abilitățile echipei dvs. pentru a oferi un produs grozav.

Iată șase responsabilități ale managerului de inginerie pe care ar trebui să le urmați:

Asigurați-vă că proiectul este bine prioritizat

Care este obiectivul de șase până la 12 luni pentru echipa ta? Cine este publicul tău? Ce așteaptă clienții tăi de la produs? Echipa dvs. probabil știe la ce va lucra în următoarele câteva săptămâni, dar este esențial să înțelegeți întregul produs și încotro se îndreaptă.

Implicați-vă în deciziile de dezvoltare a produsului

În calitate de manager de inginerie, veți lucra cu diferite echipe și veți fi mai implicat în direcția și actualizările produselor decât ați fost ca colaborator individual. Nu trebuie neapărat să fii de acord cu fiecare decizie referitoare la produs, dar trebuie să crezi în produs și să vrei să-l îmbunătățești. Puteți contesta managerul de produs dacă nu sunteți de acord cu decizia acestuia, dar rețineți că managerul de produs are ultimul cuvânt. Respectă-i și sprijină-le deciziile.

Definiți și conduceți strategia tehnică și metodologia de dezvoltare

În timp ce sarcina managerului de produs este de a defini strategia și conceptele de produs, rolul dumneavoastră este de a defini viziunea arhitecturală și designul tehnic pentru produs. De asemenea, sunteți responsabil pentru definirea metodologiei de dezvoltare și asigurarea adoptării acesteia de către echipă. Rețineți: managerul de produs poate deține produsul, dar dvs. și echipa dvs. dețineți implementarea produsului.

În unele cazuri, este posibil să se implementeze funcții utile cu un mic efort de inginerie. De exemplu, verificați dacă actualizarea la versiunea mai nouă a cadrului pe care o folosește produsul vă poate ajuta să implementați o anumită caracteristică mai rapid sau mai eficient. O privire de ansamblu bună asupra produsului vă poate ajuta pe dvs. și echipa dvs. să identificați astfel de cazuri și să le sugerați managerului de produs.

Echilibrează crearea și rambursarea datoriilor tehnice și dezvoltarea de noi funcții

Atunci când vă construiți produsul minim viabil, timpul de lansare pe piață este prioritatea principală, astfel încât este posibil să acumulați niște datorii tehnice. Pe măsură ce produsul evoluează, accentul se îndreaptă către adăugarea de noi funcționalități și îmbunătățirea produsului în timp ce rambursează datoria tehnică. Fără a aborda compromisurile pe care le-ați făcut inițial, adăugarea de noi funcții va dura mai mult timp și va fi mai costisitoare. Acordați-vă timp pentru a înțelege și a urmări compromisurile pe care le-ați făcut și pentru a găsi un echilibru între rezolvarea datoriilor și adăugarea de noi funcții.

Utilizați tehnologia și automatizarea pentru a ajuta la gestionarea datoriilor tehnice**

Utilizați analizele statice ale codului sursă pentru a identifica codul cu cel mai mare număr de indici de mentenanță și pentru a prioritiza refactorizarea codului. În acest fel, devine mai ușor să lucrezi la noi funcții și performanța produsului va fi îmbunătățită.

Asigurați-vă că execuția produsului este pe calea normală

Ar trebui să înțelegeți starea actuală a muncii echipei dvs. Dacă echipa ta are întârziere, identifică blocurile aparente și eliminați-le. De exemplu, dacă echipa rămâne blocată cu probleme tehnice în mod regulat, configurați sesiuni frecvente de programare în perechi pentru a îmbunătăți schimbul de cunoștințe de către membrii echipei. Dacă echipa petrece mult timp implementând codul pe servere, automatizați procesul pentru a economisi timp și pentru a-l face mai puțin predispus la erori. Minimizați întreruperile și creați procese clare pentru cum să vă ocupați de noi lucrări și să rezolvați rapoartele de erori.

Tehnologie și delegare

Chiar dacă ești încă inginer, ca manager, dezvoltarea de soluții software nu mai este funcția ta principală. Aveți ingineri seniori în echipa dvs. și ei sunt responsabili pentru majoritatea soluțiilor tehnice. Generalii nu duc războaie cu puștile; managerii nu ar trebui să microgestioneze fiecare linie de cod.

Cu toate acestea, ar trebui să vă folosiți cunoștințele și experiența pentru a vă asigura că deciziile luate de inginerii seniori se potrivesc cu foaia de parcurs și direcția tehnică a produsului. Delegați deciziile tehnice inginerilor dvs. seniori, dar puneți întrebările potrivite pentru a vă asigura că produsul este scalabil, sigur și de încredere.

De exemplu, contestați-le alegerile cu „Dacă am avea de 20 de ori mai mulți utilizatori? Ar fi asta durabil?” sau „Această tehnologie va mai fi susținută în doi sau trei ani?”

Puteți și ar trebui să propuneți soluții și cadre alternative bazate pe cunoștințele și domeniile dvs. de expertiză, dar nu forțați sau presați echipa dvs. să le accepte. Pe lângă sugestiile tehnologice, puteți face și recomandări legate de procesul și metodologia de dezvoltare.

De asemenea, asigurați-vă că monitorizați valorile cheie ale produsului. Valorile comerciale și tehnice sunt la fel de importante. Lucrați cu echipa DevOps pentru a crea alarme pentru monitorizarea sistemului și pentru a vă informa echipa cu privire la problemele de funcționare. În cele din urmă, dezvoltați o metodologie pentru abordarea incidentelor atunci când acestea apar, pentru a vă asigura că nu se mai repetă.

Nu în ultimul rând, fiți la curent cu cele mai recente tehnologii și tendințe. Cu cât ai mai multe opțiuni și cu cât știi mai multe, cu atât mai multe soluții și cadre vei avea la dispoziție. Alocați timp pentru a citi articole, pentru a face recenzii de cod și pentru a participa la discuții tehnice cu echipa dvs.

Cu cât știi mai multe despre chestiuni tehnice, cu atât echipa ta te va respecta mai mult. Familiarizarea cu tehnologiile noi și emergente și încurajarea echipei dvs. să facă același lucru vă va ajuta să creați o atmosferă de curiozitate și să vă provocați echipa să caute modalități noi și inovatoare de a rezolva probleme tehnice complexe.