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 prati ili roditi nove?

Ispod presjeka je rasprava našeg voditelja tima, kao i direktora razvoja proizvoda RAS-a, Igora Marnata, o osobitostima motiviranja programera.

Upravljanje timom programera: kako i kako ih pravilno motivirati? Prvi dio
Tajna uspjeha u stvaranju cool softverskih proizvoda dobro je poznata - uzmite tim cool programera, dajte timu cool ideju i ne ometajte tim u radu. Cool programeri su rijetki i traženi. Neki regruteri čak kažu da imaju dojam da je lakše proizvesti cool programera nego zaposliti nekog s tržišta. Osim poteškoća pri zapošljavanju kao takvom, iskustvo svakog pojedinog programera, njegovo poznavanje postojećeg proizvoda i povijesti njegovog razvoja, često je nezamjenjivo ili teško i dugotrajno nadopuniti. Stoga, ako imate sreće i već imate cool tim programera, važno je poraditi na njihovoj motivaciji. Zapošljavanje i obuka novih programera, stvaranje tima od njih gotovo je jednako teško i dugotrajno kao rađanje i odgajanje djece.

Razmotrimo glavne čimbenike motivacije za programere (timove programera), koristeći Maslowljevu piramidu za jasnoću i strukturiranje prezentacije. Ako niste čuli za Maslowljevu piramidu, to nije nesporna, ali vrlo popularna i ilustrativna teorija američkog psihologa Abrahama Harolda Maslowa, koji je predložio teoriju osobne motivacije koja se temelji na hijerarhiji ljudskih potreba (vidi sliku ispod).

Maslow je potrebe pojedinca poredao u hijerarhijski red, od fizioloških potreba do potrebe za potencijalnim razvojem i samoostvarenjem. Ključna pretpostavka u Maslowljevoj teoriji je da "osoba ne može iskusiti potrebe više razine dok njezine potrebe niže razine nisu zadovoljene." Na primjer, osoba ne može biti vođena potrebom za znanjem ili estetskim potrebama ako u isto vrijeme ta osoba nije spavala ili jela tri dana.

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

Prije nego što uđemo u detalje, usredotočimo se na očitu činjenicu – tim se sastoji od ljudi, svi su ljudi različiti, svatko ima svoju strukturu motivacije. Osim što je svaki čovjek vođen različitim interesima, svaki se čovjek nalazi i u različitim životnim uvjetima. Netko je na početku karijere i razmišlja kako je izgraditi, netko će se oženiti, a netko želi svladati novo područje. Ono što je nekome važno, drugome je potpuno nevažno, a sutra će se opet sve promijeniti. Da biste ispravno razumjeli ovaj kontekst, postoji jednostavan lijek - morate razmišljati o njemu i raditi s njim. Najvažnija je komunikacija.
Obavezno razgovarajte sa svojim timom o nečem drugom osim o poslu, izgradite neformalne odnose.

Dakle, prođimo sada kroz Maslowljevu piramidu i razmotrimo njezine razine primijenjene na upravljanje timom programera.

I: Fiziološke, biološke potrebe:

Kada se govori o motivaciji, mnogi ljudi često prije svega misle na plaću. U ovom slučaju pod plaćom mislim na stalni dio kompenzacijskog paketa koji ni na koji način ne ovisi o rezultatima. Ovo se ne odnosi na bonuse, bonuse i promocije poduzeća. To je plaća koju bih u našem slučaju pripisao razini “fizioloških potreba”. Bonusi, bonusi po učinku, opcije i dionice poduzeća – sve bih to svrstao na druge razine.

Po meni, koliko god čudno zvučalo, plaća bi prije mogla biti demotivirajuće faktor, a ne faktor motivacije. Posebnost rada s programerima je u tome što su svi ljudi, prvo, vrlo pametni (značajka profesije), a drugo, duboko i/ili široko obrazovani. Obično programeri, osim svoje profesije, imaju duboko razumijevanje jednog ili više tematskih područja za koja stvaraju proizvode. Osim toga, dobre programere zanima i dobro poznaju povijest razvoja programiranja, algoritme, standarde itd. Isto vrijedi i za njihovo predmetno područje. Za ljude na ovoj razini plaća obično nije glavni motivacijski faktor.

Istovremeno, nedostatak poštene plaće programera, po njihovom shvaćanju, demotivira, i to jako. Imati poštenu plaću je norma. Plaća je znatno viša od norme (tržišne) - također, začudo, prilično demotivirajući faktor. Jednom mi je kolega pričao o timu programera u jednoj od velikih američkih kompanija za animaciju koji su zbog niza okolnosti primali plaće dva do tri puta veće od tržišnih. Kako je rekao, u životu nije vidio dosadnije, lijene i demotivirane programere. Činjenica povećanja plaće može motivirati kratkoročno, ali nakon nekoliko mjeseci nova plaća postaje norma i prestaje motivirati. Općenito bih rekao da je programerima na početku karijere faktor plaće važniji, kako profesionalnim rastom i razvojem njegova važnost opada i počinju prevladavati drugi faktori.

Druga važna točka je prisutnost pravedne ravnoteže u razini plaća u timu. Ako tim smatra da je doprinos jednog člana osjetno manji, ali je razina naknade ista, to će demotivirati cijeli tim. Ponekad su menadžeri u iskušenju da novcem potpiruju vatru – da zadrže izgorjelog ili demotiviranog čovjeka povećanjem plaće iznad normale. To najčešće stvara samo probleme na duge staze - motivacija same osobe neće puno porasti, ili će porasti za par mjeseci, ali će motivacija ostatka tima pasti. U takvim situacijama vrijedi potražiti druge pristupe, osim ako se, naravno, ne radi o jedinstvenom stručnjaku kojeg je potrebno zadržati pod svaku cijenu, čak i na kratko vrijeme.

II. Potreba za sigurnošću, udobnošću, dosljednošću životnih uvjeta:

Prije 70 godina prisutnost peći u automobilu mogla je biti motivirajući faktor pri odabiru automobila; tada je to bilo iznad norme i predstavljalo je znak luksuza. Sada je čak i odsutnost klima uređaja besmislica, a njegova prisutnost, naravno, neće biti motivirajući faktor pri odabiru automobila. Dakle, prije 10-15 godina, zgodan ured, dobar hardver, ukusna kava, fitness, fleksibilno radno vrijeme itd. mogli biti dobri motivirajući čimbenici, ali sada je to više norma za rad dobrog programera. Pritom će njihov izostanak opet biti demotivirajući.

Važan demotivirajući faktor je nesposobnost koncentracije i bučno radno okruženje. Posao programera zahtijeva tišinu i koncentraciju. Ako uredski prostor ne pruža mogućnost programerima osigurati osamljeni radni prostor, potrebno je barem osigurati ugodnu suradnju među kolegama koji se međusobno ne miješaju. Bolje je ujediniti energične i glasne drugove jedni s drugima, dajući priliku da se koncentriraju onima kojima je to potrebno.

Cijena vremena programera sada je znatno veća od cijene hardvera na kojem radi. Dva ili tri monitora, moćna računala, udobno radno mjesto za svakog programera - trebalo bi biti norma svake tvrtke. Ova je tema dobro obrađena u jednom od članaka Joela Spolskog "Joelov test: 12 koraka do boljeg kodiranja.”

Fizička komponenta udobnosti najosnovnija je i najjednostavnija; razgovarajmo sada o ostatku.

U mnogim tvrtkama, norma za programere je fleksibilan radni raspored i bez pravila odijevanja. To je dobro i ispravno ako specifičnosti rada tima to dopuštaju (primjerice, nema sastanaka s kupcima, političarima ili bankarima).

Važno je imati određeno vremensko razdoblje u kojem cijeli tim radi zajedno na lokalnoj razini kako bi ljudi mogli komunicirati i rješavati probleme licem u lice. Programer, u biti, ne odlazi s posla ni nakon posla. Obično se problemi s posla vrte u njegovom umu bez obzira na njegovu prisutnost u uredu, a dobre odluke često dolaze izvan ureda. S obzirom na potrebu da budemo dobri (o čemu ćemo govoriti u nastavku), sitna kontrola je štetna. Ne samo da je demotivirajuće, već i smanjuje produktivnost. Kao što praksa pokazuje, u nedostatku kontrole, veća je vjerojatnost da će motivirani tim raditi dulje nego što je potrebno. Ako postoji kontrola, programeri mogu sjediti za tipkovnicom od devet do šest, ali rezultat će, mislim, biti lošiji. Kako kažu, jedan čovjek može dovesti konja do vode, ali ga ni stotinu neće natjerati da pije ako on to ne želi.

U opisu ove razine potreba spominje se i sloboda od tjeskobe i straha, odsutnost kaosa te potreba za strukturom i redom. To su također iznimno važne točke koje uvelike utječu na atmosferu u momčadi.

Prvo, odsutnost kaosa, strukture i reda – tim mora razumjeti tko je za što odgovoran, kako su uloge raspoređene, što treba učiniti, kome, kada, koji su zahtjevi u osnovi proizvoda, koja su očekivanja menadžmenta i kupac... Većinu toga treba formalno opisati, o svemu treba povremeno raspravljati. Bez rasprave i povremene uporabe opisi ne funkcioniraju. Dobra je praksa povremeno raspravljati o njima i ažurirati ih na temelju rezultata obdukcije nakon puštanja na slobodu.

Drugo, mirna i prijateljska atmosfera. Svi mi većinu vremena provodimo 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, općenito sama činjenica da se skupina programera može nazvati i biti “tim” izravna je i važna odgovornost menadžera, jedan od najvažnijih srednjoročnih i dugoročnih zadataka. Stoga je važno da menadžer posebno radi na konfliktima u timu, a ne da njihov razvoj ide svojim tijekom. Upravljanje sukobima posebna je tema koja zaslužuje posebnu studiju.

Postoje dva glavna načina utjecaja na emocionalno stanje tima i ponašanje kolega (ako netko doda u komentarima, to bi bilo super). Prvi je vaše vlastito ponašanje. Osobni primjer je jako važan za menadžera i tim. Kako kažu, kakav svećenik, takav i dolazak. Ponašajte se onako kako očekujete da se ponašaju vaši kolege. Drugi je poticanje ispravnog ponašanja i, da tako kažemo, de-ohrabrivanje pogrešnog ponašanja. Komunicirajte s ljudima, dajte im povratne informacije, postoji mnogo načina za to. Općenito, povratna informacija je tema za zasebnu raspravu; ona je velik i važan dio rada s motivacijom.

Još jedna napomena o atmosferi, koja se možda čini neobičnom, ali u praksi je važna. Češće je manje djevojaka u razvojnom timu nego muškaraca. Često su grupe potpuno muške. U takvim uvjetima, također pod opterećenjem, ponekad se u momčadi počinju koristiti nepristojne riječi. Praksa pokazuje da to negativno utječe na atmosferu, komunikacija postupno postaje nepristojna. Trebali biste izbjegavati da ga sami koristite i obeshrabriti njegovu upotrebu u svom timu.

Razvojni timovi često se nazivaju R&D (istraživanje i razvoj), a istraživanje čini značajan dio posla. Ovo je dio koji je obično teško programirati i planirati, inače ne bi bilo istraživanje. Važno je da momčad ima pravo na pogreške, na inicijativu, na isprobavanje različitih opcija koje mogu, ali i ne moraju završiti uspjehom. Pogreške su normalan dio posla, ne mogu se izbjeći, ali možete proučavati, analizirati, učiti iz njih za budućnost i ići dalje. Načelo 5 zašto, koje je nastalo u Toyoti, dobar je način da se dođe do korijena problema. Kažnjavanje pogrešaka izvrstan je način stvaranja atmosfere straha i neizvjesnosti. Jedina iznimka je kada se na temelju rezultata analize pokaže da je pogreška nastala zbog neprofesionalnog odnosa prema poslu, u tom slučaju možda treba donijeti kadrovska rješenja.

Na atmosferu u timu uvelike utječu vaša očekivanja i emocionalno stanje prije početka razgovora. Prije nego započnete tešku raspravu, neku vrstu debrifinga ili samo emotivnog razgovora, važno je vaše raspoloženje i odnos prema osobi s kojom ćete razgovarati. Uvijek standardno vjerujem i djelujem na temelju onoga što je osoba iskreno pokušala učiniti najbolje. Ako se iz vaše pozicije čini da to nije tako, potrebno je smireno i detaljno saznati kontekst i shvatiti što je učinio dobro, zašto je mislio da je to ispravno i gdje se naša očekivanja razilaze. Obično se ispostavi da se zapravo i ne razilaze, 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š kritič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 preko u pokretu je laka, vrlo laka, ali onda je vožnja natrag teška, a talog ostaje dugo. Dopustite mi da vam dam jednostavan primjer iz nedavnog iskustva. Jednom od voditelja tima hitno su bili potrebni komentari o nekom problemu s kupcem od menadžera iz srodnog tima iz druge zemlje. Pingao je kolegu u messengeru, čekao 15 minuta, ponovo pingao, a zatim 15 minuta kasnije otišao na veliki chat u kojem su bili i ostali menadžeri i blago napao kolegu, riječima tipa: “pošto ne udostojite se odgovoriti mi, možda, a pitanje nije tako hitno?” Na kraju se pokazalo da je naš korporativni messenger bio malo tup, a kolega uopće nije vidio pitanje. Morao sam se ispričati. Općenito, bolje je početi s dobrim. Uvijek je moguće teško pogriješiti i kasnije upasti u nevolje; tu nema problema (iako to ne biste trebali činiti). Općenito, u više od 20 godina rada u našoj branši, istinski zlonamjernog kolegu sreo sam samo jednom (!). Srećom, prilično brzo smo prekinuli. Ispostavilo se da je u velikoj većini slučajeva ispravno pretpostaviti da kolege žele najbolje, prema svom najboljem razumijevanju konteksta.

Vaš zadatak kao menadžera je osigurati sinkronizaciju konteksta, zajedničko razumijevanje očekivanja, zahtjeva, rokova i standarda prihvaćenih u timu. Možda se čini da su to sitnice, ali atmosfera u momčadi 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. Čuo sam više od jednom od programera da nakon što su im, na primjer, inženjeri iz tima za podršku došli i osobno radili zajedno, rado su ostali na poslu kako bi pomogli u teškom slučaju osobno Pashi, koji je nedavno došao k njima, iako je ranije Paša bio samo ikona u glasniku, i nitko ne bi stao zbog ikone.

Usput, počeo sam govoriti o timu za podršku i sjetio se kanonskog primjera za mene. Jednom je jedan od kupaca u Americi imao problem s proizvodom, jedan od inženjera iz tima za podršku koji je radio na njegovoj implementaciji (premješten iz Rusije) ostao je nakon posla da pomogne, ali problem nije riješen i nije riješen. Općenito, zadržao se i sjedio tamo gotovo do jutra. U to su vrijeme menadžeri korisnika eskalirali problem, identificirali njegovu kritičnost za njih i navečer napustili posao. Proces eskalacije već je uzimao maha u drugoj vremenskoj zoni, menadžeri podrške u Rusiji počeli su pokušavati pomoći, zbog određenih poteškoća u komunikaciji s uredom korisnika (VPN, problemi s vezom, poteškoće s pozivima između zemalja, ...) nije znao da je tip već bio u zatvoru u uredu i rješava problem, i pokušao ga pronaći. Našli su ga tek ujutro (američki), kada je problem već bio praktički riješen i proizvod je radio. Odmah su počeli govoriti kako, dovraga, kupac ima takvu eskalaciju, ništa ne radi, gdje ste, ne možemo vas pronaći itd. Nepotrebno je reći da je zbog takvog ponašanja tip bio jako demotiviran. Organizacija rada distribuiranog tima posebna je velika tema, no važno je zapamtiti dvije stvari. Prvo, komunikacija i atmosfera su jako bitni, o tome ovisi uspješnost rada. Drugo, ovo ne funkcionira samo po sebi; njime se treba baviti odvojeno i dublje.

Druga važna točka vezana uz ovu razinu potreba je opet plaća. Ne veličina plaće, kao takva, već prisutnost određenog postupka za njezinu promjenu. Tvrtka mora imati pristup određivanju zahtjeva za pozicije na različitim razinama. Svaki programer trebao bi moći razgovarati s tvrtkom o očekivanjima za svoj rad, razumjeti kako i kada njihov trud može utjecati na njihovu plaću. U tu svrhu služe periodični sastanci s upraviteljem, polugodišnji ili godišnji pregledi uspješnosti. Ovo je, opet, jedan od onih trenutaka čija prisutnost ne motivira eksplicitno, ali je njihova odsutnost vrlo demotivirajuća.

Iz potrebe za redom i prisutnošću pravila proizlazi potreba za poštivanjem tih pravila, za poštivanjem normi prihvaćenih u timu, kako formalnih tako i neformalnih. Općenito govoreći, nazvao bih to potrebom da se "bude dobar". Prisutnost ove potrebe potvrđuje da mikromenadžment nije neophodan, već štetan. Dovoljno je čovjeku osigurati sve što je potrebno za rad, dati mu poznavanje konteksta, prioriteta te omogućiti slobodu djelovanja i odlučivanja na njegovoj razini. U takvim uvjetima osjećat će povjerenje, priliku da donosi vlastite odluke, preuzima odgovornost za njih i moći će otkriti svoje potencijale.

Još jedna važna točka koju treba pripisati potrebi za redom i odsutnošću kaosa je sposobnost koncentracije na zadatak, odsutnost čestih promjena konteksta. Biti programer zahtijeva vrijeme i fokus. Programeri stvarno 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. Vrijedno je planirati takve stvari unaprijed, na način da se omogući programeru da mirno i u potpunosti završi rad na jednom zadatku prije nego prijeđe na drugi. Najbolja opcija je da si date priliku da sami planirate svoj rad, identificirajući prioritete i nadolazeće zadatke unaprijed, dodjeljujući duga, produžena vremenska razdoblja za rad na jednoj vrsti zadatka. Ova tema je dobro opisana u knjizi “Google - inženjering pouzdanosti web-mjesta“, koji dobro opisuje pristupe planiranju rada timova koji osiguravaju rad i razvoj velikih, visokoopterećenih sustava otpornih na greške, kao i inženjera čije zanimanje spaja razvoj softvera i njegovu podršku.

Da bi se nastavio ...

Izvor: www.habr.com

Dodajte komentar