Sfaturi pentru a atrage, gestiona și reține dezvoltatorii de software
Publicat: 2022-03-11Managementul este totul despre oameni. Fie că sunt manageri sau angajați, ambii se gândesc la cum să-și atingă obiectivele personale și profesionale. Combinația dintre aceste obiective și trăsăturile personale ale persoanelor implicate dă formă unor relații care, în timp, pot fi pozitive, productive și împlinitoare, sau uneori pur și simplu stresante, solicitante și predispuse la conflicte.
Desigur, în acest ultim caz, calitatea produselor scade, fluctuația de personal crește, iar atingerea obiectivelor devine din ce în ce mai dificilă. Prin urmare, găsirea unei modalități de a stabili relații pline de satisfacție și motivare între manageri și angajați este esențială atunci când vine vorba de eficiență, productivitate și auto-realizare pentru ambii.
Acest lucru este valabil mai ales în gestionarea dezvoltatorilor de software, din cauza complexității tehnice a muncii lor și a naturii creative, comprimate în termene adesea înguste pentru producerea de rezultate. Ca în orice relație șef-angajat, sunt implicați mulți factori, cum ar fi:
- Personalități
- Goluri
- Așteptări
- Politici
- Cultura organizationala
- Detalii tehnice ale proiectului
În acest articol, ne vom concentra pe principalele aspecte de management, mai degrabă decât pe cele tehnice, despre care credem că ar trebui să fie luate în considerare de oricine dorește să reușească în reținerea dezvoltatorilor de software.
Dar aici, „succesul” înseamnă nu numai obținerea de rezultate și respectarea politicilor, termenelor și bugetelor companiei, ci și a avea o echipă de dezvoltare software motivată și productivă, care dă tot ce e mai bun și rămâne în companie pentru o perioadă lungă de timp.
Acest lucru ne conduce la tema noastră fundamentală: Ce îi face pe dezvoltatorii de software să bifeze? Având în vedere acest lucru, vom prezenta câteva modalități de a păstra angajații pe care i-am identificat în echipele de dezvoltare software de succes.
Atragerea oamenilor potriviți
În dezvoltarea de software, talentul pe care îl angajați va face diferența între succes și eșec, iar schimbarea continuă într-o echipă este întotdeauna costisitoare în termeni de timp și bani. Prin urmare, un proces de selecție bun este crucial pentru succesul proiectului dumneavoastră.
Postarea de locuri de muncă
Recruitorii de tehnologie știu că atunci când vine vorba de angajarea dezvoltatorilor de software, totul începe cu o postare de locuri de muncă atent echilibrată. Postarea trebuie să fie motivantă pentru ca dezvoltatorii potriviți să îi răspundă — cerințele prea multe sau prea specializate pot fi descurajatoare, dar dacă ești prea vag, compania ta se poate aștepta la un val de CV-uri inutile.
Prezentarea detaliată a salariilor și a pachetelor de beneficii este, de asemenea, o sabie cu două tăișuri, deoarece concurența poate folosi aceste informații pentru a-și valorifica planurile de compensare, iar dezvoltatorii pot încerca să le folosească ca bază pentru negocieri în timpul angajării. Desigur, din moment ce trebuie să existe întotdeauna un spațiu de negociere în timpul procesului de recrutare, sugerăm ca postarea de locuri de muncă să fie mai puțin specifică când vine vorba de compensare, folosind intervale mai degrabă decât valori fixe.
În schimb, anunțul de locuri de muncă ar trebui să fie cât mai clar posibil în sarcinile și cerințele postului, atât obligatorii, cât și plăcute de a avea. Începând cu o potrivire solidă este cel mai bun context pentru restul strategiilor de reținere a angajaților noștri.
Intervievarea
În acest moment al procesului, este o idee bună să obțineți câteva sfaturi privind evaluarea candidaților și să vedeți ce capcane pot fi evitate în timpul procesului de interviu. De asemenea, am adăuga la îndrumările resurselor de mai sus că solicitarea în prealabil a candidaților pentru unele referințe de la locurile lor de muncă anterioare este adesea o completare bună pentru alte modalități de validare a abilităților lor.
Oferta de locuri de muncă
Angajarea se încheie cu o ofertă de muncă către candidat, atunci când compania prezintă un document formal care rezumă caracteristicile postului (nume, rang, domeniu etc.), pachetul de compensații (salariu și beneficii precum sănătate, pensie sau educație etc.) , data începerii, orarul, locul de muncă și cerințele pentru stabilirea unui contract de muncă, în cazul în care candidatul acceptă oferta.
Deși în această etapă totul este mai mult sau mai puțin realizat, candidatul poate dori să negocieze unele condiții, iar compania este la latitudinea companiei să le accepte sau să le negocieze. Depinde de practicile companiei.
Cu toate acestea, cu siguranță, compania nu va dori să piardă un candidat bun din cauza unei chestiuni de principii, astfel încât compromisurile rezonabile nu vor dăuna nimănui. În acest caz, este recomandabil să ceri candidatului ceva în schimbul fiecărei concesii făcute, cum ar fi, de exemplu, o dată mai devreme de începere, un timp minim de permanență în companie sau orice cerință specială pe care compania o poate avea.
Gestionarea echipelor de dezvoltare software pentru succes
Odată ce un dezvoltator de software începe să lucreze în companie, managerul său începe să realizeze cine sunt, cum lucrează și, cel mai important, rezultatele pe care le generează. Reținerea inginerilor software devine atunci o prioritate clară.
Aici intervin informații despre personalitățile inginerilor de software: aceștia – în special cei cu performanță înaltă – arată adesea unele trăsături comune. Vom evidenția aceste modele pe măsură ce mergem, dar rețineți că este posibil să nu se aplice în mod egal fiecărui individ. Managementul proiectelor de dezvoltare software este atât de mult despre tipare, cât și despre excepții.
Instruire
Deoarece dezvoltarea de software este o muncă tehnică, necesită cunoștințe foarte precise despre structura companiei, obiectivele, procedurile, politicile (inclusiv crezurile și practicile de afaceri) și standardele (tehnice și non-tehnice). Prin urmare, cu cât un dezvoltator înțelege mai bine compania, cu atât va face un produs mai bun și cu atât îi va lua mai puțin timp pentru a-l realiza.
Această pregătire de bază poate fi administrată prin documente, cursuri intranet online sau prezentări. Dar este o necesitate, deoarece va da claritate noului angajat.
Dacă urmează să fie introduse noi tehnologii, asigurați-vă că oferiți pregătirea necesară. Dezvoltatorilor de software le place să fie provocați, dar ar putea să le displace să fie aruncați într-o nouă tehnologie fără a o învăța mai întâi în mod corespunzător.
Internetul este plin de materiale de învățare valoroase și este adesea prima resursă la care se adresează dezvoltatorii de software atunci când trebuie să învețe sau să reînvețe detalii tehnice. Dacă doriți să păstrați dezvoltatorii de software, este esențial să promovați o cultură de auto-studiu și, dacă este necesar, să acordați timp de lucru pentru aceasta. Astfel, echipa va fi la curent cu tehnologii și metode de ultimă generație, lucru pe care dezvoltatorii de software îl apreciază adesea foarte mult.
Resurse
Unii cred că dezvoltatorii de software caută cea mai înaltă tehnologie pentru a-și face munca, cu cele mai bune specificații posibile disponibile în industrie. Credem în schimb că depinde de jobul pe care îl avem. De exemplu, dacă o companie dezvoltă jocuri la persoana întâi, va fi necesar să le ofere dezvoltatorilor o putere de calcul de ultimă oră. Dar dacă sarcina este de a dezvolta servicii web back-end pentru un sistem tranzacțional, un computer mai puțin puternic ar putea fi suficient.
Ceea ce este cu adevărat important este să oferiți dezvoltatorului toate instrumentele necesare pentru a-și face treaba și să fie deschis la sugestiile lor cu privire la noile instrumente. În mod logic, fiecare instrument nou pe care îl sugerează dezvoltatorul va trebui să fie aprobat (poate chiar testat înainte) și licențiat de la companie. Totuși, merită costul: a avea resurse adecvate este un factor cheie în motivația și rezultatele dezvoltatorului. (Nu vă puteți aștepta să rețineți inginerii software dacă îi setați să eșueze!)
Organizare
Dezvoltatorilor de software le place să lucreze în locuri care încurajează și respectă eforturile lor creative, deoarece munca lor este aceea de a face ceva din nimic, în ciuda faptului că sunt ghidați de design, standarde și politici IT. Prin urmare, dezvoltatorii trebuie să aibă încredere în mod rezonabil că aparțin unei unități în care toată birocrația și limitările sunt la minimum, atâta timp cât respectă politicile companiei și sunt în conformitate cu crezurile acesteia.
Acest lucru nu înseamnă că dezvoltatorii de software ar trebui să aibă privilegii speciale în comparație cu restul companiei, ci mai degrabă că managerul lor îi ajută să depășească sau să rezolve birocrația atunci când este nevoie. Un aspect foarte important în reținerea dezvoltatorilor de software este că șeful lor este deschis la cerințele lor personale și îi ajută atunci când este nevoie.

