Upravljanje timom programera: kako i kako ih pravilno motivirati? Prvi dio

epigraf:
Muž, gledajući prljavu djecu, kaže ženi: dobro, hoćemo li ovo oprati ili roditi novu?

Ispod reza je diskusija vođe našeg tima, kao i direktora razvoja proizvoda RAS, Igora Marnata, o posebnostima motivisanja programera.

Upravljanje timom programera: kako i kako ih pravilno motivirati? Prvi dio
Tajna uspjeha u kreiranju cool softverskih proizvoda je dobro poznata - uzmite tim kul programera, dajte timu cool ideju i nemojte se miješati u rad tima. Cool programeri su rijetki i traženi. Neki regruteri čak kažu da imaju utisak da je lakše proizvesti kul programera nego unajmiti nekog sa tržišta. Pored poteškoća sa zapošljavanjem kao takvim, iskustvo svakog konkretnog programera, njegovo poznavanje postojećeg proizvoda i historije njegovog razvoja, često je nezamjenjivo ili je teško i dugotrajno nadopuniti. Stoga, ako imate sreće i već imate kul tim programera, važno je poraditi na njihovoj motivaciji. Zapošljavanje i obuka novih programera, stvaranje tima od njih je gotovo jednako teško i dugotrajno kao rađanje i podizanje djece.

Razmotrimo glavne faktore motivacije programera (timove programera), koristeći Maslowovu piramidu za jasnoću i strukturiranje prezentacije. Ako niste čuli za Maslowovu piramidu, to nije neosporna, ali vrlo popularna i ilustrativna teorija američkog psihologa Abrahama Harolda Maslowa, koji je predložio teoriju lične motivacije zasnovanu na hijerarhiji ljudskih potreba (vidi sliku ispod).

Maslow je hijerarhijski rasporedio potrebe pojedinca, od fizioloških potreba do potrebe za potencijalnim razvojem i samoaktualizacijom. Ključna pretpostavka u Maslowovoj teoriji je da "osoba ne može iskusiti potrebe višeg nivoa sve dok njene potrebe nižeg nivoa nisu zadovoljene." Na primjer, osoba ne može biti vođena potrebom za znanjem ili estetskim potrebama ako u isto vrijeme nije spavala ili jela tri dana.

Upravljanje timom programera: kako i kako ih pravilno motivirati? Prvi dio

Prije nego uđemo u detalje, fokusirajmo se na očiglednu činjenicu – tim se sastoji od ljudi, svi ljudi su različiti, svaki ima svoju motivacijsku strukturu. Pored činjenice da je svaka osoba vođena različitim interesima, svaka osoba je i u različitim životnim uslovima. Neko je na početku karijere i razmišlja kako da je izgradi, neko će se oženiti, a neko želi da savlada novu oblast. Ono što je jednom važno, drugom je potpuno nevažno, a sutra će se sve ponovo promijeniti. Da biste ispravno razumjeli ovaj kontekst, postoji jednostavan lijek - morate razmisliti o tome i raditi s njim. Najvažnija stvar je komunikacija.
Obavezno razgovarajte sa svojim timom o nečemu drugom osim o poslu, gradite neformalne odnose.

Dakle, hajde da sada prođemo kroz Maslowovu piramidu i razmotrimo njene nivoe primenjene na upravljanje timom programera.

I: Fiziološke, biološke potrebe:

Kada se govori o motivaciji, mnogi ljudi često prije svega misle na platu. U ovom slučaju pod plaćom podrazumijevam stalni dio kompenzacijskog paketa, koji ni na koji način ne zavisi od rezultata. Ovo se ne odnosi na bonuse, bonuse i promocije kompanije. To je plata koju bih u našem slučaju pripisao nivou „fizioloških potreba“. Bonusi, bonusi na osnovu učinka, opcija i udjela u kompaniji – sve bih to svrstao na druge nivoe.

