Anger um Code: Programméierer an Negativitéit

Anger um Code: Programméierer an Negativitéit

Ech kucken op e Stéck Code. Dëst ass vläicht de schlëmmste Code deen ech je gesinn hunn. Fir nëmmen e Rekord an der Datebank ze aktualiséieren, recuperéiert se all d'Records an der Sammlung a schéckt dann eng Aktualiséierungsufro un all Rekord an der Datebank, och déi, déi net aktualiséiert musse ginn. Et gëtt eng Kaartfunktioun déi einfach de Wäert zréckginn, deen derbäi ass. Et gi bedingt Tester fir Variablen mat anscheinend deeselwechte Wäert, just a verschiddene Stiler benannt (firstName и first_name). Fir all UPDATE schéckt de Code e Message un eng aner Schlaang, déi vun enger anerer serverloser Funktioun gehandhabt gëtt, awer déi all d'Aarbecht fir eng aner Sammlung an der selwechter Datebank mécht. Hat ech erwähnt datt dës serverlos Funktioun vun enger Cloud-baséierter "serviceorientéierter Architektur" ass, déi iwwer 100 Funktiounen an der Ëmwelt enthält?

Wéi war et iwwerhaapt méiglech dëst ze maachen? Ech bedecken mäi Gesiicht a siichtbar duerch mäi Laachen. Meng Kollege froe wat geschitt ass, an ech erzielen et a Faarwen Schlëmmst Hits vun BulkDataImporter.js 2018. Jidderee wénkt sympatesch no mir an ass averstanen: Wéi konnten se eis dat maachen?

Negativitéit: en emotionalen Tool an enger Programméiererkultur

Negativitéit spillt eng wichteg Roll bei der Programméierung. Et ass an eiser Kultur agebonnen a gëtt benotzt fir ze deelen wat mir geléiert hunn ("Dir net Dir wäert et gleewen, wéi war dee Code!"), Sympathie duerch Frustratioun auszedrécken ("Gott, WAT maachen dat?"), sech selwer ze weisen ("Ech géif ni sou hunn et net gemaach"), fir een aneren d'Schold ze setzen ("mir hu gescheitert wéinst sengem Code, deen net ze erhalen ass"), oder, wéi et an deene "gëftegsten" Organisatiounen üblech ass, anerer duerch eng Schimmt Gefill ("Wat hutt Dir iwwerhaapt geduecht?" ? richteg").

Anger um Code: Programméierer an Negativitéit

Negativitéit ass sou wichteg fir Programméierer well et e ganz effektive Wee ass fir Wäert ze vermëttelen. Ech war eemol e Programméierungscamp deelgeholl, an d'Standardpraxis fir eng Industriekultur an de Studenten z'installéieren war generéis Memes, Geschichten a Videoen ze liwweren, déi populärst vun deenen exploitéiert goufen d'Frustratioun vun de Programméierer wa se mam Mëssverständnis vun de Leit konfrontéiert sinn. Et ass gutt fir emotional Tools ze benotzen fir de Gutt, de Schlechten, den Ugly z'identifizéieren, Maacht dat net, iwwerhaapt ni. Et ass néideg d'Newcomer op d'Tatsaach virzebereeden datt se wahrscheinlech vu Kollegen, déi wäit vum IT sinn, falsch verstane ginn. Datt hir Frënn hinnen Millioune-Dollar App Iddien wäert verkafen. Dass si mussen duerch endlos Labyrinthen vun alen Code mat enger Rëtsch Minotaurs ronderëm den Eck wanderen.

Wa mir fir d'éischt léieren ze programméieren, baséiert eis Versteesdemech vun der Déift vun der "Programméiererfahrung" op d'Observatioun vun anere Leit hir emotional Reaktiounen. Dëst kann kloer aus de Posts gesi ginn sabe ProgrammerHumor, wou vill Newbie Programméierer hänken. Vill humoristesch sinn, zu engem oder anere Grad, mat verschiddenen Nuancen vun Negativitéit faarweg: Enttäuschung, Pessimismus, Indignatioun, Kondeszenz an anerer. A wann dëst Iech net genuch schéngt, liest d'Kommentaren.

Anger um Code: Programméierer an Negativitéit

Ech hu gemierkt datt wéi d'Programméierer Erfahrung kréien, se ëmmer méi negativ ginn. Ufänger, net bewosst vun de Schwieregkeeten, déi op si waarden, fänken un mat Begeeschterung an engem Wëllen ze gleewen datt d'Ursaach vun dëse Schwieregkeeten einfach e Manktem un Erfahrung a Wëssen ass; a schlussendlech wäerte se mat der Realitéit vun de Saachen konfrontéiert ginn.

D'Zäit passéiert, si kréien Erfahrung a kënne Good Code vu Bad z'ënnerscheeden. A wann dee Moment kënnt, fille jonk Programméierer d'Frustratioun fir mat offensichtlech schlechte Code ze schaffen. A wa se an engem Team schaffen (Fern oder perséinlech), adoptéiere se dacks déi emotional Gewunnechten vu méi erfuerene Kollegen. Dëst féiert dacks zu enger Erhéijung vun der Negativitéit, well jonk Leit kënnen elo iwwerluecht iwwer Code schwätzen an en a schlecht a gutt opdeelen, an domat weisen datt se "bekannt sinn." Dëst verstäerkt d'Negativ weider: aus Enttäuschung ass et einfach mat Kollegen zesummen ze kommen an Deel vun engem Grupp ze ginn; Bad Code kritiséieren erhéicht Äre Status a Professionalitéit an den Ae vun aneren: Leit, déi negativ Meenungen ausdrécken, ginn dacks als méi intelligent a kompetent ugesinn.

Negativitéit erhéijen ass net onbedéngt eng schlecht Saach. Diskussiounen iwwer programméiere, ënner anerem, sinn extrem konzentréiert op d'Qualitéit vum geschriwwe Code. Wat de Code ass, definéiert komplett d'Funktioun déi se soll maachen (Hardware, Vernetzung, asw.), also ass et wichteg datt Dir Är Meenung iwwer dee Code ausdrécke kënnt. Bal all Diskussiounen kommen erof op ob de Code gutt genuch ass, a fir déi ganz Manifestatiounen vu schlechte Code ze veruerteelen an deem seng emotional Konnotatioun d'Qualitéit vum Code charakteriséiert:

  • "Et gi vill Logik Inkonsistenz an dësem Modul, et ass e gudde Kandidat fir bedeitend Leeschtungsoptimiséierung."
  • "Dëse Modul ass zimmlech schlecht, mir mussen et refaktoréieren."
  • "Dëse Modul mécht kee Sënn, et muss nei geschriwwe ginn."
  • "Dëse Modul suckt, et muss gepatcht ginn."
  • "Dëst ass e Stéck Ram, net e Modul, et muss guer net geschriwwe ginn, wat d'Häll huet säin Auteur geduecht."

Iwwregens ass et dës "emotional Verëffentlechung" déi Entwéckler de Code "sexy" mécht, wat selten fair ass - ausser Dir schafft um PornHub.

De Problem ass datt d'Leit komesch, onroueg, emotional Kreaturen sinn, an d'Perceptioun an Ausdrock vun all Emotioun ännert eis: fir d'éischt subtil, awer mat der Zäit, dramatesch.

Eng onroueg rutscheg Steigung vun Negativitéit

Virun e puer Joer war ech en informelle Team Lead an hunn en Entwéckler interviewt. Mir hunn hien wierklech gär: hie war schlau, huet gutt Froen gestallt, war technesch ervirhiewen, a passt gutt an eis Kultur. Ech war besonnesch beandrockt vu senger Positivitéit a wéi entreprise hien ausgesäit. An ech hunn him agestallt.

Deemools hunn ech e puer Joer an der Firma geschafft a gefillt datt eis Kultur net ganz effektiv wier. Mir hu probéiert de Produit zweemol, dräimol an nach e puer Mol ze lancéieren ier ech ukomm sinn, wat zu groussen Ausgaben op Neiaarbechten gefouert huet, während deenen mir näischt ze weisen haten ausser laang Nuechten, enk Deadlines a Produkter déi geschafft hunn. An obwuel ech nach haart geschafft hunn, war ech skeptesch iwwer déi lescht Frist, déi eis vun der Direktioun zougewisen gouf. An hien huet zoufälleg geschwuer wann hien e puer Aspekter vum Code mat menge Kollegen diskutéiert.

Also et war net iwwerraschend - obwuel ech iwwerrascht war - datt e puer Woche méi spéit, deeselwechten neien Entwéckler déiselwecht negativ Saache gesot huet, déi ech gemaach hunn (inklusiv Schwieren). Ech hu gemierkt datt hien an enger anerer Firma mat enger anerer Kultur anescht géif behuelen. Hien huet sech just un d'Kultur ugepasst déi ech erstallt hunn. Ech war mat engem Gefill vu Schold iwwerwonne. Wéinst menger subjektiver Erfahrung hunn ech Pessimismus an engem Newcomer agefouert, deen ech als komplett anescht ugesinn hunn. Och wann hien wierklech net esou war an just en Optrëtt gemaach huet fir ze weisen datt hie kéint passen, hunn ech meng scheiss Haltung op him forcéiert. An alles gesot, och am Geck oder am Vergaangenheet, huet d'schlecht Aart a Weis an dat wat gegleeft gëtt.

Anger um Code: Programméierer an Negativitéit

Negativ Weeër

Komme mer zréck op eis fréier Newbie Programméierer, déi e bësse Wäisheet an Erfarung gewonnen hunn: si si méi vertraut mat der Programméierungsindustrie a verstinn datt schlecht Code iwwerall ass, et kann net vermeit ginn. Et geschitt souguer an de fortgeschrattste Firmen déi op Qualitéit fokusséiert sinn (a loosst mech notéieren: anscheinend schützt d'Modernitéit net géint schlechte Code).

Gutt Schrëft. Mat der Zäit fänken d'Entwéckler un ze akzeptéieren datt schlechte Code eng Realitéit vu Software ass an datt hir Aarbecht ass et ze verbesseren. An datt wann e schlechte Code net evitéiert ka ginn, da gëtt et kee Sënn doriwwer ze räissen. Si huelen de Wee vum Zen, konzentréiere sech op d'Léisung vu Probleemer oder Aufgaben déi se konfrontéieren. Si léiere wéi d'Softwarequalitéit fir d'Geschäftsbesëtzer präzis moossen an kommunizéieren, gutt gegrënnt Schätzunge schreiwen op Basis vun hire Joeren Erfarung, a schlussendlech generéis Belounungen fir hiren onheemlechen a lafende Wäert fir d'Geschäft kréien. Si maachen hir Aarbecht sou gutt, datt si $ 10 Milliounen u Bonus bezuelt kréien an zréckzéien fir de Rescht vun hirem Liewen ze maachen wat se wëllen (huelt et w.e.g. net selbstverständlech).

Anger um Code: Programméierer an Negativitéit

En aneren Szenario ass de Wee vun der Däischtert. Amplaz e schlechte Code als Inévitabilitéit ze akzeptéieren, huelen d'Entwéckler et op sech fir alles schlecht an der Programméierungswelt ze ruffen, fir datt se et iwwerwanne kënnen. Si refuséieren de bestehende schlechte Code aus ville gudde Grënn ze verbesseren: "D'Leit solle méi wëssen an net sou domm sinn"; "et ass désagréabel"; "dëst ass schlecht fir d'Geschäft"; "dëst beweist wéi schlau ech sinn"; "wann ech Iech net soen, wat e schlechte Code dëst ass, da wäert d'ganz Firma an den Ozean falen", an sou weider.

Sécher net kënnen d'Ännerungen ëmzesetzen, déi se wëllen, well d'Geschäft leider muss weider entwéckelen a keng Zäit verbréngen iwwer d'Qualitéit vum Code ze këmmeren, dës Leit kréien e Ruff als Beschwerer. Si gi fir hir héich Kompetenz behalen, awer ginn op d'Marge vun der Firma gedréckt, wou se net vill Leit nerven, awer ëmmer nach d'Operatioun vu kritesche Systemer ënnerstëtzen. Ouni Zougang zu neien Entwécklungsméiglechkeeten verléieren se Fäegkeeten a stoppen d'Industriefuerderunge z'erreechen. Hir Negativitéit gëtt zu batter Batterkeet, an als Resultat fidderen se hiren Ego andeems se mat zwanzegjärege Studenten streiden iwwer d'Rees déi hir Liiblingsal Technologie gemaach huet a firwat et nach ëmmer sou waarm ass. Si sinn um Enn an d'Pensioun an liewen hir Altersheem Schwieregkeeten op Villercher.

D'Realitéit läit wahrscheinlech iergendwou tëscht dësen zwee Extremer.

E puer Firme waren extrem erfollegräich an der Schafung vun extrem negativen, insulären, staarkwëllegen Kulturen (wéi Microsoft viru senger Jorzéngt verluer) - dacks sinn dës Firmen mat Produkter déi perfekt op de Maart passen an de Besoin fir sou séier wéi méiglech ze wuessen; oder Firmen mat enger Hierarchie vu Kommando a Kontroll (Apple an de beschte Jore vun Jobs), wou jidderee mécht wat him gesot gëtt. Wéi och ëmmer, modern Geschäftsfuerschung (a gesonde Mënscheverstand) suggeréiert datt maximal Erfindung, déi zu Innovativitéit an de Firmen féiert, an héich Produktivitéit bei Individuen, niddereg Stressniveau erfuerdert fir dauernd kreativ a methodesch Denken z'ënnerstëtzen. An et ass extrem schwiereg kreativ, Diskussiounsbaséiert Aarbecht ze maachen, wann Dir Iech stänneg Suerge mécht iwwer wat Är Kollegen iwwer all Zeil vun Ärem Code ze soen hunn.

Negativitéit ass eng technesch Popkultur

Haut gëtt méi Opmierksamkeet op d'Haltung vun den Ingenieuren bezuelt wéi jee virdrun. An Ingenieursorganisatiounen ass d'Regel "Keng Hoer". Ëmmer méi Witzer a Geschichten kommen op Twitter iwwer Leit op, déi dëse Beruff verlooss hunn, well se net (géifen) weider mat Feindlechkeet a schlechte Wëllen vis-à-vis vun Auslänner ausgoen. Souguer Linus Torvalds kuerzem entschëllegt Joer vu Feindlechkeet a Kritik géint aner Linux Entwéckler - dëst huet zu enger Debatt iwwer d'Effektivitéit vun dëser Approche gefouert.

E puer verdeedegen nach ëmmer dem Linus säi Recht op ganz kritesch ze sinn - déi, déi vill iwwer d'Virdeeler an Nodeeler vun der "gëfteg Negativitéit" wëssen. Jo, Zivilitéit ass extrem wichteg (och fundamental), awer wa mir d'Grënn zesummefaassen firwat vill vun eis den Ausdrock vun negativen Meenungen zu "Toxizitéit" erlaben, dës Grënn schéngen paternalistesch oder adolescent: "Si verdéngen et well se Idioten sinn ", "hie muss sécher sinn, datt se et net erëm maachen", "wann se dat net gemaach hätten, da misst hien net op si ruffen," asw. E Beispill vum Impakt vun engem Leader seng emotional Reaktiounen op eng Programméierungsgemeinschaft ass d'Ruby Gemeinschaft d'Akronym MINASWAN - "Matz ass léif sou datt mir léif sinn."

Ech hu gemierkt datt vill ängschtlech Verdeedeger vun der Approche "kill a Narr" dacks ganz vill ëm d'Qualitéit an d'Korrektheet vum Code këmmeren, sech mat hirer Aarbecht z'identifizéieren. Leider verwiessele se dacks Hardness mat Steifheit. Den Nodeel vun dëser Positioun staamt vum einfache mënschlechen, awer onproduktive Wonsch, sech iwwer anerer ze fillen. Leit, déi an dësem Wonsch ënnerdaach ginn, stinn um Wee vun der Däischtert.

Anger um Code: Programméierer an Negativitéit

D'Welt vum Programméierung wiisst séier a dréckt sech géint d'Grenze vu sengem Container - d'Welt vum Net-Programméiere (oder ass d'Welt vum Programméiere e Container fir d'Welt vum Net-Programméiere? Gutt Fro).

Wéi eis Industrie an engem ëmmer méi héijen Tempo erweidert an d'Programméierung méi zougänglech gëtt, geet d'Distanz tëscht "Techies" an "Normaler" séier zou. D'Welt vun der Programméierung ass ëmmer méi ausgesat fir d'interpersonal Interaktioune vu Leit, déi an der isoléierter Nerdkultur vum fréien Tech Boom opgewuess sinn, an et sinn si, déi déi nei Welt vun der Programméierung formen. An onofhängeg vun sozialen oder Generatiounsargumenter, Effizienz am Numm vum Kapitalismus wäert sech an der Firmekultur an der Astellungspraxis weisen: Déi bescht Betriber wäerten einfach kee Mënsch astellen, deen net neutral mat aneren interagéiere kann, eleng gutt Relatiounen hunn.

Wat ech iwwer Negativitéit geléiert hunn

Wann Dir zevill Negativitéit erlaabt Äre Geescht an Interaktioune mat Leit ze kontrolléieren, an Toxizitéit verwandelt, dann ass et geféierlech fir Produktteams an deier fir Geschäfter. Ech hunn eng Onmass Projete gesinn (an héieren) déi ausernee gefall sinn a komplett op grouss Käschte nei opgebaut goufen, well ee vertrauenswürdege Entwéckler e Gruef géint d'Technologie hat, en aneren Entwéckler oder souguer eng eenzeg Datei gewielt fir d'Qualitéit vun der ganzer Codebase ze representéieren.

Negativitéit demoraliséiert och zerstéiert Bezéiungen. Ech wäert ni vergiessen, wéi e Kolleg mech gekrasch huet fir CSS an déi falsch Datei ze setzen, et huet mech opgeregt an huet mir net erlaabt meng Gedanken fir e puer Deeg ze sammelen. An an Zukunft sinn ech onwahrscheinlech datt esou eng Persoun bei engem vun mengen Équipen erlaabt ass (mee wien weess, d'Leit änneren).

Endlech, déi negativ schued wuertwiertlech Är Gesondheet.

Anger um Code: Programméierer an Negativitéit
Ech mengen dat ass wéi eng Masterclass iwwer Laachen soll ausgesinn.

Natierlech ass dëst net en Argument fir mat Gléck ze strahlen, zéng Milliarden Emoticonen an all Pull-Ufro ze setzen, oder an eng Masterclass op Laachen ze goen (nee, gutt, wann dat ass wat Dir wëllt, dann kee Problem). Negativitéit ass en extrem wichtege Bestanddeel vun der Programméierung (a vum mënschleche Liewen), signaliséiert Qualitéit, erlaabt et Gefiller auszedrécken a mat Matmënschen ze kommisséieren. Negativitéit weist Asiicht a Virsiicht, d'Tiefe vum Problem. Ech mierken dacks datt en Entwéckler en neien Niveau erreecht huet wann hien ufänkt Mësstrauen auszedrécken an deem wat hie virdru schei an onsécher war. D'Leit weisen raisonnabel a Vertrauen mat hire Meenungen. Dir kënnt den Ausdrock vun Negativitéit net entloossen, dat wier Orwellian.

Wéi och ëmmer, Negativitéit muss mat anere wichtege mënschleche Qualitéiten doséiert an ausgeglach ginn: Empathie, Gedold, Verständnis an Humor. Dir kënnt ëmmer eng Persoun soen, datt hien opgeschrauft huet ouni ze jäizen oder ze schwieren. Ënnerschätzt dës Approche net: wann iergendeen Iech ouni Emotioun seet datt Dir eescht verstoppt hutt, ass et wierklech grujeleg.

Déi Kéier, virun e puer Joer, huet de CEO mat mir geschwat. Mir hunn den aktuellen Zoustand vum Projet diskutéiert, duerno huet hie gefrot wéi ech mech gefillt hunn. Ech hunn geäntwert, datt alles gutt wier, de Projet bewegt, mir schaffe lues a lues, vläicht hunn ech eppes verpasst a muss iwwerluecht ginn. Hie sot, hien hätt héieren, datt ech méi pessimistesch Gedanken mat de Kollegen am Büro deelen, an datt anerer dat och gemierkt hunn. Hien huet erkläert datt wann ech Zweifel hätt, ech se voll an d'Gestioun ausdrécke kéint, awer net "se erofhuelen." Als Leadingenieur muss ech bewosst sinn wéi meng Wierder anerer beaflossen well ech vill Afloss hunn och wann ech et net realiséieren. An hien huet mir dat ganz frëndlech gesot, a schlussendlech gesot datt wann ech wierklech esou gefillt hunn, da muss ech wuel nodenken wat ech fir mech a meng Carrière wëll. Et war en onheemlech sanft, get-et-oder-get-out-of-our-sëtz Gespréich. Ech hunn him Merci gesot fir d'Informatioun iwwer wéi meng geännert Haltung iwwer sechs Méint anerer beaflosst, déi mir net bemierkt hunn.

Et war e Beispill vun enger bemierkenswäerter, effektiver Gestioun an der Kraaft vun enger mëller Approche. Ech hu gemierkt datt ech nëmmen e komplette Vertrauen an d'Firma an hir Fäegkeet hunn hir Ziler z'erreechen, awer a Wierklechkeet hunn ech op eng ganz aner Manéier geschwat a mat aneren kommunizéiert. Ech hunn och gemierkt datt och wann ech skeptesch gefillt hunn iwwer de Projet un deem ech geschafft hunn, ech meng Gefiller menge Kollegen net sollt weisen a Pessimismus wéi e Contagioun verbreeden, wat eis Chancen op Erfolleg reduzéiert. Amplaz konnt ech déi richteg Situatioun op meng Gestioun aggressiv vermëttelen. A wann ech gefillt hunn, datt se mech net nolauschteren, kéint ech meng Meenungsverschiddenheet ausdrécken andeems ech d'Firma verloosse.

Ech krut eng nei Geleeënheet wéi ech d'Positioun vum Chef vun der Personalbewäertung ugeholl hunn. Als fréiere Chefingenieur sinn ech ganz virsiichteg meng Meenung iwwer eisen (emmer verbesseren) Legacy Code auszedrécken. Fir eng Ännerung z'approuvéieren, musst Dir Iech déi aktuell Situatioun virstellen, awer Dir wäert néierens kommen wann Dir Iech an d'Kraaft, d'Attacke oder dergläicht. Schlussendlech sinn ech hei fir eng Aufgab ofzeschléissen a sollt net iwwer de Code beschwéieren fir et ze verstoen, ze evaluéieren oder ze fixéieren.

Tatsächlech, wat ech méi meng emotional Reaktioun op de Code kontrolléieren, wat ech méi verstinn wat et kéint ginn an wat manner Duercherneen ech fille. Wéi ech mech mat Réckziicht ausgedréckt hunn ("hei muss Plaz fir weider Verbesserunge sinn"), hunn ech mech an déi aner glécklech gemaach an d'Situatioun net ze eescht geholl. Ech hu gemierkt datt ech d'Negativitéit an aneren stimuléieren an reduzéieren andeems ech perfekt (lächerlech?) raisonnabel sinn ("Dir hutt Recht, dëse Code ass zimlech schlecht, awer mir wäerten et verbesseren"). Ech si frou ze gesinn wéi wäit ech um Zen-Wee ka goen.

Weesentlechen, ech léieren a permanent eng wichteg Lektioun: Liewen ass ze kuerz fir konstant rosen a Péng ze sinn.

Anger um Code: Programméierer an Negativitéit

Source: will.com

Setzt e Commentaire