Reiði við kóða: forritarar og neikvæðni

Reiði við kóða: forritarar og neikvæðni

Ég er að skoða kóða. Þetta er kannski versti kóði sem ég hef séð. Til að uppfæra aðeins eina færslu í gagnagrunninum, sækir það allar færslur í safninu og sendir síðan uppfærslubeiðni á hverja skrá í gagnagrunninum, jafnvel þær sem ekki þarf að uppfæra. Það er kortaaðgerð sem einfaldlega skilar gildinu sem er sent til þess. Það eru skilyrt próf fyrir breytur með sama gildi, bara nefndar í mismunandi stílum (firstName и first_name). Fyrir hverja UPDATE sendir kóðinn skilaboð í aðra biðröð, sem er meðhöndluð af annarri netþjónslausri aðgerð, en sem gerir alla vinnu fyrir mismunandi safn í sama gagnagrunni. Nefndi ég að þessi netþjónalausa aðgerð er úr skýjatengdum „þjónustumiðuðum arkitektúr“ sem inniheldur yfir 100 aðgerðir í umhverfinu?

Hvernig var jafnvel hægt að gera þetta? Ég hyl andlit mitt og grét sýnilega í gegnum hlátur minn. Samstarfsmenn mínir spyrja hvað hafi gerst og ég endursegi það í litum Verstu heimsóknir BulkDataImporter.js 2018. Allir kinka kolli til mín með samúð og eru sammála: hvernig gátu þeir gert okkur þetta?

Neikvæðni: tilfinningalegt tæki í forritaramenningu

Neikvæðni gegnir mikilvægu hlutverki í forritun. Það er innbyggt í menningu okkar og er notað til að deila því sem við höfum lært („þú gerir það ekki þú munt trúa því, hvernig var þessi kóði!“), að tjá samúð með gremju („Guð, AFHVERJU gera það?”), að sýna sjálfan sig („Ég myndi aldrei svo gerði það ekki“), til að kenna einhverjum öðrum um („við mistókst vegna kóða hans, sem er ómögulegt að viðhalda“), eða, eins og tíðkast í „eitruðustu“ stofnunum, að stjórna öðrum í gegnum skömm („Hvað varstu meira að segja að hugsa um?” ? rétt“).

Reiði við kóða: forritarar og neikvæðni

Neikvæðni er svo mikilvæg fyrir forritara vegna þess að það er mjög áhrifarík leið til að miðla gildi. Ég fór einu sinni í forritunarbúðir og hefðbundin venja við að innræta iðnmenningu hjá nemendum var að útvega rausnarlega memes, sögur og myndbönd, en þau vinsælustu voru nýtt. gremju forritara þegar þeir standa frammi fyrir misskilningi fólks. Það er gott að geta notað tilfinningaleg verkfæri til að bera kennsl á hið góða, slæma, ljóta, ekki gera það, aldrei. Nauðsynlegt er að undirbúa nýliða fyrir þá staðreynd að þeir verða líklega misskilnir af samstarfsmönnum sem eru fjarri upplýsingatækni. Að vinir þeirra fari að selja þeim hugmyndir fyrir milljón dollara app. Að þeir þurfi að ráfa um endalaus völundarhús af úreltum kóða með fullt af mínótárum handan við hornið.

Þegar við lærum fyrst að forrita byggist skilningur okkar á dýpt „forritunarupplifunar“ á því að fylgjast með tilfinningalegum viðbrögðum annarra. Þetta sést vel af færslum í sabe ForritariHumor, þar sem margir nýliði forritarar hanga. Margir gamansamir eru, að einu eða öðru leyti, litaðir mismunandi tónum neikvæðni: vonbrigðum, svartsýni, reiði, yfirlæti og fleiru. Og ef þér finnst þetta ekki nóg skaltu lesa athugasemdirnar.

Reiði við kóða: forritarar og neikvæðni

Ég tók eftir því að eftir því sem forritarar öðlast reynslu verða þeir sífellt neikvæðari. Byrjendur, sem vita ekki af erfiðleikunum sem bíða þeirra, byrja með eldmóði og vilja til að trúa því að orsök þessara erfiðleika sé einfaldlega skortur á reynslu og þekkingu; og að lokum munu þeir standa frammi fyrir veruleika hlutanna.

Tíminn líður, þeir öðlast reynslu og verða færir um að greina Good code frá Bad. Og þegar sú stund kemur, finna ungir forritarar fyrir gremju að vinna með augljóslega slæman kóða. Og ef þeir vinna í teymi (fjarlægð eða í eigin persónu) tileinka þeir sér oft tilfinningalega venjur reyndari samstarfsmanna. Þetta leiðir oft til aukinnar neikvæðni, vegna þess að ungt fólk getur nú talað yfirvegað um kóðann og skipt honum í slæmt og gott og þannig sýnt að það sé „meðvitað“. Þetta styrkir enn frekar hið neikvæða: af vonbrigðum er auðvelt að umgangast samstarfsmenn og verða hluti af hópi; að gagnrýna Bad Code eykur stöðu þína og fagmennsku í augum annarra: fólk sem lætur í ljós neikvæðar skoðanir er oft talið gáfulegra og hæfara.

Að auka neikvæðni er ekki endilega slæmt. Í umræðum um forritun er meðal annars ákaflega lögð áhersla á gæði kóðans sem skrifaður er. Hvað kóðinn er skilgreinir algjörlega aðgerðina sem honum er ætlað að gera (vélbúnaður, netkerfi o.s.frv. fyrir utan), svo það er mikilvægt að geta sagt skoðun sína á þeim kóða. Næstum allar umræður snúast um hvort kóðinn sé nógu góður, og að fordæma sjálfar birtingarmyndir slæms kóða með tilliti til tilfinningalegrar merkingar sem einkennir gæði kóðans:

  • "Það er mikið af rökfræðilegu ósamræmi í þessari einingu, hún er góður kandídat fyrir verulega hagræðingu í frammistöðu."
  • „Þessi eining er frekar slæm, við þurfum að endurbyggja hana.
  • "Þessi eining er ekki skynsamleg, það þarf að endurskrifa hana."
  • „Þessi eining er ógeð, það þarf að laga hana.“
  • „Þetta er hrútur, ekki eining, það þurfti alls ekki að skrifa það, hvað í fjandanum var höfundur þess að hugsa.

Við the vegur, það er þessi "tilfinningalega útgáfa" sem fær forritara til að kalla kóðann "kynþokkafullan", sem er sjaldan sanngjarnt - nema þú vinnur á PornHub.

Vandamálið er að fólk er undarlegt, eirðarlaust, tilfinningaverur og skynjun og tjáning hvers kyns tilfinningar breytir okkur: í fyrstu lúmskur, en með tímanum, verulega.

Vandræðagangur neikvæðni

Fyrir nokkrum árum var ég óformlegur teymisstjóri og tók viðtal við þróunaraðila. Okkur líkaði mjög við hann: hann var klár, spurði góðra spurninga, var tæknivæddur og féll vel inn í menningu okkar. Ég var sérstaklega hrifinn af jákvæðni hans og hversu framtakssamur hann virtist. Og ég réði hann.

Á þeim tíma hafði ég starfað í fyrirtækinu í nokkur ár og fannst menningin okkar ekki vera mjög áhrifarík. Við reyndum að koma vörunni á markað tvisvar, þrisvar sinnum og nokkrum sinnum í viðbót áður en ég kom, sem leiddi til mikils kostnaðar við endurvinnslu, þar sem við höfðum ekkert að sýna nema langar nætur, þröngir frestir og vörur sem virkuðu. Og þó ég væri enn að vinna hörðum höndum var ég efins um síðasta frest sem stjórnendur úthlutaðu okkur. Og hann blótaði óspart þegar hann ræddi suma þætti kóðans við samstarfsmenn mína.

Svo það kom ekki á óvart - þó ég hafi verið hissa - að nokkrum vikum síðar sagði þessi sami nýi verktaki sömu neikvæðu hlutina og ég gerði (þar á meðal blótsyrði). Ég áttaði mig á því að hann myndi haga sér öðruvísi í öðru fyrirtæki með aðra menningu. Hann lagaði sig bara að menningunni sem ég skapaði. Ég var yfirbugaður af sektarkennd. Vegna huglægrar reynslu minnar innrætti ég svartsýni hjá nýliða sem ég upplifði sem allt öðruvísi. Jafnvel þó að hann væri í alvörunni ekki svona og væri bara að sýna fram á að hann gæti passað inn þá þvingaði ég upp á hann skítaviðhorfið mitt. Og allt sem sagt er, jafnvel í gríni eða framhjáhlaupi, hefur þann slæma hátt að breytast í það sem trúað er.

Reiði við kóða: forritarar og neikvæðni

Neikvæðar leiðir

Snúum okkur aftur til fyrrverandi nýliðaforritara okkar, sem hafa öðlast smá visku og reynslu: þeir hafa kynnst forritunariðnaðinum betur og skilja að slæmur kóði er alls staðar, það er ekki hægt að forðast hann. Það gerist jafnvel í fullkomnustu fyrirtækjum sem einbeita sér að gæðum (og ég vil taka það fram: greinilega verndar nútímann ekki gegn slæmum kóða).

Gott handrit. Með tímanum byrja þróunaraðilar að viðurkenna að slæmur kóða er raunveruleiki hugbúnaðar og að starf þeirra sé að bæta hann. Og að ef ekki er hægt að komast hjá slæmum kóða, þá er ekkert mál að gera læti um það. Þeir taka leið Zen, einbeita sér að því að leysa vandamál eða verkefni sem standa frammi fyrir þeim. Þeir læra hvernig á að mæla nákvæmlega og miðla hugbúnaðargæði til eigenda fyrirtækja, skrifa vel rökstuddar áætlanir byggðar á margra ára reynslu þeirra og fá að lokum rausnarleg umbun fyrir ótrúlegt og viðvarandi gildi þeirra fyrir fyrirtækið. Þeir vinna vinnuna sína svo vel að þeir fá greidda 10 milljónir dollara í bónusa og hætta störfum til að gera það sem þeir vilja það sem eftir er ævinnar (vinsamlegast ekki taka því sem sjálfsögðum hlut).

Reiði við kóða: forritarar og neikvæðni

Önnur atburðarás er leið myrkursins. Í stað þess að samþykkja slæman kóða sem óumflýjanleika, taka verktaki það að sér að kalla út allt slæmt í forritunarheiminum svo þeir geti sigrast á því. Þeir neita að bæta núverandi slæman kóða af mörgum góðum ástæðum: "fólk ætti að vita meira og ekki vera svona heimskt"; "það er óþægilegt"; "þetta er slæmt fyrir fyrirtæki"; „þetta sannar hversu klár ég er“; „ef ég segi þér ekki hvað þetta er ömurlegur kóða, mun allt fyrirtækið falla í hafið,“ og svo framvegis.

Örugglega ekki hægt að innleiða þær breytingar sem þeir vilja vegna þess að fyrirtækið verður því miður að halda áfram að þróast og getur ekki eytt tíma í að hafa áhyggjur af gæðum kóðans, þetta fólk öðlast orðspor sem kvartendur. Þeim er haldið fyrir mikla hæfni en er ýtt út á jaðar fyrirtækisins þar sem þeir munu ekki ónáða marga, en munu samt styðja við rekstur mikilvægra kerfa. Án aðgangs að nýjum þróunarmöguleikum missa þeir færni og hætta að mæta kröfum iðnaðarins. Neikvæðni þeirra breytist í biturleika og fyrir vikið næra þeir egóið sitt með því að rífast við tuttugu ára gamla nemendur um ferðina sem uppáhalds gamla tæknin þeirra hefur farið í og ​​hvers vegna hún er enn svo heit. Þeir fara á eftirlaun og lifa út ellina með því að blóta fuglum.

Raunveruleikinn liggur líklega einhvers staðar á milli þessara tveggja öfga.

Sumum fyrirtækjum hefur tekist mjög vel að skapa afar neikvæða, einangraða, viljasterka menningu (eins og Microsoft áður tapaður áratugur) - oft eru þetta fyrirtæki með vörur sem passa fullkomlega á markaðinn og þörfina á að vaxa eins hratt og mögulegt er; eða fyrirtæki með stigveldi í stjórn og eftirliti (Apple á bestu árum starfa), þar sem allir gera það sem þeim er sagt. Hins vegar benda nútíma viðskiptarannsóknir (og skynsemi) til þess að hámarks hugvitssemi, sem leiðir til nýsköpunar í fyrirtækjum og mikillar framleiðni hjá einstaklingum, krefjist lágs streitu til að styðja við áframhaldandi skapandi og aðferðafræðilega hugsun. Og það er ákaflega erfitt að vinna skapandi, umræðutengda vinnu ef þú hefur stöðugar áhyggjur af því hvað samstarfsmenn þínir munu hafa að segja um hverja línu í kóðanum þínum.

Neikvæðni er verkfræðileg poppmenning

Í dag er hugað meira að viðhorfi verkfræðinga en nokkru sinni fyrr. Í verkfræðistofnunum er reglan „Engin horn". Sífellt fleiri sögur og sögur birtast á Twitter um fólk sem yfirgaf þetta starf vegna þess að það gæti ekki (myndi) haldið áfram að þola andúð og illvilja í garð utanaðkomandi. Meira að segja Linus Torvalds nýlega beðist afsökunar margra ára fjandskap og gagnrýni í garð annarra Linux forritara - þetta hefur leitt til umræðu um árangur þessarar nálgunar.

Sumir verja enn rétt Linusar til að vera mjög gagnrýnir – þeir sem ættu að vita mikið um kosti og galla „eitrað neikvæðni“. Já, kurteisi er afar mikilvæg (jafnvel grundvallaratriði), en ef við tökum saman ástæðurnar fyrir því að mörg okkar leyfa tjáningu neikvæðra skoðana að breytast í "eitrun", þá virðast þessar ástæður föðurlegar eða unglingslegar: "þau eiga það skilið vegna þess að þeir eru hálfvitar ", "hann verður að vera viss um að þeir geri það ekki aftur," "ef þeir hefðu ekki gert það, þá þyrfti hann ekki að öskra á þá," og svo framvegis. Dæmi um áhrif tilfinningalegra viðbragða leiðtoga á forritunarsamfélag er skammstöfun Ruby samfélagsins MINASWAN - "Matz er fín svo við erum fín."

Ég hef tekið eftir því að margir ákafir talsmenn „drepa heimskingja“ nálguninni er oft mjög annt um gæði og réttmæti kóðans og samsama sig verkum sínum. Því miður rugla þeir oft saman hörku og stífni. Ókosturinn við þessa stöðu stafar af hinni einföldu mannlegu, en óframleiðnilegu löngun til að finnast öðrum æðri. Fólk sem verður á kafi í þessari löngun festist á vegi myrkursins.

Reiði við kóða: forritarar og neikvæðni

Forritunarheimurinn er í örum vexti og þrýstir á mörk gáms síns - heimsins án forritunar (eða er forritunarheimurinn gámur fyrir heiminn án forritunar? Góð spurning).

Eftir því sem iðnaður okkar stækkar með sívaxandi hraða og forritun verður aðgengilegri, er fjarlægðin milli „tæknimanna“ og „venjulegra“ að minnka hratt. Forritunarheimurinn verður í auknum mæli fyrir mannlegum samskiptum fólks sem ólst upp í einangruðum nördamenningu fyrstu tækniuppsveiflunnar og það eru þeir sem munu móta nýjan forritunarheim. Og burtséð frá félagslegum rökum eða kynslóðarrökum mun skilvirkni í nafni kapítalismans koma fram í fyrirtækjamenningu og ráðningarháttum: bestu fyrirtækin ráða einfaldlega ekki neinn sem getur ekki átt hlutlaus samskipti við aðra, hvað þá í góð sambönd.

Það sem ég lærði um neikvæðni

Ef þú leyfir of mikilli neikvæðni að stjórna huga þínum og samskiptum við fólk, breytast í eiturhrif, þá er það hættulegt fyrir vöruteymi og dýrt fyrir fyrirtæki. Ég hef séð (og heyrt um) óteljandi verkefni sem féllu í sundur og voru algjörlega endurbyggð með miklum kostnaði vegna þess að einn traustur verktaki hafði hatur á tækninni, annar verktaki eða jafnvel ein skrá sem var valin til að tákna gæði alls kóðagrunnsins.

Neikvæðni dregur líka úr og eyðileggur sambönd. Ég mun aldrei gleyma því hvernig samstarfsmaður skammaði mig fyrir að setja CSS í ranga skrá, það kom mér í uppnám og leyfði mér ekki að safna hugsunum mínum í nokkra daga. Og í framtíðinni er ólíklegt að ég leyfi slíkum einstaklingi að vera nálægt einu af liðunum mínum (en hver veit, fólk breytist).

Að lokum það neikvæða skaðar bókstaflega heilsu þína.

Reiði við kóða: forritarar og neikvæðni
Mér finnst að svona meistaranámskeið um bros eigi að líta út.

Auðvitað eru þetta ekki rök fyrir því að geisla af hamingju, setja tíu milljarða broskörlum inn í hverja beiðni um að draga, eða fara á meistaranámskeið um bros (nei, jæja, ef það er það sem þú vilt, þá engin spurning). Neikvæðni er afar mikilvægur hluti af forritun (og mannlífi), gefur merki um gæði, gerir manni kleift að tjá tilfinningar og umgangast náunga. Neikvæðni gefur til kynna innsýn og varfærni, dýpt vandans. Ég tek oft eftir því að þróunaraðili hefur náð nýju stigi þegar hann byrjar að láta í ljós vantrú á því sem hann var áður feiminn og óviss um. Fólk sýnir skynsemi og traust með skoðunum sínum. Þú getur ekki vísað á bug neikvæðni, það væri Orwellskt.

Hins vegar þarf að skammta neikvæðni og jafnvægi við aðra mikilvæga mannlega eiginleika: samkennd, þolinmæði, skilning og húmor. Það er alltaf hægt að segja manni að hann hafi ruglað saman án þess að öskra eða blóta. Ekki vanmeta þessa nálgun: ef einhver segir þér án tilfinninga að þú hafir klúðrað alvarlega, þá er það virkilega skelfilegt.

Í það skiptið, fyrir nokkrum árum, talaði forstjórinn við mig. Við ræddum núverandi stöðu verkefnisins, svo spurði hann hvernig mér liði. Ég svaraði því til að allt væri í lagi, verkefnið þokaðist áfram, við værum að vinna hægt, kannski missti ég af einhverju og þyrfti að endurskoða það. Hann sagðist hafa heyrt mig deila svartsýnni hugsunum við samstarfsmenn á skrifstofunni og að aðrir hefðu tekið eftir þessu líka. Hann útskýrði að ef ég hefði efasemdir gæti ég tjáð þær að fullu við stjórnendur, en ekki „tekið þær niður“. Sem aðalverkfræðingur þarf ég að hafa í huga hvernig orð mín hafa áhrif á aðra því ég hef mikil áhrif þó ég geri mér ekki grein fyrir því. Og hann sagði mér þetta allt mjög vingjarnlega og sagði að lokum að ef mér liði svona í alvöru þá þarf ég líklega að hugsa um hvað ég vil fyrir sjálfan mig og feril minn. Þetta var ótrúlega blíðlegt, komdu-eða-farðu út úr sætinu. Ég þakkaði honum fyrir upplýsingarnar um hvernig breytt viðhorf mitt á sex mánuðum hafði áhrif á aðra sem ég tók ekki eftir.

Það var dæmi um merkilega, árangursríka stjórnun og kraft mjúkrar nálgunar. Ég áttaði mig á því að ég virtist bara hafa fulla trú á fyrirtækinu og getu þess til að ná markmiðum sínum, en í raun talaði ég og talaði við aðra á allt annan hátt. Ég áttaði mig líka á því að jafnvel þótt ég væri efins um verkefnið sem ég var að vinna að, ætti ég ekki að sýna samstarfsmönnum mínum tilfinningar og dreifa svartsýni eins og smiti, sem minnkar líkurnar á árangri. Þess í stað gæti ég sagt stjórnendum mínum raunverulegu ástandi á harðlegan hátt. Og ef mér fyndist að þeir væru ekki að hlusta á mig gæti ég tjáð ósamkomulagið með því að yfirgefa fyrirtækið.

Ég fékk nýtt tækifæri þegar ég tók við starfi forstöðumanns starfsmannamats. Sem fyrrverandi yfirverkfræðingur er ég mjög varkár við að tjá skoðanir mínar á (sífellt batnandi) arfleifðarreglum okkar. Til að samþykkja breytingu þarftu að ímynda þér núverandi ástand, en þú kemst hvergi ef þú veltir þér upp úr styni, árásum eða þess háttar. Að lokum er ég hér til að klára verkefni og ætti ekki að kvarta yfir kóðanum til að skilja hann, meta hann eða laga hann.

Í raun, því meira sem ég stjórna tilfinningalegum viðbrögðum mínum við kóðanum, því meira skil ég hvað það gæti orðið og því minna rugl finn ég. Þegar ég tjáði mig af hófsemi („hér hlýtur að vera pláss fyrir frekari umbætur“) var ég að gleðja sjálfa mig og aðra og taka ástandið ekki of alvarlega. Ég áttaði mig á því að ég gæti örvað og dregið úr neikvæðni hjá öðrum með því að vera fullkomlega (pirrandi?) sanngjarn („þú hefur rétt fyrir þér, þessi kóða er frekar slæmur, en við munum bæta hann“). Það gleður mig að sjá hversu langt ég kemst á Zen-brautinni.

Í meginatriðum er ég stöðugt að læra og endurlæra mikilvæga lexíu: lífið er of stutt til að vera stöðugt reiður og sársaukafullur.

Reiði við kóða: forritarar og neikvæðni

Heimild: www.habr.com

Bæta við athugasemd