Aranjamentul unității de dezvoltare internă joacă, de asemenea, un rol cheie aici. Adesea, există un grup de testare și este datoria managerului de inginerie software să mențină munca în echipă fluidă între dezvoltatori și testeri. Acest lucru poate fi realizat pur și simplu prin existența unor metodologii și procese clare. Dezvoltatorii tind să lucreze foarte bine cu testerii dacă există reguli de urmat de ambele părți, menținând conflictul la un nivel scăzut sau inexistent.
Comunicare (Întâlniri periodice)
Dacă doriți să păstrați dezvoltatorii de software, este esențial să-i țineți la curent. Toți membrii unei echipe ar trebui să fie actualizați periodic despre obiective, situații corporative care îi afectează, strategii, schimbări în organizație și, nu în ultimul rând, realizările echipei.
Chiar și faptul că un număr de membri ai echipei împărtășesc unele momente importante va fi bun pentru stimularea coeziunii și a muncii în echipă a echipei. În mod normal, aceste întâlniri de echipă – cel mult două ore – ar trebui programate în mod regulat (poate săptămânal), precum și în ocazii speciale, cum ar fi etapa finală a unui proiect, o situație critică etc.
Pe lângă comunicarea cu echipa, managerul trebuie să stabilească o modalitate de a fi la curent cu situația fiecărui membru, fie ea legată de muncă, tehnică sau personală.
- Relativ la locul de muncă înseamnă toate aspectele posibile ale relației angajatului cu compania.
- Situațiile tehnice apar atunci când un dezvoltator este blocat cu o problemă și, indiferent de motiv, nu caută ajutor.
- Dacă dezvoltatorul le împărtășește, situațiile personale pe care le trăiesc le pot afecta munca și relațiile cu colegii lor.
În mod normal, o întâlnire săptămânală de 30 de minute cu fiecare membru al echipei va permite unui manager să identifice aceste situații și să ofere ajutor, prevenind astfel potențialele crize de personal și sporind moralul membrului echipei în cadrul companiei.
Pentru a fi clar, nu vorbim despre înființarea unei unități de dezvoltare orientată spre întâlnire, așa că este necesară o disciplină strictă a întâlnirilor (punctualitate, respect, participare, durată). Mai mult, această disciplină demonstrează dezvoltatorilor că lucrează pentru o organizație foarte profesionistă, lucru pe care îl apreciază în mod normal.
Atribuirea obiectivelor și urmărirea
Nu are rost să atribui obiective generale anuale sau orientări similare de evaluare.
Acesta este un factor clar atunci când ai de-a face cu dezvoltatorii de software: indiferent de rolul lor (adunarea cerințelor, arhitectură, proiectare, programare, testare etc.), obiectivele trebuie să le fie oferite cu cea mai mare claritate posibilă, deci nu are rost. în atribuirea obiectivelor generale anuale sau a unor linii directoare similare de evaluare. Deoarece dezvoltatorii ar trebui să lucreze în proiecte, adică cu un domeniu de aplicare și un calendar definit, cel mai bun mod de a atribui obiectivele este la începutul proiectului și include modul în care vor fi evaluate progresele și, dacă este cazul, cum vor fi recunoscute.
Din fericire, în zilele noastre, există metodologii al căror scop este să genereze rezultate cât mai rapid posibil, precum Agile și Scrum, care simplifică urmărirea și controlul proiectelor. Uneori, acest lucru poate juca chiar un rol semnificativ în reținerea talentului software: Mulți dezvoltatori iubesc aceste metodologii, deoarece pot oferi rezultate rapid, oferindu-le un sentiment de realizare în mod regulat.
Mai mult, dezvoltatorii preferă adesea metodologiile mai ușoare. Ei știu că cele de ultimă generație precum Rational – unde produsul final este livrat după un proiect lung de inginerie, proiectare, dezvoltare, testare și implementare a cerințelor – sunt riscante și pot fi dureros de urmat.
Managementul conflictelor
Acest lucru se aplică echipelor de dezvoltare de software la fel de mult ca orice alt tip: un manager de inginerie software trebuie să facă față conflictului prompt și eficient, sau poate scăpa de sub control și poate distruge moralul, munca în echipă și eficacitatea întregii unități.
Presupunând că dezvoltatorii aflati în conflict sunt profesioniști și bine intenționați, o întâlnire a managerului cu persoanele implicate pentru a iniția un dialog clar cu rezolvare promptă ulterior ar trebui să fie suficientă pentru a permite echipei să meargă mai departe. De asemenea, uneori este necesar să le avertizam clar că conflictul la nivel personal, dacă se ajunge vreodată la asta, nu va fi acceptat.
În orice caz, la finalul acestei reconcilieri, este foarte important ca ambele părți să simtă că soluția este justă, chiar dacă una dintre ele nu-i place. Conflictul face parte din viață uneori, dar păstrarea talentului software înseamnă a trata pe toată lumea cu demnitate ori de câte ori apar astfel de situații.
Motivația
Deși am atins mulți factori care influențează motivația unui dezvoltator, există un alt aspect cheie. Acesta nu este emoțional, nici tehnic. Vorbim despre rata de compensare pentru locul lor de muncă.
În ciuda faptului că tind să fie de natură idealistă, dezvoltatorilor de software le plac adesea lucrurile bune ale lumii materiale. Este întotdeauna mai bine pentru companie să se asigure că salariile și planurile de compensare sunt aliniate cu piața muncii – studiile din industrie sunt ușor de găsit – și poate chiar puțin mai mari pentru pozițiile lor.
De asemenea, majoritatea dezvoltatorilor de software nu sunt indiferenți față de avantaje și premii, inclusiv cursuri și evenimente tehnologice în care pot învăța tehnici utile pentru a-și îmbogăți munca.
Când vine vorba de reținerea dezvoltatorilor de software, este important să le susținem creșterea în cadrul companiei, indiferent de direcția ei specifică. Când inginerii de software nu manifestă prea multă dorință de a trece la poziții de conducere sau management, ei apreciază în schimb avansarea în arena tehnică. Aceasta include mai multe certificări de seniori și programe academice formale, cum ar fi diplome de master sau chiar doctorate. Cunoașterea este un motor foarte puternic pentru ei.
Cu toate acestea, atunci când aspiră să ajungă în poziții de conducere, este recomandabil să facă o analiză amănunțită a personalității și istoricului candidatului în companie. Acest lucru se poate face cu ajutorul departamentului de Resurse Umane sau al altor unități ale companiei, deoarece un bun management necesită un set complet diferit de abilități dincolo de competența tehnică.
Cum să păstrați talentul software: observații finale
Este posibil să aveți cele mai bune intenții și să urmați toate sfaturile de mai sus, dar totuși să nu reușiți să păstrați dezvoltatorii de software 100% din timp - uneori, factorii externi pur și simplu au mai multă influență. Dar credem că fluctuația de personal poate fi sănătoasă și plină de oportunități, atâta timp cât:
- Nu este frecvent. Dacă este, acesta ar fi un simptom al ceva greșit la nivel organizațional.
- Are loc doar cu cele mai valoroase resurse. În acest caz, ar putea însemna că vă folosesc compania pe post de trambulină, adică sunt alături de dumneavoastră pur și simplu pentru a câștiga experiență înainte de a se muta în alte companii.
Strategiile de reținere a angajaților ar trebui să fie consacrate în politica companiei, nu doar o reacție atunci când o persoană valoroasă dorește să demisioneze. Reținerea reacționară este foarte costisitoare și greșită: persoana poate fi de acord să rămână, dar se gândește în sinea ei: „Am lucrat aici timp de X ani doar pentru a mi se oferi dublu salariul la plecare – tocmai au recunoscut că nu mă plătesc. suficient!"
Care va fi următorul pas al acestei persoane? Poate că își caută un alt loc de muncă, dar acum cu salariul dublu ca minim. În acest moment, încercarea de a păstra inginerii software cu orice preț nu merită probabil. Cu excepția cazului în care persoana este absolut fundamentală (și de neînlocuit) pentru companie, ar putea fi mai bine să negociezi o perioadă de preaviz și să găsești imediat un înlocuitor.
Este o sarcină non-deterministă
Atragerea și reținerea dezvoltatorilor de software este o sarcină complexă și nedeterministă, ca în cazul oricărui rol din industria tehnologiei. Există multe companii care caută dezvoltatori de software valoroși, dar, din fericire, scopul aici nu este de a câștiga împotriva acestor companii, ci mai degrabă de a atrage oameni buni pe care să-i păstrăm în compania noastră.
Procesele de selecție pot necesita mult timp și efort. Dacă abordați acest lucru în grabă, sunt șanse să ajungeți cu oamenii nepotriviți – și cine vrea să rețină ingineri software care sunt toxici pentru echipa lor? În schimb, fă-ți timp să o faci corect.