Po mom mišljenju, koliko god to čudno zvučalo, plata bi prije mogla biti demotivirajući faktor, a ne motivirajući faktor. Posebnost rada s programerima je u tome što su svi oni ljudi, prvo, vrlo pametni (odlika profesije), a drugo, duboko i/ili široko obrazovani. Tipično, programeri, pored svoje profesije, imaju duboko razumijevanje jedne ili više predmetnih oblasti za koje kreiraju proizvode. Osim toga, dobri programeri su zainteresovani i dobro poznaju istoriju razvoja programiranja, algoritme, standarde itd. Isto se odnosi i na njihovu predmetnu oblast. Za ljude na ovom nivou plata obično nije glavni motivirajući faktor.

Istovremeno, nedostatak pravedne plate za programere, po njihovom shvatanju, demotiviše, i demotiviše u velikoj meri. Imati poštenu platu je norma. Plata je mnogo veća od norme (tržišta) - također, čudno, prilično demotivirajući faktor. Jedan kolega mi je jednom pričao o timu programera u jednoj od velikih američkih kompanija za animaciju, koji je zbog niza okolnosti primao plate dva do tri puta veće od tržišnih. Kako je rekao, dosadnije, lijenih i demotivisanih programera u životu nije vidio. Činjenica povećanja plate može kratkoročno motivirati, ali nakon nekoliko mjeseci nova plata postaje norma i prestaje motivirati. Generalno, rekao bih da je programerima na početku karijere faktor plate važniji, kako profesionalno rastu i razvijaju se, njegov značaj opada i drugi faktori počinju da prevladavaju.

Druga važna tačka je postojanje fer ravnoteže u visini plata u timu. Ako tim smatra da je doprinos jednog člana osjetno manji, ali je nivo naknade isti, to će demotivirati cijeli tim. Ponekad su menadžeri u iskušenju da potpiruju vatru novcem - da zadrže izgorjelu ili demotivisanu osobu tako što će joj podići platu iznad normalnog. To obično samo dugoročno stvara probleme - motivacija same osobe se neće mnogo povećati, ili će se povećati za par mjeseci, ali će opasti motivacija ostatka tima. U takvim situacijama vrijedi tražiti druge pristupe, osim ako se, naravno, ne radi o jedinstvenom stručnjaku kojeg treba zadržati po svaku cijenu, čak i na kratko.

II. Potreba za sigurnošću, udobnošću, doslednošću životnih uslova:

Prije 70 godina, prisustvo peći u automobilu moglo je biti motivirajući faktor pri odabiru automobila, tada je bilo iznad norme i predstavljalo je znak luksuza. Sada je čak i odsustvo klima-uređaja besmislica, a njegovo prisustvo, naravno, neće biti motivirajući faktor pri odabiru automobila. Dakle, prije 10-15 godina, zgodna kancelarija, dobar hardver, ukusna kafa, fitnes, fleksibilno radno vrijeme itd. mogu biti dobri motivacioni faktori, ali sada je to pre norma za rad dobrog programera. Istovremeno, njihovo odsustvo će opet biti demotivišuće.

Važan demotivirajući faktor je nedostatak sposobnosti koncentracije i bučno radno okruženje. Posao programera zahtijeva tišinu i koncentraciju. Ako kancelarijski prostor ne pruža mogućnost da se programerima obezbedi osamljen radni prostor, potrebno je barem obezbediti udobnu saradnju između kolega koji se međusobno ne mešaju. Bolje je ujediniti energične i glasne drugove jedni s drugima, dajući priliku da se koncentrišu na one kojima je to potrebno.

Cijena vremena programera sada je znatno veća od cijene hardvera na kojem radi. Dva ili tri monitora, moćni računari, udobno radno mesto za svakog programera - trebalo bi da bude norma u svakoj kompaniji. Ova tema je dobro obrađena u jednom od članaka Joela Spolskyja “Joel test: 12 koraka do boljeg koda.”

Fizička komponenta udobnosti je najosnovnija i najjednostavnija, a sada razgovarajmo o ostalom.

U mnogim kompanijama, norma za programere je fleksibilan raspored rada i bez pravila oblačenja. To je dobro i ispravno ako to dozvoljavaju specifičnosti rada tima (npr. nema sastanaka sa mušterijama, političarima ili bankarima).

Važno je imati određeni vremenski okvir u kojem cijeli tim radi zajedno na lokalnom nivou kako bi ljudi mogli komunicirati i rješavati probleme licem u lice. Programer, u suštini, ne napušta posao ni nakon posla. Obično se radna pitanja ponavljaju u njegovom umu bez obzira na njegovo prisustvo u kancelariji, a dobre odluke često dolaze izvan kancelarije. S obzirom na potrebu da budemo dobri (o čemu ćemo govoriti u nastavku), sitna kontrola je štetna. Ne samo da demotivira, već i smanjuje produktivnost. Kao što praksa pokazuje, u nedostatku kontrole motivirani tim će vjerojatnije raditi duže nego što je potrebno. Ako postoji kontrola, programeri mogu sjediti za tastaturom od devet do šest, ali mislim da će rezultat biti lošiji. Kako kažu, jedna osoba može odvesti konja na vodu, ali ni stotinu ga neće natjerati da pije ako ne želi.

U opisu ovog nivoa potreba pominje se i sloboda od anksioznosti i straha, odsustvo haosa i potreba za strukturom i redom. Ovo su takođe izuzetno važne tačke koje u velikoj meri utiču na atmosferu u timu.

Prvo, odsustvo haosa, strukture i reda – tim mora razumjeti ko je za šta odgovoran, kako su uloge raspoređene, šta treba učiniti, kome, kada, koji zahtjevi su u osnovi proizvoda, kakva su očekivanja menadžmenta i kupac... Većinu toga treba formalno opisati, o svemu treba periodično razgovarati. Bez rasprave i periodične upotrebe, opisi ne rade. Dobra je praksa da se o njima povremeno raspravlja i ažurira na osnovu rezultata postmortalne analize nakon puštanja na slobodu.

Drugo, mirna i prijateljska atmosfera. Svi provodimo većinu svog vremena na poslu i želimo to raditi bez stresa, sukoba ili straha. Razvojni tim obično radi pod pritiskom rasporeda i kupaca. Nikome nije potreban dodatni stres od strane kolega i nadređenih. Atmosfera u timu, generalno, sama činjenica da se grupa programera može nazvati i biti “tim” je direktna i važna odgovornost menadžera, jedan od najvažnijih srednjoročnih i dugoročnih zadataka. Stoga je važno da menadžer radi, posebno, sa konfliktima u timu, a ne dozvoli da njihov razvoj ide svojim tokom. Upravljanje konfliktima je posebna tema koja zaslužuje posebnu studiju.

Postoje dva glavna načina da se utiče na emocionalno stanje tima i ponašanje kolega (ako neko doda u komentarima, to bi bilo odlično). Prvo je vaše vlastito ponašanje. Lični primjer je izuzetno važan za menadžera i tim. Kako kažu, kakav je pop, takav je i dolazak. Ponašajte se onako kako očekujete da se ponašaju vaše kolege. Drugi je podsticanje ispravnog ponašanja i, da tako kažem, destimulacija pogrešnog ponašanja. Komunicirajte s ljudima, dajte im povratne informacije, postoji mnogo načina da to učinite. Općenito, povratna informacija je tema za posebnu diskusiju, to je veliki i važan dio rada s motivacijom.

Još jedna napomena o atmosferi, koja može izgledati neobično, ali je u praksi važna. Češće nego ne, u razvojnom timu je manje djevojaka nego muškaraca. Često su grupe u potpunosti muške. U takvim uslovima, takođe pod opterećenjem, ponekad se u timu počinje koristiti nepristojan jezik. Praksa pokazuje da se to negativno odražava na atmosferu, komunikacija postepeno postaje gruba. Trebali biste izbjegavati da ga sami koristite i obeshrabrite njegovu upotrebu u svom timu.

Razvojni timovi se često nazivaju R&D (istraživanje i razvoj), pri čemu istraživanja čine značajan dio posla. To je dio koji je obično teško programirati i planirati, inače ne bi bilo istraživanje. Važno je da tim ima pravo na greške, da preuzme inicijativu, isproba različite opcije koje mogu, ali ne moraju završiti uspjehom. Greške su normalan dio posla, ne mogu se izbjeći, ali možete učiti, analizirati, učiti iz njih za budućnost i ići dalje. Princip 5 Zašto, koji je nastao u Toyoti, dobar je način da se dođe do temeljnog uzroka problema. Kažnjavanje grešaka je odličan način da se stvori atmosfera straha i neizvjesnosti. Jedini izuzetak je kada se na osnovu rezultata analize pokaže da je greška nastala zbog neprofesionalnog odnosa prema poslu, u ovom slučaju možda treba donijeti kadrovske odluke.

Na atmosferu u timu u velikoj mjeri utiču vaša očekivanja i emocionalno stanje prije početka razgovora. Prije nego što započnete tešku diskusiju, neku vrstu debrifinga ili samo emotivni razgovor, važno je vaše raspoloženje i odnos prema osobi s kojom ćete razgovarati. Uvijek po defaultu vjerujem i djelujem na osnovu onoga što se osoba iskreno trudila da uradi najbolje. Ako se sa vaše pozicije čini da to nije tako, morate mirno i detaljno saznati kontekst i razumjeti šta je uradio kako treba, zašto je mislio da je to ispravno i gdje se naša očekivanja razilaze. Obično se ispostavi da se baš i ne razlikuju, samo je njegova vizija konteksta potpunija ili svježija, a postoji nešto što niste znali. Ili, obrnuto, nešto nije znao. Ovo je posebno važno u distribuiranom timu, kada ljudi rjeđe komuniciraju osobno i koriste e-poštu i instant messengere. Ovo je još važnije u timu koji se sastoji od programera iz različitih zemalja i raspoređenih u različitim vremenskim zonama. Ovdje kulturološke razlike počinju igrati veliku ulogu.

U teškoj situaciji, vožnja u pokretu je laka, vrlo laka, ali onda je vožnja nazad otežana, a talog ostaje dugo vremena. Daću vam jednostavan primjer iz nedavnog iskustva. Jednom od tim menadžera hitno su bili potrebni komentari o nekom problemu sa klijentom od menadžera iz povezanog tima u drugoj zemlji. Pingovao je kolegu u mesindžeru, čekao 15 minuta, pingovao ponovo, pa 15 minuta kasnije otišao na veliki razgovor u kojem su bili i ostali menadžeri, i blago napao kolegu, uz formulaciju tipa: “pošto ti ne udostojite se da mi odgovorite, možda, a pitanje nije tako hitno?” Na kraju se ispostavilo da je naš korporativni glasnik pomalo dosadan, a kolega uopće nije vidio pitanje. Morao sam da se izvinim. Općenito, bolje je početi s dobrim. Uvijek je moguće pogriješiti i kasnije upasti u nevolje; s tim nema problema (iako to ne biste trebali raditi). Generalno, za više od 20 godina rada u našoj branši, sreo sam jednog zaista zlonamjernog kolegu samo jednom (!). Srećom, vrlo brzo smo raskinuli. Ispostavilo se da je u velikoj većini slučajeva ispravno pretpostaviti da kolege žele najbolje, u skladu sa svojim najboljim razumijevanjem konteksta.

Vaš zadatak kao menadžera je da osigurate sinhronizaciju konteksta, zajedničko razumijevanje očekivanja, zahtjeva, rokova i standarda prihvaćenih u timu. To mogu izgledati kao male stvari, ali atmosfera u timu se gradi upravo od takvih sitnica. Iz perspektive distribuiranog tima, jedan od važnih zadataka je osigurati da članovi tima imaju periodičnu komunikaciju licem u lice. Više puta sam čuo od programera da su nakon što su im, na primjer, došli inženjeri iz tima za podršku i lično radili zajedno, rado ostali na poslu da pomognu u teškom slučaju lično Paši, koji im je nedavno došao, iako je ranije Paša bio samo ikona u glasniku, i niko ne bi stao zbog ikone.

Kad smo već kod timova za podršku, sjetio sam se klasičnog primjera. Jednom je kupac u Americi imao problem s proizvodom. Jedan od inženjera podrške koji je radio na implementaciji (doveden iz Rusije) ostao je nakon posla da pomogne, ali problem jednostavno nije bio riješen. Ostao je tamo do kasno i ostao je tamo skoro do jutra. U međuvremenu, menadžeri kupca su eskalirali problem, identificirali njegovu kritičnost i napustili posao te večeri. Proces eskalacije je dobio zamah u drugoj vremenskoj zoni, a menadžeri podrške u Rusiji su počeli pokušavati pomoći zbog određenih komunikacijskih poteškoća s uredom kupca.VPN, problemi s vezom, poteškoće s međunarodnim pozivima, ...) Nisu znali da je tip već u kancelariji i rješava problem, pa su pokušali da ga pronađu. Pronašli su ga tek rano ujutro (po američkom vremenu), kada je praktično riješio problem i proizvod je radio. Odmah na početku su ga počeli gnjaviti govoreći: "Šta dovraga, klijent ovo eskalira, ništa ne radi, gdje si, ne možemo te pronaći" i tako dalje. Nepotrebno je reći da je ovakvo ponašanje ostavilo tipa jako demotiviranim. Organizovanje distribuiranog tima je zasebna, velika tema, ali važno je zapamtiti dvije stvari. Prvo, komunikacija i atmosfera su ključne; uspjeh rada zavisi od njih. Drugo, ovo ne funkcioniše samo po sebi; potrebno je da se tome pozabavimo odvojeno i detaljno.

Još jedna važna tačka vezana za ovaj nivo potreba je opet plata. Ne veličina plate, kao takva, već prisustvo određene procedure za njenu promjenu. Kompanija mora imati pristup određivanju uslova za radna mjesta na različitim nivoima. Svaki programer treba da bude u mogućnosti da razgovara sa kompanijom o očekivanjima za svoj rad, da razume kako i kada njihovi napori mogu uticati na njihovu platu. U tu svrhu služe periodični sastanci sa menadžerom, polugodišnji ili godišnji pregledi učinka. Ovo je, opet, jedan od onih momenata čije prisustvo ne motiviše eksplicitno, ali je njihovo odsustvo veoma demotivišuće.

Iz potrebe za redom i prisustva pravila proizilazi potreba da se poštuju ova pravila, da se poštuju norme prihvaćene u timu, kako formalne tako i neformalne. Uopšteno govoreći, ja bih to nazvao potrebom da se „bude dobar“. Prisustvo ove potrebe potvrđuje da mikromenadžment nije neophodan, već štetan. Dovoljno je čovjeku obezbijediti sve što mu je potrebno za rad, dati mu znanje o kontekstu, prioritetima i omogućiti slobodu djelovanja i odlučivanja na njegovom nivou. U takvim će uslovima osjetiti povjerenje, priliku da samostalno donosi odluke, preuzima odgovornost za njih i moći će otkriti svoj potencijal.

Još jedna važna stvar koju treba pripisati potrebi za redom i odsustvu haosa je sposobnost koncentriranja na zadatak, odsustvo čestih promjena konteksta. Biti programer zahtijeva vrijeme i fokus. Programeri zaista ne vole hitno odustati od jednog zadatka i prebaciti se na drugi. Neophodan dio rada programera obično nije samo stvarni razvoj koda, već i ispravljanje grešaka i pomoć pri obradi zahtjeva kupaca. Vrijedi planirati takve stvari unaprijed, na način da omogućite programeru da mirno i potpuno završi posao na jednom zadatku prije nego što se prebaci na drugi. Najbolja opcija je da sebi date priliku da sami planirate svoj posao, unaprijed identifikujući prioritete i predstojeće zadatke, odvojite duge, produžene periode vremena za rad na jednoj vrsti zadatka. Ova tema je dobro opisana u knjizi “Google - Inženjering pouzdanosti sajta“, koji dobro opisuje pristupe planiranju rada timova koji osiguravaju rad i razvoj velikih, visoko opterećenih sistema otpornih na greške, kao i inženjera čije zanimanje objedinjuje razvoj softvera i njegovu podršku.

Da se nastavi ...

izvor: www.habr.com

Kupite pouzdan hosting za sajtove sa DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster