Konfliktide juhtimine meeskonnas – akrobaatika vĂ”i elu vajalikkus?

Epigraaf:
Ühel pĂ€eval kohtusid metsas MesikĂ€pp ja Siil.
— Tere, Siil!
— Tere, MesikĂ€pp!
Nii, sÔna sÔna, naljast nalja ja MesikÀpp sai Siililt vastu nÀkku ...

Allpool meie tiimijuhi ja RAS toote arenduse juhi Igor Maranati mÔtted töökeskkonna konfliktide eripÀra ning nende juhtimise vÔimalike meetodite kohta.

Konfliktide juhtimine meeskonnas – akrobaatika vĂ”i elu vajalikkus?

Enamik konflikte, millega me tööl silmitsi seisame, arenevad sarnasel stsenaariumil nagu ĂŒlaltoodud epigraafis. On mitmeid osalisi, kes on esialgu ĂŒksteise suhtes tĂ”eliselt head, nad pĂŒĂŒavad mingit probleemi lahendada, kuid lĂ”puks jÀÀb probleem ikka lahendamata ning omavahelised suhted on kuidagi rikutud.

Elu on mitmekesine; ĂŒlaltoodud stsenaariumis on variatsioonid. MĂ”nikord on osaliste vahel esialgu suhted halvad, mĂ”nikord pole isegi kĂŒsimust, mis nĂ”uaks vahetut lahendamist (nagu nĂ€iteks epigraafis), mĂ”nikord jÀÀvad suhted arutelu lĂ”puks samaks nagu enne, kuid probleem jÀÀb lĂ”puks lahendamata.

Mis on iseloomulikud kÔigile olukordadele, mida saame mÀÀratleda kui töökeskkonna konflikti olukordi?

Konfliktide juhtimine meeskonnas – akrobaatika vĂ”i elu vajalikkus?

Esiteks on olemas kaks vĂ”i enam osalist. Need osalised vĂ”ivad asuda organisatsioonis erinevates positsioonides, olla suhteid vĂ”rdsed (meeskonna kolleegid) vĂ”i erinevatel hierarhiatasemetel (ĂŒlem — alluv), olla individuaalsed (töötaja) vĂ”i grupilised (nĂ€iteks olukordades, kus konflikt on töötaja ja meeskonna vĂ”i kahe meeskonna vahel) jne. Usaldustasand osaliste vahel mĂ”jutab oluliselt konflikti tĂ”enĂ€osust ja selle lahendamise lihtsust. Mida paremini osalised ĂŒksteist tunnevad, seda kĂ”rgem on usaldustase, seda suurem on vĂ”imalus, et nad suudavad kokku leppida. NĂ€iteks kaugmeeskonnas töötavad töötajad, kes pole kunagi isiklikult kohtunud, satuvad tĂ”enĂ€olisemalt konflikti lihtsa tööalase kĂŒsimuse lahendamisel kui inimesed, kes on vĂ€hemalt paar korda isiklikult kohtunud. SeetĂ”ttu, töötades kaugmeeskondades, on ÀÀrmiselt oluline tagada, et kĂ”ik meeskonna liikmed kohtuksid omavahel perioodiliselt isiklikult.

Teiseks, töökonflikti olukorras osalised seisavad silmitsi kĂŒsimuse lahendamise vajadusega, mis on oluline ĂŒksnes mĂ”nele osalisele, mĂ”lemale vĂ”i organisatsioonile tervikuna. Sellest tulenevalt on osalistel tihti piisavalt aega ja erinevaid lahendusviise (formaalsetest, mitteformaalsetest, kohtumistest, kirjades, juhtkonna otsustest, meeskonna eesmĂ€rkidest ja plaanidest, hierarhia olemasolust jne). See eristab töösituatsiooni (vĂ”i mitte-töösituatsiooni) kĂŒsimuse lahendamist nĂ€iteks tĂ”sisest kĂŒsimusest: „Hei, kutt, kust sa pĂ€rit oled?!“ tĂ€naval vĂ”i ĂŒlaltoodud konflikti puhul. Tööalase kĂŒsimuse lahendamisel on oluline tööprotsessi kvaliteet ja meeskonna kĂŒsimuste lahendamise kultuur.

Kolmandaks, konfliktide mÀÀravaks teguriks (meie arutelu perspektiivist) on see, et osalised ei suuda iseseisvalt jĂ”uda kĂ”iki osalisi rahuldavale lahendusele. Olukord nĂ”uab kolmanda osapoole, vĂ€list vahekohtuniku, sekkumist. See punkt vĂ”ib tunduda vaieldav, kuid tegelikult, kui konfliktne olukord lahendatakse eduka tulemusega ilma vĂ€list vahekohtunikku kaasamata, on kĂŒsimus lahendatud ja osaliste suhted ei halvenenud, siis on see olukord, mille poole tuleks pĂŒĂŒelda. Sellise konflikti kohta ei pruugi me isegi teada, vĂ”i saame sellest teada juhuslikult pĂ€rast lahendamist. Mida rohkem kĂŒsimusi suudab meeskond iseseisvalt lahendada, seda efektiivsemalt nad töötavad.

