Pri upravljanju gre samo za ljudi. Ne glede na to, ali gre za menedžerje ali zaposlene, oba razmišljata, kako doseči svoje osebne in poklicne cilje. Kombinacija teh ciljev in osebnih lastnosti vpletenih ljudi oblikuje odnose, ki so sčasoma lahko pozitivni, produktivni in izpolnjujoči ali včasih zgolj stresni, zahtevni in nagnjeni k konfliktom.
Seveda se v zadnjem primeru kakovost izdelkov zmanjšuje, povečuje se fluktuacija oseb in doseganje ciljev postaja vedno težje. Zato je iskanje načina, kako vzpostaviti nagrajevalne in motivirajoče odnose med vodji in zaposlenimi, ključnega pomena pri učinkovitosti, produktivnosti in samorealizaciji obeh.
To še posebej velja pri upravljanju razvijalcev programske opreme zaradi tehnične zapletenosti in ustvarjalnosti njihovega dela, stisnjenega v pogosto ozke roke za doseganje rezultatov. Kot v vsakem razmerju šef-zaposleni je vpletenih veliko dejavnikov, kot so:
V tem članku se bomo osredotočili na glavne vidike upravljanja in ne na tehnične vidike, za katere menimo, da bi jih morali upoštevati vsi, ki želijo uspešno obdržati razvijalce programske opreme.
Toda tu »uspeh« ne pomeni le doseganja rezultatov in upoštevanja politik, rokov in proračunov podjetja, temveč tudi motivirano in produktivno ekipo za razvoj programske opreme, ki daje vse od sebe in ostane v podjetju dolgo časa.
To nas vodi do naše temeljne teme: Zakaj razvijalci programske opreme označujejo? S tem v mislih bomo predstavili nekaj načinov za zadrževanje zaposlenih, ki smo jih prepoznali v uspešnih skupinah za razvoj programske opreme.
Pri razvoju programske opreme bo talent, ki ga najamete, razlikoval med uspehom in neuspehom, stalne spremembe v ekipi pa so časovno in denarno vedno drage. Zato je dober postopek izbire ključnega pomena za uspeh vašega projekta.
Tehniški rekruterji vedo, da se pri zaposlovanju razvijalcev programske opreme vse začne s skrbno uravnoteženim objavljanjem delovnih mest. Objava mora biti motivacijska, da se nanjo lahko odzovejo pravi razvijalci - preveč ali preveč specializirane zahteve lahko odvračajo, če pa ste preveč nejasni, lahko vaše podjetje pričakuje poplavo neuporabnih življenjepisov.
Navedba podrobnih paketov plač in ugodnosti je tudi dvorezen meč, saj lahko vaša konkurenca te podatke uporabi za izkoriščanje svojih odškodninskih načrtov, razvijalci pa jih lahko poskušajo uporabiti kot izhodišče za pogajanja med zaposlovanjem. Seveda, ker mora biti med postopkom zaposlovanja vedno nekaj prostora za pogajanja, predlagamo, da je razpis za delovno mesto manj natančen, ko gre za nadomestila, z uporabo obsegov in ne fiksnih vrednosti.
V nasprotju s tem bi moralo biti napotitev na delovna mesta čim bolj jasna pri delovnih dolžnostih in zahtevah, tako obveznih kot tudi lepih. Začetek s trdno prileganjem je najboljši kontekst za ostale strategije zadrževanja zaposlenih.
V tem trenutku je dobro, da to storite dobite nasvet o ocenjevanju kandidatov in do poglejte, katerim pastem se je mogoče izogniti med postopkom razgovora . Zgornjim napotkom virov bi dodali tudi, da vnaprej zaprosite kandidate za reference iz prejšnjih služb pogosto dobro dopolnilo drugim načinom preverjanja njihovih spretnosti.
Najem se konča s ponudbo za zaposlitev kandidata, ko podjetje predloži uradni dokument, ki povzema značilnosti položaja (ime, čin, območje itd.), Odškodninski paket (plača in prejemki, kot so zdravstveno, pokojninsko ali izobrazbeno itd.) , datum začetka, časovni razpored, kraj za delo in zahteve za sklenitev pogodbe o delu, če kandidat sprejme ponudbo.
Čeprav je na tej stopnji vse bolj ali manj doseženo, se bo kandidat morda želel pogajati o nekaterih pogojih, podjetje pa mora sprejeti ali se z njimi pogajati. Odvisno od prakse podjetja.
Zagotovo pa podjetje zaradi načel ne bo želelo izgubiti dobrega kandidata, zato razumni kompromisi ne bodo nikomur škodovali. V tem primeru je priporočljivo, da od kandidata zahtevate nekaj v zameno za vsako koncesijo, na primer prejšnji datum začetka, minimalni čas stalnosti v podjetju ali katero koli posebno zahtevo, ki jo ima družba.
Ko razvijalec programske opreme začne delati v podjetju, se njihov vodja zaveda, kdo so, kako delajo in, kar je najpomembneje, rezultate, ki jih ustvarijo. Ohranitev programskih inženirjev potem postane jasna prednostna naloga.
Tu pride do vpogleda v osebnost programskih inženirjev: ti - zlasti uspešni - pogosto pokažejo nekatere skupne lastnosti. Te vzorce bomo opozarjali med potekom, vendar ne pozabite, da morda ne bodo veljali enako za vsakega posameznika. Pri upravljanju projektov za razvoj programske opreme gre tako za vzorce kot za izjeme.
Ker je razvoj programske opreme tehnična naloga, zahteva zelo natančno poznavanje strukture podjetja, ciljev, postopkov, politik (vključno z veroizpovedi in poslovnimi praksami) ter standardov (tehničnih in netehničnih). Zato boljši kot razvijalec podjetje razume, boljši izdelek bo naredil in manj časa bo potreboval za njegovo izdelavo.
To osnovno usposabljanje lahko izvajajo dokumenti, spletni intranet tečaji ali predstavitve. Ampak to je nujno, saj bo novemu zaposlenemu dalo jasnost.
Če želite uvesti nove tehnologije, poskrbite za potrebno usposabljanje. Razvijalci programske opreme radi izzivajo, vendar se jim lahko zameri, da bi jih vrgli v novo tehnologijo, ne da bi se je prej pravilno naučili.
Internet je bogat z dragocenimi učnimi gradivi in je pogosto prvi vir, na katerega se razvijalci programske opreme obrnejo, ko se morajo naučiti ali ponovno naučiti tehničnih podrobnosti. Če želite obdržati razvijalce programske opreme, je nujno, da spodbujate kulturo samostojnega učenja in po potrebi zanj daste čas. Tako bo ekipa na tekočem z najsodobnejšimi tehnologijami in metodami, kar razvijalci programske opreme pogosto zelo cenijo.
Nekateri menijo, da razvijalci programske opreme za svoje delo iščejo najvišjo možno tehnologijo z najboljšimi možnimi specifikacijami, ki so na voljo v panogi. Namesto tega mislimo, da je to odvisno od delovnega mesta. Na primer, če se podjetje razvija igre v prvi osebi , razvijalcem bo treba zagotoviti vrhunsko računalniško moč. Če pa je naloga razviti zaledne spletne storitve za transakcijski sistem, bo morda dovolj manj zmogljiv računalnik.
Zares pomembno je, da razvijalcu zagotovite vsa potrebna orodja za opravljanje svojega dela in da ste odprti za njihove predloge glede novih orodij. Logično je, da bo treba vsako novo orodje, ki ga predlaga razvijalec, odobriti (morda celo prej preizkusiti) in licencirati pri podjetju. Vendar se splača: razpoložljivost ustreznih virov je ključni dejavnik motivacije in rezultatov razvijalcev. (Ne morete pričakovati, da boste obdržali programske inženirje, če jih nastavite na neuspeh!)
Razvijalci programske opreme radi delajo na mestih, ki spodbujajo in spoštujejo njihova ustvarjalna prizadevanja, saj je njihova naloga izdelati nekaj iz nič, kljub temu, da jih vodijo oblikovanje, standardi in politike IT. Zato morajo biti razvijalci razumno prepričani, da pripadajo enoti, kjer je vsa birokracija in omejitve najmanj, če so v skladu s politikami podjetja in so v skladu z njenimi veroizpovedi.
To ne pomeni, da bi morali imeti razvijalci programske opreme kakršne koli posebne privilegije v primerjavi s preostalim delom podjetja, temveč da jim njihov vodja pomaga premagati ali rešiti birokracijo, kadar je to potrebno. Zelo pomemben vidik pri zadrževanju razvijalcev programske opreme je, da je njihov šef odprt za njihove osebne zahteve in jim pomaga, kadar je to potrebno.
Pri tem ima ključno vlogo tudi ureditev notranje razvojne enote. Pogosto obstaja skupina za testiranje, dolžnost vodje programskega inženirstva pa je, da med razvijalci in preizkuševalci ohranja tekočino za timsko delo. To lahko dosežemo preprosto z jasnimi metodologijami in postopki. Razvijalci ponavadi dobro sodelujejo s preizkuševalci, če obstajajo pravila, ki jih morata upoštevati obe strani, pri čemer konflikt ostane nizek ali ga sploh ne obstaja.
Če želite obdržati razvijalce programske opreme, je nujno, da ostanejo v toku. Vse člane v timu je treba redno obveščati o ciljih, poslovnih situacijah, ki jih prizadenejo, strategijah, spremembah v organizaciji in nenazadnje o dosežkih ekipe.
Tudi če si več članov ekipe deli nekaj vrhuncev, bo to dobro za spodbujanje kohezije in timskega dela ekipe. Običajno je treba te sestanke ekip - največ dve uri - načrtovati redno (morda tedensko), pa tudi ob posebnih priložnostih, kot je zadnja faza projekta, kritična situacija itd.
Poleg komunikacije z ekipo mora vodja določiti način, kako biti na tekočem s položajem vsakega člana, naj bo to službeno, tehnično ali osebno.
Običajno 30-minutni tedenski sestanek z vsakim članom ekipe omogoči vodji, da prepozna te situacije in mu pomaga, s čimer prepreči morebitne kadrovske krize in okrepi moralo člana ekipe v podjetju.
Da bi bilo jasno, ne govorimo o ustanovitvi razvojno enote, usmerjene na sestanke, zato je potrebna stroga disciplina sestankov (točnost, spoštovanje, udeležba, trajanje). Poleg tega ta disciplina razvijalcem dokazuje, da delajo za zelo profesionalno organizacijo, kar običajno cenijo.
Nesmiselno je določiti letne splošne cilje ali podobne ocenjevalne smernice.
To je jasen dejavnik pri obravnavi razvijalcev programske opreme: ne glede na njihovo vlogo (zbiranje zahtev, arhitektura, oblikovanje, programiranje, testiranje itd.), Cilje jim je treba dati čim bolj jasno, zato nima smisla pri določanju letnih splošnih ciljev ali podobnih smernic za ocenjevanje. Ker naj bi razvijalci delali v projektih, torej z določenim obsegom in časovnim okvirom, je najboljši način za določanje ciljev na začetku projekta in vključevati, kako se bo ocenil napredek in, če bo primerno, kako bodo priznani.
Na srečo danes obstajajo metodologije, katerih namen je čim hitrejše ustvarjanje rezultatov, kot sta Agile in Scrum, ki poenostavljajo nadaljnje spremljanje in nadzor projektov. Včasih ima to lahko celo pomembno vlogo pri ohranjanju talentov za programsko opremo: Mnogi razvijalci imajo radi te metodologije, ker lahko hitro prinesejo rezultate in jim dajo občutek rednega dosežka.
Poleg tega razvijalci pogosto dajejo prednost lažjim metodologijam. Vedo, da so vrhunski, kot je Rational - kjer je končni izdelek dostavljen po dolgem projektu, ki ga zahtevajo projektiranje, načrtovanje, razvoj, testiranje in izvedba, tvegani in jim je lahko boleče slediti.
To velja za ekipe za razvoj programske opreme kot za katero koli drugo vrsto: vodja programskega inženiringa se mora spore rešiti hitro in učinkovito, sicer lahko uide nadzoru in uniči moralo, timsko delo in učinkovitost celotne enote.
Ob predpostavki, da so razvijalci v sporu profesionalni in dobro načrtovani, bi moral biti sestanek upravitelja z vpletenimi osebami, da se začne jasen dialog s takojšnjo razrešitvijo, da lahko ekipa nadaljuje. Včasih jih je treba tudi jasno opozoriti, da konflikt na osebni ravni, če kdaj pride do njega, ne bo sprejet.
Vsekakor je na koncu te sprave zelo pomembno, da obe strani menita, da je rešitev pravična, četudi je eni od njiju ni všeč. Konflikt je včasih del življenja, vendar ohranjanje talentov za programsko opremo pomeni dostojanstveno ravnanje z vsemi kadar koli se pojavijo take situacije.
Čeprav smo se dotaknili številnih dejavnikov, ki vplivajo na motivacijo razvijalca, obstaja še en ključni vidik. Ta ni čustven, niti tehničen. Govorimo o stopnji nadomestila za njihovo delo.
Kljub temu, da so po naravi idealistični, razvijalci programske opreme pogosto marajo dobre stvari materialnega sveta. Vedno je bolje, da podjetje poskrbi, da so načrti plač in nadomestil usklajeni s trgom dela - industrijske študije jih je enostavno najti - in morda celo nekoliko višje za svoje položaje.
Večina razvijalcev programske opreme ni ravnodušna do ugodnosti in nagrad, vključno s tečaji in tehnološkimi dogodki, kjer se lahko naučijo koristnih tehnik za obogatitev svojega dela.
Ko gre za zadrževanje razvijalcev programske opreme, je pomembno, da podpremo njihovo rast znotraj podjetja, ne glede na njegovo specifično smer. Ko programski inženirji ne kažejo velike želje po prehodu na vodilne položaje ali vodstvo, namesto tega cenijo napredek na tehničnem področju. To vključuje več spričeval za starejše in formalne akademske programe, kot so magisteriji ali celo doktorati. Znanje je zanje zelo močno gonilo.
Ko pa si prizadevajo za rast na vodilnih položajih, je priporočljivo narediti temeljito analizo kandidatove osebnosti in zgodovine v podjetju. To lahko stori s pomočjo oddelka za človeške vire ali drugih enot podjetja, saj dobro upravljanje zahteva povsem drugačen nabor spretnosti, ki presega tehnično znanje.
Morda imate najboljše namene in upoštevate vse zgornje nasvete, vendar razvijalcem programske opreme še vedno ne uspe obdržati 100 odstotkov časa - včasih imajo zunanji dejavniki preprosto večji vpliv. Menimo pa, da je lahko pretok osebja zdrav in poln priložnosti, če:
Strategije zadrževanja zaposlenih bi morale biti vključene v politiko podjetja, ne le odziv, ko dragocena oseba želi odstopiti. Reakcijsko zadrževanje je zelo drago in pomanjkljivo: oseba se lahko strinja, da ostane, toda pomisli si: 'Tu delam že X let, samo da mi ob odhodu ponudijo dvojno plačo - pravkar so priznali, da mi niso plačevali dovolj!'
Kakšen bo naslednji korak te osebe? Morda si poiščejo drugo službo, a zdaj z dvojno plačo kot minimalno. V tem trenutku se poskusi obdržati programskih inženirjev za vsako ceno verjetno ne splačajo. Če oseba ni popolnoma bistvena (in nenadomestljiva) za podjetje, je morda bolje, da se dogovorite za odpovedni rok in takoj poiščete zamenjavo.
Privabljanje in zadrževanje razvijalcev programske opreme je zapletena in nedeterministična naloga, kot pri vsaki vlogi v tehnološki industriji. Obstaja veliko podjetij, ki iščejo dragocene razvijalce programske opreme, toda na srečo cilj ni zmagati proti tem podjetjem, temveč privabiti dobre ljudi, ki jih lahko obdržimo v našem podjetju.
Izbirni postopki lahko vzamejo veliko časa in truda. Če se temu lotite v naglici, obstaja velika verjetnost, da boste prišli do napačnih ljudi - in kdo želi obdržati programske inženirje, ki so strupeni za svojo ekipo? Namesto tega si vzemite čas, da to storite pravilno.
Nagradite le izjemno delo in bodite pošteni do napake. Redno preverjajte povprečne plače v panogi in jih ustrezno prilagodite. Ne poskušajte zadržati osebe, ki želi oditi, razen če je to nujno potrebno; namesto tega zagovarjajte zadrževanje kot politiko podjetja.
Imejte strog in pošten postopek izbire in nikoli ne hitite. Ponudite odškodninski paket, ki je usklajen s trgom dela ali bolje.
Zagotovite potrebna orodja za delo. Trenirajte svojo ekipo vsakič, ko je to potrebno, in spodbujajte samostojno učenje.
Biti odločen in jasen. Občasna srečanja ekip. Redna individualna srečanja.
Spopadite se s konflikti takoj, pošteno in učinkovito. Gojite timsko delo.
Dajte prednost specifičnim ciljem na posamezen projekt pred nejasnimi letnimi cilji. Uporabite zaupanja vredne metodologije za razvoj programske opreme. Ocena temelji na konkretnih rezultatih.