Zemërimi ndaj kodit: programuesit dhe negativiteti

Zemërimi ndaj kodit: programuesit dhe negativiteti

Unë jam duke kërkuar në një pjesë të kodit. Ky mund të jetë kodi më i keq që kam parë ndonjëherë. Për të përditësuar vetëm një rekord në bazën e të dhënave, ai merr të gjitha të dhënat në koleksion dhe më pas dërgon një kërkesë përditësimi për çdo regjistrim në bazën e të dhënave, edhe ato që nuk kanë nevojë të përditësohen. Ekziston një funksion harte që thjesht kthen vlerën e kaluar në të. Ekzistojnë teste të kushtëzuara për variabla me të njëjtën vlerë në dukje, të emërtuara në stile të ndryshme (firstName и first_name). Për çdo PËRDITËSIM, kodi dërgon një mesazh në një radhë të ndryshme, e cila trajtohet nga një funksion tjetër pa server, por që kryen të gjithë punën për një koleksion të ndryshëm në të njëjtën bazë të dhënash. A përmenda se ky funksion pa server është nga një "arkitekturë e orientuar nga shërbimi" e bazuar në cloud që përmban mbi 100 funksione në mjedis?

Si ishte madje e mundur të bëhej kjo? Mbuloj fytyrën dhe qaj dukshëm nga e qeshura. Kolegët e mi pyesin se çfarë ka ndodhur dhe unë e ritregoj me ngjyra Hitet më të këqija të BulkDataImporter.js 2018. Të gjithë më tundin kokën me simpati dhe bien dakord: si mund ta bënin këtë me ne?

Negativiteti: një mjet emocional në një kulturë programuesi

Negativiteti luan një rol të rëndësishëm në programim. Është ngulitur në kulturën tonë dhe përdoret për të ndarë atë që kemi mësuar ("ju nuk e bëni do ta besoni, si ishte ai kod!”), për të shprehur simpatinë përmes zhgënjimit (“Zot, PSE e bëj këtë?”), për të treguar veten (“Unë kurrë nuk do të kështu nuk e bëri atë”), për t’i vënë fajin dikujt tjetër (“ne dështuam për shkak të kodit të tij, i cili është i pamundur të mbahet”), ose, siç është zakon në organizatat më “toksike”, për të kontrolluar të tjerët përmes një ndjenja e turpit ("Për çfarë po mendonit?" ? saktë").

Zemërimi ndaj kodit: programuesit dhe negativiteti

Negativiteti është kaq i rëndësishëm për programuesit sepse është një mënyrë shumë efektive për të përcjellë vlerën. Dikur ndoqa një kamp programimi dhe praktika standarde e rrënjosjes së një kulture të industrisë te studentët ishte të furnizoja bujarisht meme, histori dhe video, më të njohurat prej të cilave të shfrytëzuara zhgënjimi i programuesve kur përballen me keqkuptimin e njerëzve. Është mirë të jesh në gjendje të përdorësh mjete emocionale për të identifikuar të Mirin, të Keqin, të Shëmtuarin, Mos e bëj këtë, Kurrë fare. Është e nevojshme të përgatiten të ardhurit për faktin se ata ndoshta do të keqkuptohen nga kolegët që janë larg IT. Që miqtë e tyre do të fillojnë t'u shesin idetë e aplikacioneve miliona dollarëshe. Se atyre do t'u duhet të enden nëpër labirinthet e pafund të kodit të vjetëruar me një tufë minotaurësh në qoshe.

Kur mësojmë për herë të parë të programojmë, kuptimi ynë i thellësisë së "përvojës së programimit" bazohet në vëzhgimin e reagimeve emocionale të njerëzve të tjerë. Kjo mund të shihet qartë nga postimet në sabe ProgrammerHumor, ku rrinë shumë programues të rinj. Shumë humoristike janë, në një shkallë ose në një tjetër, të ngjyrosura me nuanca të ndryshme negativiteti: zhgënjim, pesimizëm, indinjatë, përbuzje dhe të tjera. Dhe nëse kjo nuk ju duket e mjaftueshme, lexoni komentet.

Zemërimi ndaj kodit: programuesit dhe negativiteti

Vura re se ndërsa programuesit fitojnë përvojë, ata bëhen gjithnjë e më negativë. Fillestarët, të pavetëdijshëm për vështirësitë që i presin, fillojnë me entuziazëm dhe gatishmëri për të besuar se shkaku i këtyre vështirësive është thjesht mungesa e përvojës dhe njohurive; dhe përfundimisht ata do të përballen me realitetin e gjërave.

Koha kalon, ata fitojnë përvojë dhe bëhen të aftë të dallojnë kodin e mirë nga i keqi. Dhe kur vjen ai moment, programuesit e rinj ndjejnë zhgënjimin e punës me kod dukshëm të keq. Dhe nëse ata punojnë në një ekip (në distancë ose personalisht), ata shpesh adoptojnë zakonet emocionale të kolegëve më me përvojë. Kjo shpesh çon në një rritje të negativitetit, sepse të rinjtë tani mund të flasin me mend për kodin dhe ta ndajnë atë në të keq dhe të mirë, duke treguar kështu se janë "në dijeni". Kjo përforcon më tej negativitetin: nga zhgënjimi, është e lehtë të shkosh mirë me kolegët dhe të bëhesh pjesë e një grupi; kritikimi i Bad Code rrit statusin dhe profesionalizmin tënd në sytë e të tjerëve: njerëzit që shprehin mendime negative shpesh perceptohen si më inteligjentë dhe më kompetent.

Rritja e negativitetit nuk është domosdoshmërisht një gjë e keqe. Diskutimet e programimit, ndër të tjera, janë jashtëzakonisht të fokusuara në cilësinë e kodit të shkruar. Ajo që është kodi përcakton plotësisht funksionin që synohet të bëjë (pajisja, rrjeti, etj. mënjanë), prandaj është e rëndësishme të jeni në gjendje të shprehni mendimin tuaj për atë kod. Pothuajse të gjitha diskutimet bazohen në faktin nëse kodi është mjaft i mirë, dhe në dënimin e vetë manifestimeve të kodit të keq në terma, konotacioni emocional i të cilëve karakterizon cilësinë e kodit:

  • "Ka shumë mospërputhje logjike në këtë modul, ai është një kandidat i mirë për optimizim të konsiderueshëm të performancës."
  • "Ky modul është shumë i keq, ne duhet ta rifaktojmë atë."
  • "Ky modul nuk ka kuptim, ai duhet të rishkruhet."
  • "Ky modul është i neveritshëm, duhet të rregullohet."
  • "Kjo është një copë dash, jo një modul, nuk kishte nevojë të shkruhej fare, çfarë dreqin po mendonte autori i tij."

Nga rruga, është ky "lëshim emocional" që i bën zhvilluesit ta quajnë kodin "sexy", gjë që rrallë është e drejtë - përveç nëse punoni në PornHub.

Problemi është se njerëzit janë krijesa të çuditshme, të shqetësuara, emocionale dhe perceptimi dhe shprehja e çdo emocioni na ndryshon: në fillim në mënyrë delikate, por me kalimin e kohës, në mënyrë dramatike.

Një shpat rrëshqitës i shqetësuar negativiteti

Disa vite më parë, unë isha drejtues i ekipit joformal dhe intervistova një zhvillues. Na pëlqeu shumë: ai ishte i zgjuar, bënte pyetje të mira, ishte i aftë për teknologjinë dhe përshtatej mirë me kulturën tonë. Më bëri përshtypje veçanërisht pozitiviteti i tij dhe sa iniciativë dukej. Dhe e punësova.

Në atë kohë, unë kisha disa vjet që punoja në kompani dhe ndjeva se kultura jonë nuk ishte shumë efektive. Ne u përpoqëm ta lëshonim produktin dy herë, tre herë dhe disa herë të tjera përpara se të mbërrija, gjë që çoi në shpenzime të mëdha për ripunim, gjatë të cilave nuk kishim asgjë për të treguar përveç netëve të gjata, afateve të ngushta dhe produkteve që funksiononin. Dhe megjithëse isha ende duke punuar shumë, isha skeptik për afatin e fundit që na ishte caktuar nga menaxhmenti. Dhe ai u betua rastësisht kur diskutonte disa aspekte të kodit me kolegët e mi.

Pra, nuk ishte për t'u habitur - megjithëse u befasova - që disa javë më vonë, i njëjti zhvillues i ri tha të njëjtat gjëra negative që bëra (përfshirë sharjet). E kuptova se ai do të sillej ndryshe në një shoqëri tjetër me një kulturë tjetër. Ai thjesht u përshtat me kulturën që krijova unë. Më pushtoi një ndjenjë faji. Për shkak të përvojës sime subjektive, i futa pesimizmin një të sapoardhuri, të cilin e perceptova si krejtësisht të ndryshëm. Edhe nëse ai me të vërtetë nuk ishte i tillë dhe thjesht po vinte një pamje për të treguar se mund të përshtatej, unë ia detyrova qëndrimin tim të ndyrë. Dhe çdo gjë e thënë, qoftë edhe me shaka apo kalimthi, ka mënyrën e keqe të shndërrimit në atë që besohet.

Zemërimi ndaj kodit: programuesit dhe negativiteti

Mënyrat negative

Le të kthehemi te ish-programuesit tanë të rinj, të cilët kanë fituar pak mençuri dhe përvojë: ata janë njohur më shumë me industrinë e programimit dhe e kuptojnë se kodi i keq është kudo, ai nuk mund të shmanget. Ndodh edhe në kompanitë më të avancuara të fokusuara në cilësi (dhe më lejoni të vërej: me sa duket, moderniteti nuk mbron nga kodi i keq).

Skenar i mirë. Me kalimin e kohës, zhvilluesit fillojnë të pranojnë se kodi i keq është një realitet i softuerit dhe se detyra e tyre është ta përmirësojnë atë. Dhe se nëse kodi i keq nuk mund të shmanget, atëherë nuk ka kuptim të bëjmë bujë për të. Ata marrin rrugën e Zenit, duke u përqendruar në zgjidhjen e problemeve apo detyrave që përballen me ta. Ata mësojnë se si të matin dhe komunikojnë me saktësi cilësinë e softuerit pronarëve të bizneseve, të shkruajnë vlerësime të bazuara në vitet e tyre të përvojës dhe në fund të marrin shpërblime bujare për vlerën e tyre të pabesueshme dhe të vazhdueshme për biznesin. Ata e bëjnë punën e tyre aq mirë sa paguhen 10 milionë dollarë bonus dhe dalin në pension për të bërë atë që duan për pjesën tjetër të jetës së tyre (ju lutemi mos e merrni si të mirëqenë).

Zemërimi ndaj kodit: programuesit dhe negativiteti

Një skenar tjetër është rruga e errësirës. Në vend që të pranojnë kodin e keq si një pashmangshmëri, zhvilluesit marrin përsipër të thërrasin gjithçka të keqe në botën e programimit, në mënyrë që ta kapërcejnë atë. Ata refuzojnë të përmirësojnë kodin e keq ekzistues për shumë arsye të mira: “njerëzit duhet të dinë më shumë dhe të mos jenë kaq budallenj”; "është e pakëndshme"; "Kjo është e keqe për biznesin"; "Kjo dëshmon se sa i zgjuar jam"; "Nëse nuk ju them se çfarë kodi i keq është ky, e gjithë kompania do të bjerë në oqean", e kështu me radhë.

Me siguri të paaftë për të zbatuar ndryshimet që duan, sepse biznesi për fat të keq duhet të vazhdojë të zhvillohet dhe nuk mund të shpenzojë kohë duke u shqetësuar për cilësinë e kodit, këta njerëz fitojnë një reputacion si ankuesit. Ata mbahen për kompetencën e tyre të lartë, por shtyhen në margjinat e kompanisë, ku nuk do të mërzitin shumë njerëz, por do të mbështesin gjithsesi funksionimin e sistemeve kritike. Pa akses në mundësi të reja zhvillimi, ata humbasin aftësitë dhe pushojnë së përmbushur kërkesat e industrisë. Negativiteti i tyre kthehet në hidhërim të hidhur, dhe si rezultat ata ushqejnë egon e tyre duke debatuar me studentë njëzet vjeçarë për udhëtimin që ka bërë teknologjia e tyre e preferuar e vjetër dhe pse është ende kaq e nxehtë. Ata përfundojnë duke dalë në pension dhe duke jetuar pleqërinë e tyre duke sharë zogjtë.

Realiteti ndoshta qëndron diku në mes të këtyre dy ekstremeve.

Disa kompani kanë qenë jashtëzakonisht të suksesshme në krijimin e kulturave jashtëzakonisht negative, të fshehta, me vullnet të fortë (si Microsoft para saj dekadë e humbur) - shpesh këto janë kompani me produkte që përshtaten në mënyrë të përkryer me tregun dhe nevojën për t'u rritur sa më shpejt; ose kompani me një hierarki komandimi dhe kontrolli (Apple në vitet më të mira të Jobs), ku secili bën atë që i thuhet. Megjithatë, kërkimet moderne të biznesit (dhe sensi i shëndoshë) sugjerojnë se zgjuarsia maksimale, e cila çon në inovacion në kompani dhe produktivitet të lartë tek individët, kërkon nivele të ulëta stresi për të mbështetur të menduarit e vazhdueshëm krijues dhe metodik. Dhe është jashtëzakonisht e vështirë të bësh punë krijuese, të bazuar në diskutim, nëse shqetësohesh vazhdimisht për atë që do të thonë kolegët për çdo rresht të kodit tënd.

Negativiteti është inxhinieri e kulturës pop

Sot qëndrimit të inxhinierëve i kushtohet më shumë vëmendje se kurrë më parë. Në organizatat inxhinierike, rregulli "Pa brirë". Gjithnjë e më shumë anekdota dhe histori po shfaqen në Twitter për njerëz që u larguan nga ky profesion sepse nuk mund (nuk do të) vazhdonin të duronin armiqësinë dhe vullnetin e keq ndaj të huajve. Edhe Linus Torvalds kohët e fundit kërkoi falje vite armiqësie dhe kritikash ndaj zhvilluesve të tjerë të Linux - kjo ka çuar në debate rreth efektivitetit të kësaj qasjeje.

Disa ende mbrojnë të drejtën e Linusit për të qenë shumë kritik - ata që duhet të dinë shumë për avantazhet dhe disavantazhet e "negativitetit toksik". Po, civilizimi është jashtëzakonisht i rëndësishëm (madje edhe themelor), por nëse përmbledhim arsyet pse shumë prej nesh lejojnë që shprehja e mendimeve negative të kthehet në "toksicitet", këto arsye duken paternaliste ose adoleshente: "ata e meritojnë sepse janë idiotë. ", "ai duhet të jetë i sigurt se nuk do ta bëjnë më", "nëse nuk do ta kishin bërë këtë, ai nuk do të duhej t'u bërtiste atyre", etj. Një shembull i ndikimit që reagimet emocionale të një drejtuesi kanë në një komunitet programues është akronimi i komunitetit Ruby MINASWAN - "Matz është i këndshëm ndaj ne jemi të mirë".

Kam vënë re se shumë përkrahës të flaktë të qasjes "vrit një budalla" shpesh kujdesen shumë për cilësinë dhe korrektësinë e kodit, duke e identifikuar veten me punën e tyre. Fatkeqësisht, ata shpesh ngatërrojnë ngurtësinë me ngurtësinë. Disavantazhi i këtij pozicioni buron nga dëshira e thjeshtë njerëzore, por joproduktive për t'u ndjerë superior ndaj të tjerëve. Njerëzit që zhyten në këtë dëshirë mbeten të mbërthyer në shtegun e errësirës.

Zemërimi ndaj kodit: programuesit dhe negativiteti

Bota e programimit po rritet me shpejtësi dhe po shtyn kundër kufijve të kontejnerit të saj - botën e mosprogramimit (apo bota e programimit është një enë për botën e joprogramimit? Pyetje e mirë).

Ndërsa industria jonë zgjerohet me një ritëm gjithnjë në rritje dhe programimi bëhet më i aksesueshëm, distanca midis "teknikëve" dhe "normaleve" po mbyllet me shpejtësi. Bota e programimit është gjithnjë e më e ekspozuar ndaj ndërveprimeve ndërpersonale të njerëzve që u rritën në kulturën e izoluar të çuditshëm të bumit të hershëm të teknologjisë dhe janë ata që do të formësojnë botën e re të programimit. Dhe pavarësisht nga çdo argument social apo brezash, efikasiteti në emër të kapitalizmit do të shfaqet në kulturën e kompanisë dhe praktikat e punësimit: kompanitë më të mira thjesht nuk do të punësojnë askënd që nuk mund të ndërveprojë në mënyrë neutrale me të tjerët, e lëre më të ketë marrëdhënie të mira.

Çfarë mësova për negativitetin

Nëse lejoni që shumë negativitet të kontrollojë mendjen tuaj dhe ndërveprimet me njerëzit, duke u kthyer në toksicitet, atëherë është i rrezikshëm për ekipet e produkteve dhe i shtrenjtë për biznesin. Unë kam parë (dhe dëgjuar për) projekte të panumërta që u shkatërruan dhe u rindërtuan plotësisht me shpenzime të mëdha, sepse një zhvillues i besuar kishte inat kundër teknologjisë, një zhvillues tjetër ose edhe një skedar të vetëm të zgjedhur për të përfaqësuar cilësinë e të gjithë bazës së kodeve.

Negativiteti gjithashtu demoralizon dhe shkatërron marrëdhëniet. Nuk do ta harroj kurrë sesi një koleg më qortoi për futjen e CSS në skedarin e gabuar, më mërziti dhe nuk më lejoi të mbledh mendimet e mia për disa ditë. Dhe në të ardhmen, nuk ka gjasa të lejoj që një person i tillë të jetë pranë një prej ekipeve të mia (por kush e di, njerëzit ndryshojnë).

Së fundi, negative fjalë për fjalë dëmton shëndetin tuaj.

Zemërimi ndaj kodit: programuesit dhe negativiteti
Unë mendoj se kjo është se si duhet të duket një klasë master mbi buzëqeshjet.

Sigurisht, ky nuk është një argument në favor të shkëlqimit të lumturisë, futjes së dhjetë miliardë emotikonave në çdo kërkesë tërheqëse, ose shkuarjes në një master klasë për buzëqeshje (jo, mirë, nëse kjo është ajo që dëshironi, atëherë nuk ka problem). Negativiteti është një pjesë jashtëzakonisht e rëndësishme e programimit (dhe jetës njerëzore), duke sinjalizuar cilësinë, duke e lejuar dikë të shprehë ndjenjat dhe të tregojë dhembshuri me njerëzit e tjerë. Negativiteti tregon mprehtësinë dhe maturinë, thellësinë e problemit. Shpesh vërej se një zhvillues ka arritur një nivel të ri kur fillon të shprehë mosbesim në atë që më parë ishte i ndrojtur dhe i pasigurt. Njerëzit tregojnë arsyeshmëri dhe besim me opinionet e tyre. Nuk mund të hedhësh poshtë shprehjen e negativitetit, kjo do të ishte orwelliane.

Megjithatë, negativiteti duhet të dozohet dhe të balancohet me cilësi të tjera të rëndësishme njerëzore: ndjeshmëri, durim, mirëkuptim dhe humor. Gjithmonë mund t'i thuash një personi që e ka ngacmuar pa bërtitur apo sharë. Mos e nënvlerësoni këtë qasje: nëse dikush ju thotë pa asnjë emocion se e keni ngatërruar seriozisht, është vërtet e frikshme.

Atë herë, disa vite më parë, CEO foli me mua. Ne diskutuam statusin aktual të projektit, pastaj ai më pyeti se si po ndihesha. Unë u përgjigja se gjithçka ishte në rregull, projekti po lëvizte, ne po punonim ngadalë, ndoshta më mungonte diçka dhe duhej të rishikoja. Ai tha se më kishte dëgjuar të ndaja mendime më pesimiste me kolegët në zyrë dhe se këtë e kishin vënë re edhe të tjerët. Ai shpjegoi se nëse do të kisha dyshime, mund t'i shprehja plotësisht menaxhmentit, por jo t'i "heqja". Si një inxhinier kryesor, duhet të jem i ndërgjegjshëm se si fjalët e mia ndikojnë tek të tjerët, sepse kam shumë ndikim edhe nëse nuk e kuptoj. Dhe ai më tha të gjitha këto me shumë dashamirësi, dhe në fund tha se nëse ndihem vërtet kështu, atëherë ndoshta duhet të mendoj se çfarë dua për veten time dhe karrierën time. Ishte një bisedë tepër e butë, dilni ose dilni nga vendi juaj. E falënderova për informacionin se si qëndrimi im i ndryshuar gjatë gjashtë muajve po ndikonte tek të tjerët pa u vënë re nga unë.

Ishte një shembull i menaxhimit të jashtëzakonshëm, efektiv dhe fuqisë së një qasjeje të butë. Kuptova se vetëm dukej se kisha besim të plotë te kompania dhe aftësia e saj për të arritur qëllimet e saj, por në realitet fola dhe komunikoja me të tjerët në një mënyrë krejtësisht të ndryshme. Kuptova gjithashtu se edhe nëse ndihesha skeptik për projektin që po punoja, nuk duhet t'i tregoja ndjenjat e mia kolegëve të mi dhe të përhapja pesimizmin si një ngjitës, duke ulur shanset tona për sukses. Në vend të kësaj, unë mund t'ia transmetoja në mënyrë agresive situatën reale menaxhmentit tim. Dhe nëse ndjeja se nuk po më dëgjonin, mund të shprehja mosmarrëveshjen time duke u larguar nga kompania.

Mora një mundësi të re kur mora detyrën e shefit të vlerësimit të personelit. Si një ish-kryinxhinier, jam shumë i kujdesshëm për të shprehur mendimet e mia për kodin tonë të trashëgimisë (gjithnjë në përmirësim). Për të miratuar një ndryshim, duhet të imagjinoni situatën aktuale, por nuk do të arrini askund nëse zhyteni në rënkime, sulme ose të ngjashme. Në fund të fundit, unë jam këtu për të përfunduar një detyrë dhe nuk duhet të ankohem për kodin për ta kuptuar, vlerësuar ose rregulluar.

Në fakt, sa më shumë e kontrolloj reagimin tim emocional ndaj kodit, aq më shumë e kuptoj se çfarë mund të bëhet dhe aq më pak konfuzion ndjej. Kur u shpreha me përmbajtje (“këtu duhet të ketë vend për përmirësime të mëtejshme”), po kënaqesha veten dhe të tjerët dhe nuk e merrja shumë seriozisht situatën. Kuptova se mund të stimuloja dhe zvogëloja negativitetin tek të tjerët duke qenë krejtësisht (i bezdisshëm?) i arsyeshëm ("keni të drejtë, ky kod është shumë i keq, por ne do ta përmirësojmë"). Më vjen mirë të shoh se sa larg mund të shkoj në rrugën Zen.

Në thelb, unë vazhdimisht po mësoj dhe po rimësoj një mësim të rëndësishëm: jeta është shumë e shkurtër për të qenë vazhdimisht i zemëruar dhe me dhimbje.

Zemërimi ndaj kodit: programuesit dhe negativiteti

Burimi: www.habr.com

Shto një koment