Veel ĂŒks iseloomulik joon konfliktist, mida tasub puudutada – emotsionaalse pinge aste lahendamise kĂ€igus. Konflikt ei tĂ€henda tingimata kĂ”rget emotsionaalset taset. Osalised ei pea karjuma ja kĂ€tega vehkima, et olukord oleks tĂ”eliselt konfliktne. Kui kĂŒsimus ei lahene ja teatud emotsionaalne pinge on kohal (vĂ”ib-olla ei vĂ€ljendu see selgelt), tĂ€hendab see, et oleme silmitsi konfliktiga.

Kas on ĂŒldse vajalik sekkuda konfliktsetesse olukordadesse vĂ”i on parem lasta neil iseenesest lahenduda ja oodata, kuni probleem kaob? On vajalik. Mitte alati ei ole teie vĂ”imuses vĂ”i pĂ€devuses konflikti tĂ€ielikult lahendada, kuid igas olukorras, igasuguste konfliktide puhul, saate vĂ”tta tĂ€iskasvanu positsiooni, tĂ”stes sellega ka mitmeid inimesi enda ĂŒmber, pehmendada konflikti negatiivseid tagajĂ€rgi ja soodustada selle lahendamist.

Enne kui vaatame ĂŒle mĂ”ned konfliktsete olukordade nĂ€ited, peatugem mĂ”nedele olulistele aspektidele, mis on kĂ”ikidele konfliktidele ĂŒhised.

Konflikti lahendamisel on oluline olla vĂ”itlusest kĂ”rgemal, mitte selle sees (seda nimetatakse ka „meta-positsiooni vĂ”tmiseks”), st mitte osalema lahendamisprotsessis ĂŒhe osapoole poolel. Vastupidisel juhul muutute te vĂ€liseks vahemeheks, kes aitab lahendust, ja te tugevdage ĂŒhe osapoole positsiooni teise arvelt. Otsuse tegemisel on oluline, et see oleks kĂ”igi osapoolte moraalselt vastuvĂ”etav, nagu öeldakse, „ostetud”. Et isegi kui osalised ei olnud vastuvĂ”etud otsusest rÔÔmsad, olid nad siiski siiralt nĂ”us seda tĂ€itma. Nii öeldes, olla seisukohal, et ei pruugi nĂ”ustuda, kuid nĂ”ustuda. Vastasel juhul muudab konflikt lihtsalt oma vĂ€limust, söed jÀÀvad turba alla ja mingil hetkel pĂ”letavad nad paratamatult uuesti.

Teine moment, mis osaliselt on seotud esimesega — kui olete juba otsustanud osaleda konflikti lahendamises, vĂ”tke seda maksimaalselt tĂ”siselt suhtlemise ja konteksti uurimise seisukohalt. RÀÀkige isiklikult iga osapoolega. Alguses eraldi igaĂŒhega. Ärge leppige kirjadega. Jaotatud meeskonna puhul rÀÀkige vĂ€hemalt videokĂ”ne teel. Ärge rahuldage kuulujutte ja tunnistajate ĂŒlekandeid. MĂ”istke lugu, mida iga osapool tahab, miks nad seda tahavad, mida nad ootavad, kas nad on proovinud seda kĂŒsimust varem lahendada, mis juhtub, kui seda ei lahendata, milliseid lahendusvĂ”imalusi nad nĂ€evad, kuidas nad esitavad teise poole positsiooni, mis nende arvates on Ă”ige vĂ”i vale jne. Laadige endasse kogu vĂ”imalik kontekst, erapooletult, eeldades, et kĂ”ik on Ă”iged. Te ei ole konfliktis sees, olete selle vĂ€ljas, metaasendis. Kui kontekst on saadaval ainult e-kirjade ahelas — vĂ€hemalt lugege see tĂ€ielikult lĂ€bi ning seotud arutelud ja dokumendid. PĂ€rast lugemist — rÀÀkige ikkagi hÀÀle kaudu. Peaaegu garanteeritult kuulete midagi olulist, mida kirjas ei ole.

Kolmas oluline punkt — ĂŒldine lĂ€henemine suhtlemisele. Need on tavalised asjad, mitte midagi kosmilist, kuid neil on vĂ€ga suur tĂ€hendus. Ärge ĂŒritage aega sÀÀsta, rÀÀkige kĂ”igi osalistega, kritiseerige mitte inimest, vaid tema tegevuse tagajĂ€rgi (mitte "sa oled jĂ€me", vaid "vĂ”ib-olla vĂ”ivad poisid selle asja ĂŒle vihastada"), andke vĂ”imalus nĂ€o sĂ€ilitamiseks, arutelud toimuvad isiklikult, mitte rivi ees.

Konfliktid on tavaliselt tingitud kahest pĂ”hjusest. Esimene on seotud sellega, kas inimene on konflikti hetkel tĂ€iskasvanu vĂ”i lapse positsioonis (sellest allpool). See on seotud tema emotsionaalse kĂŒpsusega, vĂ”imega juhtida oma emotsioone (mis muide ei ole alati seotud tema vanusega). Teine levinud pĂ”hjus on tööprotsessi ebatĂ€iuslikkus, mis loob halli ala olukordi, kus vastutus on hajutatud osaliste vahel, osapoolte ootused pole ĂŒksteisele selged, rollid protsessis on hĂ€gusad.

