
Aproape întreaga echipă de dezvoltare Skyeng, formată din peste 100 de persoane, lucrează de la distanță, iar cerințele pentru specialiști au fost întotdeauna ridicate: căutam seniori, dezvoltatori fullstack și intermediari. Dar la începutul anului 2019 am angajat pentru prima dată trei juniori. Acest lucru s-a întâmplat din mai multe motive: angajarea doar a super-specialiștilor nu rezolvă toate problemele, iar pentru a crea o atmosferă sănătoasă în dezvoltare sunt necesare persoane cu diferite niveluri de profesionalism.
Când lucrezi de la distanță, este extrem de important ca o persoană să vină pe proiect și să înceapă imediat să aducă beneficii, fără procese lungi de învățare și acomodare. Nu se întâmplă astfel cu juniorii, plus că, pe lângă formare, este necesară și integrarea corectă a nou-venitului în echipă, deoarece totul este nou pentru el. Asta devine o sarcină separată pentru liderul echipei. De aceea, ne-am concentrat pe căutarea și angajarea de dezvoltatori mai experimentați și deja consacrați. Dar, în timp, s-a descoperit că echipele formate exclusiv din seniori și dezvoltatori fullstack au propriile probleme. De exemplu, cine se va ocupa de sarcinile de rutină, dar obligatorii, care nu necesită super-abilități și cunoștințe speciale?
În trecut, în loc să angajăm juniori, ne-am ocupat de freelanceri.
Cât timp sarcinile au fost puține, seniorii noștri au acceptat aceste sarcini neinteresante, asumându-și o povară suplimentară, deoarece dezvoltarea trebuie să meargă înainte. Dar nu a putut continua așa mult timp: proiectele au crescut, iar numărul sarcinilor de rutină simple a crescut. Situația a început să semene din ce în ce mai mult cu o anecdotă, în care cuiele sunt bătute cu un microscop în loc de ciocan. Pentru a fi ilustrativ, putem apela la aritmetică: dacă angajezi o persoană cu o rată de 50$/oră pentru lucrări la care se poate descurca un angajat cu o rată de 10$/oră, atunci ai probleme.
Cel mai important lucru pe care l-am învățat din această situație este că paradigmele actuale de angajare a doar celor mai buni specialiști nu rezolvă problemele noastre cu sarcinile obișnuite. Avem nevoie de cineva care să fie dispus să facă munca pe care seniorii cu experiență o percep ca pe o pedeapsă și pentru care intervenția lor ar fi pur și simplu ineficientă. De exemplu, să scrie roboți pentru chat-urile Slack ale instructorilor noștri și ale creatorilor de cursuri sau să se ocupe de mici proiecte de îmbunătățire pentru nevoile interne, proiecte la care dezvoltatorii nu au niciodată timp, dar care ar face viața mult mai plăcută.
În acel moment, a fost elaborată o soluție intermediară. Am început să implicăm freelanceri în lucrările noastre. Sarcinile simple și nesolicitate au început să fie externalizate: să corectăm ceva, să verificăm ceva, să rescriem ceva. Echipa noastră de freelanceri a crescut destul de activ. Unul dintre managerii noștri de proiect aduna sarcinile din diverse proiecte și le distribuia freelancerilor, bazându-se pe baza de date de executanți disponibilă. Atunci, ne părea că este o soluție bună: am redus povara asupra seniorilor, iar ei puteau din nou să creeze la capacitate maximă, în loc să se complice cu lucruri elementare. Desigur, existau sarcini care, din cauza confidențialității comerciale, nu puteau fi date extern, dar astfel de întrebări erau de câteva ori mai puține comparativ cu numărul mare de sarcini care mergeau către freelanceri.
Dar acest lucru nu putea continua la nesfârșit. Compania s-a confruntat cu faptul că subdiviziunea de freelanceri s-a transformat într-un monstru neîndemânatic. Numărul sarcinilor obișnuite și simple a crescut împreună cu proiectele și, la un moment dat, a devenit prea mult pentru a le distribui în mod eficient extern. În plus, freelancerii nu sunt familiarizați cu specificul proiectelor, ceea ce presupune o pierdere constantă de timp pentru onboarding. Este evident că, atunci când în echipa ta sunt peste 100 de dezvoltatori profesioniști, nu poți angaja nici măcar 50 de freelanceri în ajutorul lor și să le gestionezi eficient activitatea. În plus, colaborarea cu freelancerii implică întotdeauna anumite riscuri de întârziere și alte probleme organizaționale.
Este important de menționat că angajatul remote și freelancerul sunt două entități diferite. Angajatul remote este complet înregistrat în companie, are un program de lucru stabilit, o echipă, un superior și așa mai departe. Freelancerul lucrează pe bază de proiect, iar activitatea lui este reglementată, în principal, de termenii limită. Spre deosebire de angajatul remote, freelancerul este, în mare parte, lăsat pe cont propriu și are o interacțiune limitată cu echipa. De aici și riscurile potențiale legate de colaborarea cu asemenea prestatori.
Cum am ajuns la crearea «departamentului de sarcini simple» și ce am realizat
Analizând situația actuală, am ajuns la concluzia că avem nevoie de angajați cu calificare mai scăzută. Nu ne-am făcut iluzii că dintre toți juniorii vom crește viitorii superstele, sau că angajarea a zece juniori ne va costa trei pini. În general, în legătură cu juniorii, realitatea este următoarea:
- Pe termen scurt, angajarea acestora nu este rentabilă. În loc de cinci-zece juniori «imediat», este mai bine să angajezi un senior și să-i plătești milioane pentru muncă de calitate, decât să cheltuiești bugetele pe începători.
- Juniorii au un timp de adaptare mai lung în proiect și învățare.
- În momentul în care un junior învață ceva și ar trebui să înceapă să «recupereze» investițiile în el în primele șase luni de muncă, trebuie să fie promovat la mid-level, sau va pleca pe această poziție în altă companie. Așadar, angajarea juniorilor se potrivește doar organizațiilor mature care sunt dispuse să investească în ei fără garanții de profit pe termen scurt.
Dar am ajuns la o dimensiune în care fără juniori în echipă nu putem merge mai departe: numărul sarcinilor de rutină crește, iar a cheltui ore de muncă ale profesioniștilor experimentați pe acestea este pur și simplu o crimă. De aceea, am creat un departament special pentru dezvoltatorii juniori.
Perioada de lucru în departamentul de sarcini simple este limitată la trei luni - adică acesta este termenul standard de probă. După trei luni de muncă remunerată complet, novicii fie sunt transferați în echipa care a vrut să-i aibă ca dezvoltatori juniori, fie ne separăm de ei.
La conducerea departamentului creat de noi se află un PM experimentat, care se ocupă de distribuirea sarcinilor de lucru între juni și de interacțiunea acestora cu alte echipe. Juniorul primește o sarcină, o finalizează și primește feedback atât de la echipă, cât și de la managerul său. În stadiul de lucru în departament, nu atribuim sarcini simple noilor angajați pentru echipe și proiecte specifice — ei au acces la întregul pool de sarcini în funcție de abilitățile lor (în prezent, angajăm dezvoltatori front-end pe AngularJS, dezvoltatori back-end pe PHP sau căutăm candidați pentru poziția de dezvoltator web cu ambele limbaje) și pot lucra simultan la mai multe proiecte.
Însă angajarea juniților nu se oprește aici — trebuie să le oferim condiții de lucru acceptabile, iar aceasta este o sarcină complet diferită.
Primul lucru la care ne-am decis a fost mentoratul voluntar în limite rezonabile. Adică, pe lângă faptul că nu am constrâns pe nimeni să devină mentor din rândul specialiștilor existenți, a fost clar specificat că instruirea unui nou angajat nu ar trebui să devină o substituție pentru muncă. Niciun «50% din timp lucrăm, 50% învățăm juniorul». Pentru a avea o imagine clară asupra timpului necesar mentoratului, a fost elaborat un mic «plan de studiu»: o listă de sarcini pe care fiecare mentor trebuia să le îndeplinească cu subordonatul său. Același lucru a fost realizat și pentru proiect managerii juniorilor și, în final, am obținut un scenariu foarte clar și bine definit pentru pregătirea noilor angajați și integrarea acestora în muncă.
Am prevăzut următoarele aspecte: verificarea cunoștințelor teoretice, am pregătit un set de materiale în cazul în care juniorul trebuie să mai învețe ceva, am stabilit un principiu uniform pentru desfășurarea revizuirilor de cod pentru mentori. La fiecare etapă, liderii oferă feedback nou-venitului, ceea ce este extrem de important pentru acesta. Angajatul tânăr înțelege în ce aspecte este puternic, iar în care trebuie să fie mai atent. Pentru a simplifica procesul de învățare pentru juniori și dezvoltatorii cu experiență, a fost creat un chat comun în Slack, astfel că alți membri ai echipei pot interveni în procesul de învățare și pot răspunde unei întrebări în locul mentorului. Toate acestea fac ca lucrul cu juniorii să fie un proces relativ previzibil și, ceea ce este la fel de important, controlabil.
După finalizarea perioadei de probă de trei luni, mentorul va susține un interviu tehnic final cu juniorul, iar în funcție de rezultate, se va decide dacă juniorul poate trece la un loc de muncă permanent într-o echipă sau nu.
În concluzie
La prima vedere, departamentul nostru pentru juniori seamănă cu un incubator sau cu o jucărie special creată. Dar, de fapt, este un departament real cu toate atributul unei echipe de luptă complete, care rezolvă probleme reale, nu exerciții de formare.
Dar cel mai important este că oferim oamenilor un orizont concret. Departamentul de sarcini simple nu este un limbo infinit în care cineva poate rămâne blocat pentru totdeauna. Există un termen clar de trei luni, în care juniorul rezolvă sarcini simple în proiecte, dar în același timp poate să se evidențieze și să treacă în orice echipă. Noii angajați pe care îi recrutăm știu că vor avea un manager de proiect, un mentor dintre seniori (sau poate chiar mai mulți) și posibilitatea de a se integra complet în colectiv, unde vor fi bineveniți și așteptați.
De la începutul anului, în departamentul de sarcini simple au fost angajați 12 juniori, dintre care doar doi nu au trecut proba. Un alt băiat nu s-a integrat în colectiv, dar deoarece în planul profesional este foarte capabil, a fost reintegrat în departamentul de sarcini simple pentru o nouă perioadă, pentru care, sperăm, își va găsi o nouă echipă. Colaborarea cu juniorii a avut un impact pozitiv și asupra dezvoltatorilor noștri cu experiență. Unii dintre ei, după o perioadă de mentorat, și-au descoperit forțele și dorința de a încerca să devină lideri de echipă, iar alții, privind la juniori, și-au îmbunătățit propriile cunoștințe și au trecut de la poziția de midla la poziția de senior.
Ne vom extinde practica de recrutare a tinerelor dezvoltatori, deoarece aceasta aduce numeroase avantaje pentru echipă. Juniorii au astfel oportunitatea de a lucra de la distanță, indiferent de regiunea în care trăiesc: membrii echipelor noastre de dezvoltare locuiesc de la Riga la Vladivostok și fac față cu brio diferențelor de fus orar datorită proceselor bine stabilite în cadrul companiei. Toate acestea deschid uși pentru oameni talentați care locuiesc în orașe și sate îndepărtate. Și nu ne referim doar la foști elevi sau studenți, ci și la persoane care au decis, din diverse motive, să-și schimbe profesia. Un junior la noi poate avea cu succes fie 18 ani, fie 35 de ani, deoarece junior înseamnă experiență și abilități, nu vârstă.
Suntem siguri că abordarea noastră poate fi extinsă cu ușurință și la alte companii care adoptă modelul de dezvoltare la distanță. Aceasta permite angajarea selectivă a juniorilor talentați din orice colț al Rusiei sau al Țărilor CSI, în timp ce dezvoltă abilitățile de mentoring ale dezvoltatorilor experimentați. Din punct de vedere financiar, această abordare este extrem de accesibilă, astfel că toți câștigă: compania, dezvoltatorii noștri și, desigur, juniorii, care nu trebuie să se mute în orașe mari sau capitale pentru a face parte dintr-o echipă experimentată și a lucra la proiecte interesante.
Sursa: habr.com
