Anger by koade: programmeurs en negativiteit

Anger by koade: programmeurs en negativiteit

Ik sjoch op in stikje koade. Dit kin wêze de minste koade Ik haw ea sjoen. Om mar ien record yn 'e databank te aktualisearjen, hellet it alle records yn' e kolleksje op en stjoert dan in fernijingsfersyk nei elke record yn 'e databank, sels dejingen dy't net bywurke hoege te wurden. D'r is in kaartfunksje dy't gewoan de wearde weromjout dy't deroan is trochjûn. D'r binne betingsttests foar fariabelen mei blykber deselde wearde, krekt neamd yn ferskate stilen (firstName и first_name). Foar elke UPDATE stjoert de koade in berjocht nei in oare wachtrige, dy't wurdt behannele troch in oare serverless funksje, mar dy't docht al it wurk foar in oare kolleksje yn deselde databank. Haw ik neamd dat dizze serverless funksje is fan in wolk-basearre "service-oriïntearre arsjitektuer" mei mear dan 100 funksjes yn 'e omjouwing?

Hoe wie it sels mooglik om dit te dwaan? Ik bedek myn gesicht en sichtber snikke troch myn laitsjen. Myn kollega's freegje wat der bard is, en ik fertel it yn kleuren Slimste hits fan BulkDataImporter.js 2018. Elkenien knikt meilibjend nei my en is it iens: hoe koene se ús dit oandwaan?

Negativiteit: in emosjoneel ark yn in programmeurkultuer

Negativiteit spilet in wichtige rol yn programmearring. It is ynbêde yn ús kultuer en wurdt brûkt om te dielen wat wy hawwe leard ("do net do silst it leauwe, hoe wie dy koade!"), om sympaty út te drukken troch frustraasje ("God, Wêrom dat dwaan?"), om jinsels te pronkjen ("Ik soe nea nea so net dien”), om in oar de skuld te jaan ("wy binne mislearre fanwegen syn koade, dy't ûnmooglik te ûnderhâlden is"), of, lykas wenst is yn 'e meast "giftige" organisaasjes, oaren te kontrolearjen fia in gefoel fan skamte ("Wêr hawwe jo sels oan tocht?" ? korrekt").

Anger by koade: programmeurs en negativiteit

Negativiteit is sa wichtich foar programmeurs, om't it in heul effektive manier is om wearde oer te bringen. Ik haw ienris in programmearringkamp bywenne, en de standertpraktyk fan it ynstellen fan in yndustrykultuer by studinten wie om royaal memes, ferhalen en fideo's te leverjen, wêrfan de populêrste eksploitearre waarden frustraasje fan programmeurs as se konfrontearre wurde mei it misbegryp fan minsken. It is goed om emosjonele ark te brûken om de Goede, de Minne, de Ugly te identifisearjen, doch dat net, hielendal noait. It is nedich om nijkommers foar te bereiden op it feit dat se wierskynlik ferkeard begrepen wurde troch kollega's dy't fier fan IT binne. Dat harren freonen sille begjinne te ferkeapjen harren miljoen-dollar app-ideeën. Dat se troch einleaze labyrinten fan ferâldere koade moatte omswalkje mei in stel minotaurussen om 'e hoeke.

As wy earst leare te programmearjen, is ús begryp fan 'e djipte fan' e "programmearringûnderfining" basearre op it observearjen fan emosjonele reaksjes fan oare minsken. Dit is dúdlik te sjen út de berjochten yn sabe ProgrammerHumor, wêr't in protte newbie-programmeurs hingje. In protte humoristyske binne, yn ien of oare graad, kleure mei ferskate skaden fan negativiteit: teloarstelling, pessimisme, fergrieming, ferachting en oaren. En as dit jo net genôch liket, lês dan de kommentaren.

Anger by koade: programmeurs en negativiteit

Ik fernaam dat as programmeurs ûnderfining krije, se hieltyd negatyf wurde. Begjinners, net bewust fan 'e swierrichheden dy't har wachtsje, begjinne mei entûsjasme en in reewilligens om te leauwen dat de oarsaak fan dizze swierrichheden gewoan in gebrek oan ûnderfining en kennis is; en úteinlik sille se konfrontearre wurde mei de realiteit fan 'e dingen.

De tiid giet foarby, se krije ûnderfining en wurde yn steat om Goede koade te ûnderskieden fan Bad. En as dat momint komt, fiele jonge programmeurs de frustraasje fan wurkjen mei fansels minne koade. En as se wurkje yn in team (op ôfstân of persoanlik), se nimme faak de emosjonele gewoanten fan mear betûfte kollega's. Dit liedt faaks ta in tanimming fan negativiteit, om't jonge minsken no betochtsum oer koade prate kinne en it ferdielen yn min en goed, en dêrmei sjen litte dat se "yn it witte" binne. Dit fersterket it negative fierder: út teloarstelling is it maklik om mei kollega's oer te gean en diel te wurden fan in groep; krityk op Bad Code fergruttet jo status en profesjonaliteit yn 'e eagen fan oaren: minsken dy't negative mieningen útdrukke wurde faak ûnderfûn as yntelliginter en kompetinte.

It fergrutsjen fan negativiteit is net needsaaklik in minne saak. Diskusjes oer programmearring, ûnder oaren, binne ekstreem rjochte op 'e kwaliteit fan' e skreaune koade. Wat de koade is, definiearret folslein de funksje dy't it is bedoeld om te dwaan (hardware, netwurken, ensfh.), dus it is wichtich om jo miening oer dy koade te uterjen. Hast alle diskusjes komme del op de fraach oft de koade goed genôch is, en op it feroardieljen fan de manifestaasjes fan minne koade yn útdrukkingen wêrfan de emosjonele konnotaasje de kwaliteit fan de koade karakterisearret:

  • "D'r binne in protte logika-ynkonsistinsjes yn dizze module, it is in goede kandidaat foar signifikante prestaasjesoptimalisaasje."
  • "Dizze module is aardich min, wy moatte it refaktorearje."
  • "Dizze module hat gjin sin, it moat opnij skreaun wurde."
  • "Dizze module sûget, it moat wurde patched."
  • "Dit is in stik ram, gjin module, it hoegde hielendal net skreaun te wurden, wat de hel wie syn auteur tocht."

Trouwens, it is dizze "emosjonele frijlitting" dy't ûntwikkelders de koade "sexy" neamt, wat selden earlik is - útsein as jo wurkje by PornHub.

It probleem is dat minsken frjemde, ûnrêstige, emosjonele skepsels binne, en de waarnimming en útdrukking fan elke emoasje feroaret ús: earst subtyl, mar oer de tiid, dramatysk.

In ûnrêstige glêde helling fan negativiteit

In pear jier lyn wie ik in ynformele teamlieder en ynterviewde in ûntwikkelder. Wy fûnen him echt leuk: hy wie tûk, stelde goede fragen, wie technysk en paste goed yn ús kultuer. Ik wie benammen ûnder de yndruk fan syn positiviteit en hoe ûndernimmend hy like. En ik hierde him.

Ik hie doe in pear jier yn it bedriuw wurke en fielde dat ús kultuer net sa effektyf wie. Wy besochten it produkt twa kear, trije kear en noch in pear kear te lansearjen foardat ik oankaam, wat late ta grutte útjeften foar rework, wêrby't wy neat te sjen hienen útsein lange nachten, strakke deadlines en produkten dy't wurken. En hoewol't ik noch hurd wurke, wie ik skeptysk oer de lêste deadline dy't ús troch it management tawiisd waard. En hy swarde tafallich by it besprekken fan guon aspekten fan 'e koade mei myn kollega's.

Dat it wie net ferrassend - hoewol ik ferrast wie - dat in pear wiken letter deselde nije ûntwikkelder deselde negative dingen sei dy't ik die (ynklusyf swarren). Ik realisearre dat hy oars gedrage soe yn in oar bedriuw mei in oare kultuer. Hy hat gewoan oanpast oan 'e kultuer dy't ik makke. Ik waard oerwûn mei in gefoel fan skuld. Fanwegen myn subjektive ûnderfining haw ik pessimisme ynbrocht by in nijkommer dy't ik as folslein oars ûnderfûn. Ek al wie er eins net sa en wie er mar in ferskining om te sjen dat er der yn passe koe, ik twong him myn skitterjende hâlding oan. En alles sein, sels yn grap of yn it foarbygean, hat de minne manier om te feroarjen yn wat wurdt leaud.

Anger by koade: programmeurs en negativiteit

Negative manieren

Litte wy weromgean nei ús eardere newbie-programmeurs, dy't in bytsje wiisheid en ûnderfining hawwe opdien: se binne mear fertroud wurden mei de programmearringsektor en begripe dat minne koade oeral is, it kin net foarkommen wurde. It komt sels foar yn 'e meast avansearre bedriuwen rjochte op kwaliteit (en lit my opmerke: blykber, moderniteit beskermet net tsjin minne koade).

Goed skript. Yn 'e rin fan' e tiid begjinne ûntwikkelders te akseptearjen dat minne koade in realiteit is fan software en dat har taak is om it te ferbetterjen. En dat as minne koade net foar te kommen is, dan hat it gjin sin om der opskuor oer te meitsjen. Se nimme it paad fan Zen, fokusje op it oplossen fan problemen as taken dy't har konfrontearje. Se leare hoe't se de kwaliteit fan software sekuer mjitte en kommunisearje oan bedriuwseigners, skriuwe goed-fundearre skatten basearre op har jierrenlange ûnderfining, en ûntfange úteinlik romhertich beleanningen foar har ongelooflijke en trochgeande wearde foar it bedriuw. Se dogge har wurk sa goed dat se $ 10 miljoen oan bonussen betelle wurde en mei pensjoen geane om de rest fan har libben te dwaan wat se wolle (nim it asjebleaft net foar fanselssprekkend).

Anger by koade: programmeurs en negativiteit

In oar senario is it paad fan it tsjuster. Ynstee fan it akseptearjen fan minne koade as in ûnûntkomberens, nimme ûntwikkelders it op harsels om alles min yn 'e programmearwrâld út te roppen sadat se it kinne oerwinne. Se wegerje om in protte goede redenen besteande minne koade te ferbetterjen: "minsken moatte mear witte en net sa dom wêze"; "it is onaangenaam"; "dit is min foar bedriuw"; "dit bewiist hoe tûk ik bin"; "as ik jo net fertel wat in lousy koade dit is, sil it hiele bedriuw yn 'e oseaan falle," ensafuorthinne.

Wiswier net by steat om te fieren de feroarings dy't se wolle, om't it bedriuw spitigernôch moat fierder te ûntwikkeljen en kin net besteegje tiid soargen oer de kwaliteit fan de koade, dizze minsken krije in reputaasje as klagers. Se wurde bewarre foar har hege kompetinsje, mar wurde skood nei de marzjes fan it bedriuw, wêr't se net in protte minsken sille argewearje, mar noch de wurking fan krityske systemen stypje. Sûnder tagong ta nije ûntwikkelingsmooglikheden ferlieze se feardigens en hâlde se op om te foldwaan oan de easken fan 'e yndustry. Har negativiteit feroaret yn bittere bitterheid, en as gefolch dat se har ego's fiede troch mei tweintichjierrige studinten te argumintearjen oer de reis dy't har favorite âlde technology hat makke en wêrom't it noch sa waarm is. Se einigje mei pensjoen en libje út harren âldens swarren by fûgels.

De realiteit leit wierskynlik earne tusken dizze twa utersten.

Guon bedriuwen hawwe ekstreem suksesfol west yn it meitsjen fan ekstreem negative, insulêre kultueren mei in sterke wil (lykas Microsoft foar har ferlern desennia) - faak binne dit bedriuwen mei produkten dy't perfekt passe by de merk en de needsaak om sa fluch mooglik te groeien; of bedriuwen mei in hiërargy fan kommando en kontrôle (Apple yn 'e bêste jierren fan Jobs), dêr't elkenien docht wat se wurde ferteld. Moderne saaklike ûndersyk (en sûn ferstân) suggerearret lykwols dat maksimale fernimstigens, dy't liedt ta ynnovaasje yn bedriuwen, en hege produktiviteit yn yndividuen, fereasket lege nivo's fan stress om trochgeande kreatyf en metodysk tinken te stypjen. En it is ekstreem lestich om kreatyf, op diskusje basearre wurk te dwaan as jo jo konstant soargen meitsje oer wat jo kollega's te sizzen hawwe oer elke rigel fan jo koade.

Negativiteit is engineering popkultuer

Tsjintwurdich wurdt mear omtinken jûn oan de hâlding fan yngenieurs as ea earder. Yn yngenieursorganisaasjes is de regel "Gjin hoarnen". Op Twitter ferskine hieltyd mear anekdoates en ferhalen oer minsken dy't dit berop ferlitte om't se fijânskip en kweade wil tsjin bûtensteanders net (soe) bliuwe kinne. Sels Linus Torvalds koartlyn ferûntskuldigje jierren fan fijannigens en krityk tsjin oare Linux-ûntwikkelders - dit hat laat ta debat oer de effektiviteit fan dizze oanpak.

Guon ferdigenje noch it rjocht fan Linus om heul kritysk te wêzen - dejingen dy't in protte moatte witte oer de foardielen en neidielen fan "giftige negativiteit". Ja, beskaafdheid is ekstreem wichtich (sels fûneminteel), mar as wy de redenen gearfetsje wêrom't in protte fan ús de útdrukking fan negative mieningen tastean om te feroarjen yn "toksisiteit", lykje dizze redenen paternalistysk as adolesint: "se fertsjinje it om't se idioaten binne ", "hy moat der wis fan wêze dat se it net wer dogge," "as se dat net dien hiene, dan hoegde er net tsjin har te roppen," ensafuorthinne. In foarbyld fan 'e ynfloed fan' e emosjonele reaksjes fan in lieder op in programmearmienskip is it akronym MINASWAN fan 'e Ruby-mienskip - "Matz is moai, dus wy binne aardich."

Ik haw opfallen dat in protte fûleindige foarstanners fan 'e "kill a fool"-oanpak faaks heul soarchje oer de kwaliteit en korrektheid fan' e koade, en identifisearje harsels mei har wurk. Spitigernôch betiizje se faak hurdens mei rigiditeit. It neidiel fan dizze posysje komt út 'e ienfâldige minsklike, mar unproduktive winsk om te fiele superieur oan oaren. Minsken dy't ûnderdompele yn dizze winsk wurde fêst yn it paad fan it tsjuster.

Anger by koade: programmeurs en negativiteit

De wrâld fan programmearring groeit hurd en dringt tsjin de grinzen fan har kontener yn - de wrâld fan net-programmearring (of is de wrâld fan programmearring in kontener foar de wrâld fan net-programmearring? Goede fraach).

As ús yndustry yn in hieltyd tanimmend tempo útwreidet en programmearring tagonkliker wurdt, wurdt de ôfstân tusken "techies" en "normalen" rap ticht. De wrâld fan programmearring wurdt hieltyd mear bleatsteld oan 'e ynterpersoanlike ynteraksjes fan minsken dy't opgroeid binne yn' e isolearre nerd-kultuer fan 'e iere tech-boom, en it binne se dy't de nije wrâld fan programmearring sille foarmje. En nettsjinsteande alle sosjale of generaasjearguminten sil effisjinsje yn 'e namme fan it kapitalisme ferskine yn bedriuwskultuer en ynhierpraktiken: de bêste bedriuwen sille gewoan net ien oannimme dy't net neutraal omgean kin mei oaren, lit stean goede relaasjes hawwe.

Wat ik learde oer negativiteit

As jo ​​​​tefolle negativiteit tastean om jo geast en ynteraksjes mei minsken te kontrolearjen, feroaret yn toxiciteit, dan is it gefaarlik foar produktteams en djoer foar bedriuw. Ik haw ûntelbere projekten sjoen (en heard fan) ûntelbere projekten dy't útinoar foelen en folslein werboud waarden mei grutte kosten, om't ien fertroude ûntwikkelder in wrok hie tsjin de technology, in oare ûntwikkelder, of sels in inkeld bestân keazen om de kwaliteit fan 'e heule codebase te fertsjintwurdigjen.

Negativiteit demoralisearret en ferneatiget ek relaasjes. Ik sil nea ferjitte hoe't in kollega my útskolden foar it pleatsen fan CSS yn 'e ferkearde triem, it fergriemde my en liet my net meardere dagen sammelje myn gedachten. En yn 'e takomst is it net wierskynlik dat sa'n persoan tichtby ien fan myn teams is (mar wa wit, minsken feroarje).

As lêste, de negative letterlik skea oan jo sûnens.

Anger by koade: programmeurs en negativiteit
Ik tink dat dit is hoe't in masterklasse oer glimkes der útsjen moat.

Fansels is dit gjin argumint foar it strieljen fan lok, it ynfoegjen fan tsien miljard emoticons yn elke pull-oanfraach, of nei in masterklasse oer glimkes (nee, no, as dat is wat jo wolle, dan gjin fraach). Negativiteit is in ekstreem wichtich ûnderdiel fan it programmearjen (en it minsklik libben), it sinjalearjen fan kwaliteit, wêrtroch't men gefoelens útdrukke kin en mei meiminsken meidogge. Negativiteit jout ynsjoch en foarsichtigens oan, de djipte fan it probleem. Ik fernimme faaks dat in ûntwikkelder in nij nivo hat berikt as hy begjint ûnleauwe út te drukken yn wat hy earder bang wie en net wis wie. Minsken litte ridlikens en fertrouwen sjen mei har mieningen. Jo kinne de útdrukking fan negativiteit net ôfwize, dat soe Orwelliaansk wêze.

Negatyf moat lykwols dosearre en balansearre wurde mei oare wichtige minsklike kwaliteiten: ynlibbing, geduld, begryp en humor. Jo kinne altyd in persoan fertelle dat hy fergriemd hat sûnder te roppen of te swarren. Underskatte dizze oanpak net: as immen jo sûnder emoasje fertelt dat jo serieus ferkeard hawwe, is it echt eng.

Dy kear, ferskate jierren lyn, spruts de CEO mei my. Wy bepraten de hjoeddeistige status fan it projekt, doe frege hy hoe't ik my fielde. Ik antwurde dat alles goed wie, it projekt beweecht, wy wurken stadich, miskien haw ik wat miste en moast opnij besjoen wurde. Hy sei dat er heard hie dat ik mear pessimistyske gedachten diele mei kollega's op it kantoar, en dat oaren dat ek opfallen hiene. Hy ferklearre dat as ik twifels hie, ik se folslein útdrukke koe oan it management, mar net "nei nimme." As haadyngenieur moat ik der rekken mei hâlde hoe't myn wurden oaren beynfloedzje, om't ik in protte ynfloed haw, sels as ik it net realisearje. En hy fertelde my dit alles heul freonlik, en sei op 't lêst dat as ik dat echt fielde, dan moat ik wierskynlik tinke oer wat ik foar mysels en myn karriêre wol. It wie in ongelooflijk sêfte, get-it-of-get-out-of-your-seat petear. Ik betanke him foar de ynformaasje oer hoe't myn feroare hâlding oer seis moannen fan ynfloed wie op oaren ûngemurken troch my.

It wie in foarbyld fan opmerklik, effektyf behear en de krêft fan in sêfte oanpak. Ik realisearre dat ik allinich folslein leauwen like te hawwen yn it bedriuw en har fermogen om har doelen te berikken, mar yn 'e realiteit spruts en kommunisearre ik mei oaren op in folslein oare manier. Ik realisearre ek dat sels as ik my skeptysk fielde oer it projekt dêr't ik oan wurke, ik myn gefoelens net oan myn kollega's sjen litte soe en pessimisme as in besmetting ferspriede, wat ús kânsen op sukses ferminderje. Ynstee koe ik de echte situaasje agressyf oerbringe oan myn management. En as ik fielde dat se net nei my harken, koe ik myn ûnienens útdrukke troch it bedriuw te ferlitten.

Ik krige in nije kâns doe't ik de funksje fan haad fan beoardieling fan personiel oannaam. As eardere haadyngenieur bin ik tige foarsichtich mei it uterjen fan myn mieningen oer ús (altyd ferbetterjende) legacy-koade. Om in feroaring goed te keuren, moatte jo jo de hjoeddeistige situaasje foarstelle, mar jo sille nearne komme as jo yn moanjen, oanfallen, of sa omgean. Uteinlik bin ik hjir om in taak te foltôgjen en moat net kleie oer de koade om it te begripen, te evaluearjen of it te reparearjen.

Yn feite, hoe mear ik kontrolearje myn emosjonele reaksje op de koade, hoe mear ik begryp wat it koe wurde en de minder betizing ik fiel. Doe't ik mysels mei selfbeheersing utere ("d'r moat hjir romte wêze foar fierdere ferbettering"), makke ik mysels en oaren bliid en naam ik de situaasje net al te serieus. Ik realisearre dat ik kin stimulearje en ferminderjen negativity by oaren troch in wêzen perfekt (ferfelend?) ridlik ("jo hawwe gelyk, dizze koade is frij min, mar wy sille ferbetterje it"). Ik bin bliid om te sjen hoe fier ik kin gean op it Zen-paad.

Yn wêzen lear en lear ik hieltyd in wichtige les: it libben is te koart om konstant lilk en pine te wêzen.

Anger by koade: programmeurs en negativiteit

Boarne: www.habr.com

Add a comment