Seega konfliktide lahendamisel (nagu iga teise kĂŒsimuse puhul) peab juht silmas pidama kolme perspektiivi: lĂŒhiajalist - lahendada kĂŒsimus / konflikt siin ja praegu, keskpĂ€rast - vĂ€hendada tĂ”enĂ€osust, et sarnane konflikt uuesti tekib, ja pikaajalist - kasvatada meeskonnas tĂ€iskasvanute kultuuri.

Igas meis on sisemine laps, umbes kolme-nelja aastane. Suurema osa ajast magab ta tööl, kuid vahel tĂ”useb ta ĂŒles ja vĂ”tab juhtimise enda kĂ€tte. Lapsel on omad prioriteedid. Temale on oluline kinnitada, et see on tema liivakast, emme armastab teda rohkem, tema auto on parim (disain on parim, ta programmeerib paremini kui keegi teine jne). Konfliktiolukorras vĂ”ib laps mĂ€nguasju pigistada, jalgu trampida ja labidaga paukuda, kuid ta ei oska lahendada tĂ€iskasvanute kĂŒsimusi (lahenduse arhitektuur, automaatsete testimismetoodikad, vĂ€ljaandmise tĂ€htaeg jne), ta ei mĂ”tle meeskonna kasule. Lapse konfliktis vĂ”ib julgustada, lohutada ja saadetud magama, paludes tal kutsuda oma tĂ€iskasvanu. Enne arutelu alustamist konfliktitingimustes veenduge, et rÀÀgite just nĂŒĂŒd tĂ€iskasvanuga, mitte lapsega, ja seisate ise tĂ€iskasvanu positsioonil. Kui teie siiras eesmĂ€rk on hetkel lahendada tĂ”sine kĂŒsimus, olete tĂ€iskasvanu positsioonil. Kui teie eesmĂ€rk on jalgu trampida ja labidaga paukuda - see on lapse positsioon. Saatke oma sisemine laps magama ja kutsuge tĂ€iskasvanu, vĂ”i lĂŒkake arutelu edasi. Inimene teeb emotsionaalse otsuse ja seejĂ€rel otsib sellele ratsionaalset pĂ”hjendust. Otsus, mille laps teeb, lĂ€htuvalt lasteprioriteetidest, ei ole optimaalne.

Lisaks kĂ€itumisele konflikti hetkedel iseloomustab lapse vĂ”i tĂ€iskasvanu positsioon ka vastutuse taset, mille inimene on valmis vĂ”tma. ÄÀrmuslikel juhtudel nĂ€eb programmeerija lapse positsioon, mida ma olen korduvalt kohanud, vĂ€lja nii: ma kirjutasin koodi, saatsin selle ĂŒlevaatamiseks — minu töö on lĂ”pule viidud. Ülevaatajad peavad selle vaatama ja liitma, QA peab selle kontrollima, kui esinevad mingid probleemid — nad teavitavad mind. Kummaline, kuid isegi ĂŒsna kĂŒpsed ja kogenud inimesed kĂ€ituvad mĂ”nikord nii. Teine ÀÀrmus on see, et inimene arvab, et ta on vastutav selle eest, et tema kood töötaks, oleks testitud, kontrollitud tema poolt, edukalt ĂŒle vaadatud (kui vaja, pole probleemi ĂŒlevaatajaid pingutada, arutada kĂŒsimusi hÀÀlega jne.) ja oleks liidetud, QA abi osutatakse vajadusel, testimise stsenaariume kirjeldatakse jne. Tavalistes oludes on programmeerija kas algusest peale lĂ€hemal tĂ€iskasvanu ÀÀrmus vĂ”i nihkub sinna koos kogemuse kasvamisega (eeldusel, et meeskonnas viljeletakse Ă”iget kultuuri). Ekstreemsetes juhtudes jĂ€tkab ta tavaliselt lapse positsioonil töötamist, mille tĂ”ttu esinevad tal ja meeskonnal perioodiliselt probleemid ja konfliktid.

Meeskonnas Ă”ige, tĂ€iskasvanulik kultuuri kasvatamine on iga juhi oluline ĂŒlesanne. See nĂ”uab pikka aega ja igapĂ€evaseid jĂ”upingutusi, kuid tulemus on seda vÀÀrt. On kaks viisi, kuidas meeskonna kultuurile mĂ”ju avaldada — isiklikud nĂ€ited (millele jĂ€rgivad kindlasti, meeskond jĂ€lgib alati liidrit) ja Ă”ige kĂ€itumise arutamine ja julgustamine. Siin pole samuti midagi keerulist ega vĂ€ga formaalset, lihtsalt probleemide arutamisel mĂ€rkige, mida oleks saanud teha teisiti, rĂ”hutage, et olete mĂ€rganud, kui lahendus on Ă”ige, kiitke, mĂ€rkige ĂŒles vĂ€ljaande analĂŒĂŒsis jne.

Vaatleme mĂ”ned tĂŒĂŒpilised konfliktolukorrad, lihtsatest keerulisteni:

Konfliktide juhtimine meeskonnas – akrobaatika vĂ”i elu vajalikkus?

Konfliktid, mis ei ole seotud tööalaste kĂŒsimustega

Tööl esineb ĂŒsna tihti konflikte, mis ei ole otseselt seotud tööalaste kĂŒsimustega. Nende tekkimine ja kerge lahendamine on tavaliselt otseselt seotud osalejate emotsionaalse intelligentsuse tasemega, nende tĂ€iskasvanu tasemega ja ei ole seotud tööprotsessi tĂ€iuslikkuse vĂ”i puudustega.

TĂŒĂŒpilised nĂ€ited - keegi ei kasuta pesumasinat vĂ”i duĆĄĆĄi piisavalt sageli, millest ĂŒmbritsevad saavad tĂŒdinud, mĂ”nele on kitsas, aga teisele puhub, kui aken avada, keegi on liiga lĂ€rmakas, samas kui teistele on tööks vajalik vaikus jne. TĂŒĂŒpiliste konfliktide lahendamisega ei tule venitada ega lase see iseenesest minna. Need ei lahene eraldi ja hĂ€irivad tööd ning mĂŒrgitavad meeskonna atmosfÀÀri. Õnneks ei ole nende lahendamine tavaliselt suur probleem - piisab, kui rÀÀkida rahulikult (loomulikult silmast silma) kolleegiga, kes hĂŒgieenist ei hooli, tagada mugav istumine neile, kes eelistavad vaikust vĂ”i jahedust, osta helisummutavad kĂ”rvaklapid vĂ”i paigaldada vaheseinad jne.

Teine nĂ€ide, millega olen oma tööaja jooksul paar korda kokku puutunud, on meeskonnaliikmete psĂŒhholoogiline ĂŒhilduvus. Miski pĂ€rast ei saa inimesed lihtsalt koos töötada, iga suhtlemine lĂ”peb skandaaliga. MĂ”nikord on see seotud sellega, et inimesed jÀÀvad kinni polariseeritud arvamustesse mĂ”nes pĂ”letavas kĂŒsimuses (tavaliselt poliitilises) ja ei oska neid töövĂ€liselt jĂ€tta. Nende veenmises teineteise talumisse vĂ”i oma kĂ€itumise muutmisse pole mĂ”tet. Ainus erand, mida olen kohanud, on noored kolleegid avatud mĂ”tlemisega, kelle kĂ€itumist on veel vĂ”imalik aegamisi muuta perioodiliste vestluste kaudu. Probleem lahendatakse tavaliselt nende erinevatesse meeskondadesse paigutamisega vĂ”i vĂ€hemalt tagades vĂ”imaluse harva kokku puutuda.

KĂŒsimustes, mis on seotud kĂ”ikide osalistega, tasub rÀÀkida isiklikult, arutada olukorda, uurida, kas nad nĂ€evad sel juhul probleemi, ja kĂŒsida, millised on nende arvates lahendusvĂ”imalused, ning tagada nende osalus otsuste tegemisel.

Tööpoliitika optimeerimise aspektist (keskmise perspektiivi puhul, millest ma rÀÀkisin) ei saa siin palju teha, ainus vĂ”imalus optimeerimiseks on arvestada ĂŒhilduvust factorit meeskonna moodustamisel ja mitte panna kokku inimesi, kes vĂ”ivad konflikte tekitada.

Meeskonnakultuuri seisukohalt esinevad sellised olukorrad palju harvemini rikka kultuuriga meeskondades, kus inimesed respekteerivad oma tiimi ja kolleege ning suudavad kĂŒsimused iseseisvalt lahendada. Lisaks lahendatakse sellised konfliktid palju lihtsamalt (tihti automaatselt) meeskondades, kus on kĂ”rge usaldusvÀÀrsuse tase, inimesed on pikka aega koos töötanud ja/vĂ”i suhtlevad sageli vĂ€ljaspool tööd.

Tööalaste kĂŒsimustega seotud konfliktid:

Sellised konfliktid on tavaliselt pĂ”hjustatud mĂ”lemast tegurist korraga: emotsionaalsest (kui mĂ”ni osaleja ei ole tĂ€iskasvanu positsioonil) ja tööprotsessi puudustest. KĂ”ige sagedasem konfliktitĂŒĂŒp, millega olen kokku puutunud, on konfliktid koodireviie vĂ”i arhitektuuri arutelu kĂ€igus arendajate vahel.

RÀÀgiksin siin kahest tĂŒĂŒpilisest olukorrast:

1) Esimeses olukorras ei suuda arendaja saada koodireviid oma kolleegilt. Patch on saadetud reviile, kuid midagi ei toimu. Esmapilgul ei tundu, et kahe osapoole vahel oleks avatud konflikti, kuid sĂŒvenedes on see tĂ€iesti konflikt. Tööaline kĂŒsimus ei lahene, ĂŒks osapool (revii ootav) tunneb selgelt ebamugavust. Ekstreemne vorm sellisest olukorrast on arendamine kogukonnas vĂ”i erinevates meeskondades, kus reviier vĂ”ib olla mitte huvitatud just sellest konkreetsest koodist, kuna tal on liiga palju tööd vĂ”i muudel asjaoludel ei pruugi ta tĂ€helepanu pöörata reviikĂŒsitlusele ning vĂ€lise vahemehe (kelle ĂŒlesanne on mĂ”lema osapoole jaoks) ei pruugi ĂŒldse olla.

LĂ€htekoht, mis aitab selliste olukordade lahendamisel, on pigem pikaajaline, kĂŒpse inimese kultuur. Esiteks tuleb rakendada mĂ”istlikku aktiivsust. Ei tasu loota, et ĂŒlevaatusele pandud kood tĂ”mbab ĂŒlevaataja tĂ€helepanu iseenesest. Tuleb aidata ĂŒlevaatajal seda mĂ€rgata. Pinguta paar inimest, kĂŒsi tĂ”statatud kĂŒsimusi, osale aruteludes. Ilmselgelt vĂ”ib tĂŒĂŒtus rohkem kahju teha kui kasu, seepĂ€rast tasub kasutada hea sensoone. Teiseks, hĂ€sti toimib ettevalmistamine. Kui meeskond mĂ”istab, mis ja miks toimub, miks see kood ĂŒldse vajalik on, ning disain on eelnevalt arutletud ja kooskĂ”lastatud, pööravad inimesed sellisele koodile tĂ”enĂ€olisemalt tĂ€helepanu ja vĂ”tavad selle kasutusele. Kolmandaks, autoriteet mĂ€ngib suurt rolli. Kui soovid, et sind ĂŒlevaatetaks – tee ise palju ĂŒlevaateid. Tee kvaliteetseid ĂŒlevaateid, tĂ”eliste kontrollide, reaalse testimise ja kasulike kommentaaridega. Kui su hĂŒĂŒdnimi on meeskonnas tuntud heas valguses, on rohkem vĂ”imalusi, et su koodile tĂ€helepanu pööratakse.

Tööpoliitika seisukohalt on siinkohal vĂ”imalikud tĂ€iustused Ă”ige prioriteetide seadmine, mille eesmĂ€rk on aidata arendajal saavutada oma ja meeskonna eesmĂ€rke (teiste ĂŒlevaatamine, kogukonnas kirjade kirjutamine, koodi toetamine arhitektuuri, dokumentatsiooni ja testidega, osalemine kogukonna aruteludes jne), mitte lubada patĆĄide liiga pikka seismist jĂ€rjekorras, ja nii edasi.

2) Teine levinud juhtum konfliktide tekkes koodi vĂ”i disaini ĂŒlevaatamisel on erinevad arvamused tehniliste kĂŒsimuste, koodimisstiili ja tööriistade valiku osas. Usaldustase osalejate vahel, kuuluvus samasse meeskonda ja ĂŒhiselt töötamise kogemus on selle juures ÀÀrmiselt olulised. Takistus tekib siis, kui mĂ”ni osalejatest vĂ”tab lapsiku positsiooni ning ei pĂŒĂŒa kuulata, mida vestluspartner talle öelda tahab. Sageli vĂ”ivad mĂ”lemad lĂ€henemised, nii algne kui teise osapoole pakutud, edukalt toimida ja pole pĂ”himĂ”tteliselt oluline, milline neist valida.

Kordagi programmist minu meeskonnast (ĂŒtleme, et ta on Pasha) valmistas ette patĆĄi pakettide juurutamise sĂŒsteemi muudatustega, mida arendasid ja toetasid kolleegid naabruses asuvast osakonnast. Ühel neist (Igor) oli oma tugev arvamus, kuidas tĂ€pselt seadeid Linuxis pakettide juurutamisel konfigureerida. See arvamus erines patĆĄis pakutud lĂ€henemisviisist ning nad ei suutnud kokku leppida. Nagu tavaliselt, ajasid tĂ€htaegade piirangud neid lĂ”ksu ning oli vaja leida mingi lahendus, keegi neist pidi vĂ”tma tĂ€iskasvanu positsiooni. Pasha tunnustas, et mĂ”lemal lĂ€hteviisil on Ă”igust elule, kuid ta soovis, et tema variant saaks heakskiidu, kuna ei olnud selgeid tehnilisi eeliseid ĂŒhegi variandi jaoks.

Meie arutelu nĂ€gi vĂ€lja umbes nii (muidugi, see oli ĂŒsna skeemiline, tegelik vestlus kestis pool tundi):

— Pasha, meil on paar pĂ€eva ĂŒlejÀÀnud enne funktsioonide kĂŒlmutamist. On oluline, et me kĂ”ik kokku koguksime ja testimise vĂ”imalikult kiiresti alustaksime. Kuidas me saame Igorist mööda minna?
— Ta tahab seadmeid teistmoodi konfigureerida, on seal mulle kommentaare maha pannud

— Ja mis seal, suured muudatused, palju vaeva?
— Ei, seal on paar tundi tööd, aga lĂ”ppkokkuvĂ”ttes pole ju mingit vahet, nii nagu nii töötab, miks see vajalik on? Ma tegin töötava asja, vĂ”tame selle vastu.
— Kuule, kui kaua te seda arutate?
— Jah, me oleme juba poolteist nĂ€dalat kinni.
— Em
 me saame paar tunni jooksul lahendada kĂŒsimuse, mis on juba poolteist nĂ€dalat kestnud, ja me ei tee seda?
— Nojah, aga ma ei taha, et Igor arvan, et ma alla andsin

— Kuule, mis on sulle endale tĂ€htsam, kas lasta vĂ€lja versioon koos sinu lahendusega vĂ”i ajada Igor maha? Saame ajada, aga siis on tĂ”eline oht, et lĂ€heme versiooniga kiirustades pekki.
— No
 see oleks muidugi lahe, Igorile nina nĂ€kku pĂŒhkida, aga olgu, versioon on tĂ€htsam, ma nĂ”ustun.
— Kas sulle tĂ”eliselt oluline, mida Igor mĂ”tleb? Ausalt öeldes, teda see ei huvita, ta tahab lihtsalt ĂŒhtset lĂ€henemist erinevates kohtades sellele asjale, mille eest ta vastutab.
— Noh, ok, las ma teen nii, nagu ta kommentaarides palus, ja alustame testimist.
— AitĂ€h, Pasha! Mul oli kindel tunne, et teist kahest oled sina kĂŒpsem, kuigi Igor on sinust vanem :)

KĂŒsimus lahendatud, vĂ€ljaanne ilmus tĂ€htajaks, Pasha ei olnud eriti rahulolematu, kuna ta ise pakkus lahendust ja tegi selle teoks. Igor oli ĂŒldiselt rahul, kuna tema arvamust arvestati ja tehti nii, nagu ta soovitas.

Teine sarnase konflikti liik on valik tehniliste lahenduste/raamatukogude/meetodite vahel projektis, eriti jaotatud meeskonnas. Ühes projektis, mida reklaamiti kui C/C++ kasutavat, osutus lĂ”puks, et projekti tehniline juhtimine on kategooriliselt vastu STL (Standard Template Library) kasutamisele. See on keele standardne raamatukogu, mis lihtsustab arendust ning meie meeskond oli sellega vĂ€ga harjunud. Selgus, et projekt on palju lĂ€hemal C-le kui C++-le, mis ei olnud meeskonnale just inspireeriv, kuna juhtkond oli kokku pannud tĂ”eliselt Ă€gedad C++ arendajad. Samal ajal töötasid Ameerika meeskonna liikmed, nii insenerid kui juhid, ettevĂ”ttes juba pikka aega, nad olid harjunud olemasoleva olukorraga ja kĂ”ik oli nende jaoks okei. Venemaa meeskond koguti kokku alles hiljuti, vaid paar nĂ€dalat enne (sealhulgas mind). Venemaa meeskond ei soovinud kategooriliselt loobuda oma harjumuspĂ€rasest arendusmeest.

Alustasid lĂ”putud kirjalikud arutelud kahe mandri vahel, kirjad kolme-nelja ekraani pikkune lendasid edasi-tagasi, grupi ja isiklike postitustega, programmeerijatelt - programmeerijatele ja juhtidele. Nagu tavaliselt, ei lugenud selliseid kirju keegi peale autorite ja nende innukate pooldajate. Vestlused krigisesid pingest, edastades eri suundades mitme ekraani mĂ”tteid STL tehniliste eeliste kohta, kui hĂ€sti see on testitud, kui ohutu see on, ja ĂŒldiselt, kui ilus on elu selle kasutamisel ja kui hirmus ilma selleta.

See all this took quite a long time until I finally realized that we were discussing the technical aspects while the real problem wasn't technical at all. The issue isn't about the merits or demerits of STL or the complexity of working without it. Rather, the problem is organizational. We simply needed to understand how the company we were working for was structured. None of us had experience working in such a company before. The fact was that after developing the code and releasing it to production, support was handled by completely different people from other teams, from other countries. This huge engineering team of several tens of thousands of engineers (in total) could only afford a very basic minimum of technical means, so to speak, the minimum of the minimum. Everything that went beyond the engineering standard established in the company could not be supported later on. The level of the team is determined by the level of its weakest members. After we understood the real motivation of the actions of the American part of the team, this issue was removed from the agenda, and together we successfully developed and released the product using the standards adopted in the company. In this case, emails and chats worked poorly; it took several trips and a lot of face-to-face communication to come to a common denominator.

From the perspective of the workflow, in this particular case, having a description of the tools used, requirements for them, limitations on adding new ones, and the justification for such limitations would have been helpful. Such documents roughly correspond to those described in the sections of the Reuse Strategy and Development Environment of the 'Manager’s Handbook for Software Development', developed in NASA. Despite its age, it describes all the main activities and stages of planning software development of this kind very well. Having such documents greatly simplifies the discussion process regarding which components and approaches can be used in the product and why.

From the cultural perspective, obviously, with a more mature stance, where the parties try to hear and understand the real motivations behind their colleagues' actions and act based on project and team priorities rather than personal ego, the conflict would have been resolved more easily and quickly.

Teises konfliktis seoses tehnilise lahenduse valikuga kulus mul samuti mĂ€rkimisvÀÀrselt aega, et mĂ”ista ĂŒhe poole motivatsiooni (juhtum oli tĂ”eliselt ebatavaline), kuid kui motivatsioon oli selge, siis lahendus oli ilmselge.

Olukord on selline: meeskonnas, kus on umbes 20 inimest, liitub uus arendaja, kutsume teda Staseks. Meie standardne suhtlusvahend meeskonnas oli tol ajal Skype. Kuidas hiljem selgus, oli Stas suur avatud standardite ja avatud tarkvara fĂ€nn ning kasutas ainult tööriistu ja operatsioonisĂŒsteeme, mille allikakood on avalikult kergesti kĂ€ttesaadav ja mis kasutavad avalikult kirja pandud protokolle. Skype ei kuulu selliste tööriistade hulka. Kulutasime tohutult aega selle lĂ€henemise eeliste ja puuduste arutamisele, Skype'i analoogide kĂ€ivitamise katsetele erinevates operatsioonisĂŒsteemides, Stasele meeskonda teise standardisse ĂŒlemineku veenmise katsetele, talle isiklikele e-kirjade saatmisele, isiklikele kĂ”nede tegemise katsetele, talle teise arvuti ostmisele spetsiaalselt Skype'i jaoks jne. LĂ”puks mĂ”istsin, et see probleem ei olnud tegelikult mitte tehniline, mitte korralduslik, vaid pigem maailmavaateline, vĂ”iks isegi öelda, et religioosne (Stase jaoks). Isegi kui me lĂ”puks ĂŒhendasime Stase ja Skype'i (milleks lĂ€ks juba mitu kuud), tekiks probleem jĂ€rgneva tööriistaga uuesti. Mul ei olnud tegelikult vahendeid Stase maailmavaate muutmiseks ja ei olnud aluseid proovida muuta ka meeskonna maailmavaadet, mis töötas selles keskkonnas suurepĂ€raselt. Inimene ja ettevĂ”te olid lihtsalt maailmavaate poolest ortogonaalsed. Taolistes olukordades on hea lahendus - korralduslik. Me viisin Stase teise meeskonda, kus ta sobis paremini.

Selle konflikti pÔhjus, minu arvates, tuleneb konkreetse inimese isikliku kultuuri (kellel on tugev arvamus, mis ei lase tal kompromisse teha) ja ettevÔtte kultuuri mittesobivusest. Antud juhul on see muidugi juhtija eksimus. Alguses oli vale vÔtta teda sellisesse projekti. Stas lÔpuks siirdus avatud tarkvara arendusprojekti ja edenes seal suurepÀraselt.

Hea nĂ€ide konfliktist, mis on pĂ”hjustatud samal ajal arendaja lapsemeelsest lĂ€henemisest ja tööprotsessi puudustest — olukord, kus arendaja ja QA meeskond on erinevatel arusaamadel funktsiooni valmidusest, mis on QA-le edastatud, kuna ei olnud definition of done'i. Arendaja arvas, et piisab koodi kirjutamisest ja funktsiooni ĂŒleandmisest QA-le — seal nad saavad hakkama. TĂ”eliselt kĂŒps ja kogenud programmeerija, aga tal oli selline sisemine kvaliteedi lĂ€vend. QA polnud sellega nĂ”us ja nĂ”udis, et ta nĂ€itaks ja selgitaks, mida ta ise kontrollis, ning nad nĂ”udsid testimistsenaariumi. Neil oli juba varem olnud probleeme selle arendaja funktsionaalsusega ja nad ei tahtnud enam aega raisata. Üldiselt olid nad Ă”iged — funktsioon tĂ”epoolest ei töötanud, sest ta ei kontrollinud koodi enne QA-le edastamist.

Selle olukorra lahendamiseks palusin tal nĂ€idata, et kĂ”ik tĂ”esti töötab (see ei töötanud ja ta pidi selle parandama), rÀÀkisime meeskonna ja QA-ga definition of done'ist (me ei teinud seda kirjalikuks, kuna ei tahtnud protsessi liiga bĂŒrokraatlikuks muuta), ning peagi lahkusime selle spetsialistiga (ĂŒlevaateks oli see kogu meeskonnale kergendav).

Tööprotsessi vaatenurgast on vĂ”imalikud parandused antud juhul — definition of done'i olemasolu, nĂ”uded iga funktsiooni toetamiseks unit- ja integratsioonitestidega, arendaja lĂ€biviidud testimise kirjeldus. Ühes projektis mÔÔtsime testidega koodikatvust CI ajal ja juhul, kui katvus pĂ€rast patĆĄi lisamist langes, mĂ€rgiti testid ebaĂ”nnestunuks, st uue koodi lisamine oli vĂ”imalik ainult siis, kui sellele olid olemas uued testid.

Veel tavaline konflikt, mis on tihedalt seotud tööprotsessi korraldamisega. Meil on toode, tootearendusmeeskond, tugimeeskond ja klient. Klientidel on toote suhtes probleeme ning nad pöörduvad toetuse poole. Tugi analĂŒĂŒsib probleemi ja mĂ”istab, et probleem on tootes, ning edastab probleemi tootemeeskonnale. Tootemeeskonnal on tihe aeg, versioon on peagi vĂ€ljas, seega jÀÀb kliendi probleemipilet arendaja seas kadunuks ja ripub nĂ€dalate viisi tĂ€helepanuta. Tugi arvab, et arendaja töötab kliendi probleemiga. Klient ootab ja loodab, et tema probleemiga tegeletakse. Tegelikult ei toimu midagi. MĂ”ne nĂ€dala pĂ€rast otsustab klient lĂ”puks uurida edusamme ja kĂŒsib toelt, kuidas lĂ€heb. Tugi kĂŒsib arenduse kĂ€est. Arendaja ehmatab, vaatab probleemipiletite nimekirja ja leiab sealt kliendi pilet. Klientide piletit lugedes mĂ”istab ta, et probleemi lahendamiseks pole piisavalt teavet ja tal on vaja veel logisid ja mĂ€lupilte. Tugi kĂŒsib kliendilt tĂ€iendavat teavet. Ja siis mĂ”istab klient, et tema probleemiga ei ole keegi selle aja jooksul töötanud. Ja mĂŒrin kohiseb ...

Selles olukorras on konflikti lahendus ĂŒsna selge ja lineaarne (toote parandamine, dokumentatsiooni ja testide uuendamine, kliendi rahustamine, kiirparanduse vĂ€ljalaskmine jne). Oluline on analĂŒĂŒsida tööprotsessi ja mĂ”ista, kes vastutab kahe meeskonna vahekorra korraldamise eest, miks selline olukord ĂŒldse vĂ”imalikuks sai. Selge on, et protsessi tuleb midagi parandada — keegi peaks jĂ€lgima ĂŒldpilti ilma klientide meeldetuletusteta, proaktiivselt. Klientide piletid peaksid eristuma arendajate teiste probleemipiletite seas. Tugi peaks nĂ€gema, kas arendus töötab nende piletite kallal hetkel, kui ei — millal saavad nad tööle hakata, millal oodata tulemusi. Tugi ja arendus peaksid aeg-ajalt suhtlema ning arutama piletite staatust, vajaliku teabe kogumine silumisteks peaks olema maksimaalselt automatiseeritud jne.

Nii nagu sĂ”da, ĂŒritab vastane lĂŒĂŒa kahe ĂŒksuse vahelt, on ka töös tavaliselt kĂ”ige Ă”rnem ja haavatavam koht meeskondade vaheline koostöö. Kui tugimeeskonna ja arendajate juhid on piisavalt kĂŒpsed, suudavad nad protsessi ise parandada; kui ei, siis jĂ€tkab protsess konfliktide ja probleemide genereerimist, kuni sekkub juht, kes olukorra lahendab.

Teine iseloomulik nĂ€ide, mida olen erinevates ettevĂ”tetes korduvalt kohanud, on olukord, kus toote arendamine toimub ĂŒhe meeskonna poolt, automaatsete integratsioonitestide loomiseks on teine meeskond ja infrastruktuuri haldab kolmas meeskond. Testide kĂ€itamisel tekivad pidevalt probleemid, mille pĂ”hjuseks vĂ”ivad olla nii toode kui ka testid ja infrastruktuur. Probleemiks on sageli leppida kokku, kes peaks esialgse probleemianalĂŒĂŒsi tegema, vead registreerima, toote, testide ja infrastruktuuri logisid analĂŒĂŒsima jne. Konfliktid on siin ĂŒsna tavalised ja samas ĂŒhtsed. Suure emotsionaalse pingega olukordades liikuvad osalised sageli lapsepĂ”lve seisundisse ja arutelud muutuvad selliseks: “miks ma pean sellega tegelema”, “neil juhtub sagedamini rikkeid” jne.

Tööprotsessi vaatenurgast sĂ”ltuvad konkreetsed sammud probleemi lahendamiseks meeskondade koosseisust, testide tĂŒĂŒbist ja tootest jne. Ühes projektis kehtestasime perioodilised vahetused, kus meeskonnad jĂ€lgisid testide kĂ€iku vaheldumisi, nĂ€dal kaupa. Teises projektis tegid esialgse analĂŒĂŒsi alati testide arendajad, kuid analĂŒĂŒs oli ĂŒsna pĂ”hiline ja toode oli piisavalt stabiilne, nii et see toimis hĂ€sti. Peamine on tagada protsessi lĂ€bipaistvus, selged ootused kĂ”igile osalistele ja Ă”iglane olukorra tunne kĂ”igi jaoks.

Kas konflikt organisatsioonis on probleem? Kas on halb mĂ€rk, et teie meeskonnas tekivad konfliktid sageli (vĂ”i lihtsalt perioodiliselt)? Üldiselt mitte, kuna kui toimub kasv, areng ja mingit tĂŒĂŒpi dĂŒnaamika, kerkivad kĂŒsimused, mis pole kunagi varem lahendatud, ning nende lahendamisel vĂ”ivad tekkida konfliktid. See on nĂ€itaja, et mingitele valdkondadele tuleks tĂ€helepanu pöörata ja et on arenguvĂ”imalusi. Halb on see, kui konfliktid tekivad liiga sageli ja neid on keeruline vĂ”i aeganĂ”udev lahendada. See on tĂ”enĂ€oliselt mĂ€rk piisavalt talitsetud tööprotsesside ja meeskonna kĂŒpsuse puudumisest.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster