コヌドに察する怒り: プログラマヌず吊定性

コヌドに察する怒り: プログラマヌず吊定性

コヌドの䞀郚を芋おいたす。 これは私が今たで芋た䞭で最悪のコヌドかもしれたせん。 デヌタベヌス内の XNUMX ぀のレコヌドだけを曎新するには、コレクション内のすべおのレコヌドを取埗し、曎新する必芁のないレコヌドも含め、デヌタベヌス内のすべおのレコヌドに曎新リク゚ストを送信したす。 枡された倀を単玔に返すマップ関数がありたす。 異なるスタむルで名前が付けられおいるだけで、明らかに同じ倀を持぀倉数の条件付きテストがありたす (firstName О first_name。 UPDATE ごずに、コヌドは別のキュヌにメッセヌゞを送信したす。このキュヌは別のサヌバヌレス関数によっお凊理されたすが、同じデヌタベヌス内の別のコレクションに察しおすべおの䜜業が行われたす。 このサヌバヌレス機胜は、環境内に 100 以䞊の機胜を含むクラりドベヌスの「サヌビス指向アヌキテクチャ」によるものだず蚀いたしたか?

どうしおこんなこずが可胜になったのでしょうか 私は顔を芆い、笑いながら明らかにすすり泣きたした。 同僚が䜕が起こったのか尋ねるので、私はそれを色で蚀い盎したす BulkDataImporter.js 2018 のワヌスト ヒット。 誰もが私に同情的にうなずき、同意したす。どうしお圌らは私たちにこんなこずをできるのでしょうか

ネガティブ: プログラマヌ文化における感情的なツヌル

吊定性はプログラミングにおいお重芁な圹割を果たしたす。 それは私たちの文化に組み蟌たれおおり、私たちが孊んだこずを共有するために䜿甚されたす「あなたはそうではありたせん」 あなたはそれを信じたす「あのコヌドは䜕だったんだ」、むラむラしながら同情を衚珟する「神様、なぜそんなこずをするのですか」、自分を誇瀺する「私は絶察にやりたせん」 そう 「私たちはそれをしなかった」、誰か他の人に責任をなすり぀ける「私たちは圌のコヌドのせいで、維持するこずが䞍可胜だった」、たたは最も「有害な」組織では慣䟋ずなっおいるように、他の人をコントロヌルするこずによっお、恥の感情「䜕を考えおいたの」正解です。

コヌドに察する怒り: プログラマヌず吊定性

吊定性は䟡倀を䌝える非垞に効果的な方法であるため、プログラマヌにずっお非垞に重芁です。 私はか぀おプログラミング キャンプに参加したこずがありたすが、孊生に業界の文化を怍え付ける暙準的な方法は、ミヌム、ストヌリヌ、ビデオを惜しみなく提䟛するこずであり、その䞭で最も人気のあるものは悪甚されたした。 人々の誀解に盎面したプログラマヌのフラストレヌション。 感情的なツヌルを䜿っお、良いもの、悪いもの、醜いもの、それをしおはいけない、たったくしないこずを識別できるのは良いこずです。 新人は、IT ずは瞁遠い同僚から誀解される可胜性があるずいう事実を芚悟する必芁がありたす。 圌らの友人が数癟䞇ドルのアプリのアむデアを売り蟌み始めるず。 圌らは角を曲がったずころにたくさんのミノタりルスがいる䞭、時代遅れのコヌドの果おしない迷路をさたよわなければならないこずを。

私たちが初めおプログラミングを孊ぶずき、「プログラミング䜓隓」の深さに぀いおの理解は、他の人の感情的な反応を芳察するこずに基づいおいたす。 これは、の投皿からはっきりずわかりたす sabeプログラマヌナヌモア、初心者プログラマヌがたくさん集たる堎所です。 ナヌモラスなものの倚くは、皋床の差こそあれ、倱望、悲芳、憀り、芋䞋しなど、さたざたな吊定的な色合いで圩られおいたす。 これだけでは十分ではないず思われる堎合は、コメントを読んでください。

コヌドに察する怒り: プログラマヌず吊定性

プログラマヌは経隓を積むに぀れお、どんどんネガティブになっおいくこずに気づきたした。 初心者は、自分たちを埅っおいる困難に気づかず、熱意ず、これらの困難の原因が単に経隓ず知識の䞍足であるず信じようずする姿勢から始めたす。 そしおやがお圌らは珟実に盎面するこずになる。

時間が経぀に぀れお、圌らは経隓を積み、良いコヌドず悪いコヌドを区別できるようになりたす。 そしおその瞬間が来るず、若いプログラマヌは明らかに悪いコヌドを扱うこずにフラストレヌションを感じたす。 たた、チヌムで (リモヌトたたは盎接) 働いおいる堎合、経隓豊富な同僚の感情的な習慣を採甚するこずがよくありたす。 これは、吊定的な意芋の増加に぀ながるこずがよくありたす。なぜなら、若者はコヌドに぀いお思慮深く話し、それを悪いものず良いものに分けお話し、それによっお自分たちが「知識がある」こずを瀺すこずができるからです。 これはマむナス面をさらに匷化したす: 倱望から、同僚ず仲良くなり、グルヌプの䞀員になるのは簡単ですが、悪いコヌドを批刀するず、他人の目から芋たあなたの地䜍ずプロフェッショナリズムが高たりたす。 吊定的な意芋を衚明する人は、より知的で有胜であるず認識されるこずが倚い.

ネガティブな感情が増えるこずは必ずしも悪いこずではありたせん。 プログラミングに関する議論は、ずりわけ、曞かれたコヌドの品質に非垞に焊点を圓おおいたす。 コヌドの内容によっお、そのコヌドが実行する目的の機胜 (ハヌドりェア、ネットワヌクなどは別ずしお) が完党に定矩されるため、そのコヌドに぀いお意芋を衚珟できるこずが重芁です。 ほずんどすべおの議論は、コヌドが十分に優れおいるかどうかに垰着し、コヌドの品質を特城づける感情的な含意ずいう芳点から悪いコヌドの珟れそのものを非難するこずに垰着したす。

  • 「このモゞュヌルにはロゞックの䞍䞀臎が倚数ありたすが、倧幅なパフォヌマンスの最適化の候補ずなりたす。」
  • 「このモゞュヌルはかなり悪いので、リファクタリングする必芁がありたす。」
  • 「このモゞュヌルは意味がありたせん。曞き盎す必芁がありたす。」
  • 「このモゞュヌルは最悪です。パッチを圓おる必芁がありたす。」
  • 「これはモゞュヌルではなくラムの䞀郚です。たったく曞く必芁がありたせんでした。䜜者は䞀䜓䜕を考えおいたのでしょうか。」

ちなみに、開発者がコヌドを「セクシヌ」ず呌ぶのは、この「感情の解攟」のためですが、PornHub で働いおいる堎合を陀いお、これはめったに公平ではありたせん。

問題は、人々は奇劙で、萜ち着きがなく、感情的な生き物であり、あらゆる感​​情の認識ず衚珟が私たちを倉化させたす。最初は埮劙ですが、時間が経぀に぀れお劇的に倉化したす。

問題を抱えたネガティブな滑りやすい坂道

数幎前、私は非公匏のチヌムリヌダヌずしお開発者ず面談したした。 私たちは圌がずおも気に入りたした。圌は賢くお、良い質問をし、テクノロゞヌに粟通しおいお、私たちの文化にぎったりでした。 私は特に圌の積極性ず進取的な姿勢に感銘を受けたした。 そしお私は圌を雇った。

圓時、私はその䌚瀟で数幎働いおいたしたが、私たちの文化があたり効果的ではないず感じおいたした。 私が到着するたでに、XNUMX 回、XNUMX 回、そしおさらに XNUMX 回、補品の発売を詊みたしたが、その結果、やり盎しに倚額の費甚がかかり、その間、長い倜を過ごし、タむトな締め切りず、機胜する補品以倖には䜕も芋せるこずができたせんでした。 そしお、私はただ䞀生懞呜働いおいたしたが、経営陣から割り圓おられた最終期限に぀いおは懐疑的でした。 そしお、コヌドのいく぀かの偎面に぀いお私の同僚ず話し合ったずきに、圌は䜕気なくこう蚀いたした。

したがっお、数週間埌、その同じ新しい開発者が私ず同じ吊定的なこず悪口を含むを蚀ったこずは驚くこずではありたせんでした私は驚きたしたが。 文化の異なる別の䌚瀟では、圌は違った行動をするだろうず私は気づきたした。 圌は私が䜜った文化に適応しただけです。 私は眪悪感に襲われたした。 私の䞻芳的な経隓のせいで、たったく違うず認識しおいた新人に悲芳的な芋方を怍え付けおしたいたした。 たずえ圌が本圓にそうではなく、自分が溶け蟌めるように芋せかけおいるだけだったずしおも、私は圌に私のク゜態床を抌し付けたした。 そしお、たずえ冗談であっおも、あるいは偶然であっおも、蚀われたこずはすべお、信じられおいるものに倉わっおしたう悪いやり方です。

コヌドに察する怒り: プログラマヌず吊定性

消極的なやり方

少し知恵ず経隓を積んだ元初心者プログラマの話に戻りたしょう。圌らはプログラミング業界にもっず詳しくなり、悪いコヌドはどこにでも存圚し、それを避けるこずはできないこずを理解しおいたす。 このようなこずは、品質を重芖する最先端の䌁業でも発生したす (泚意しおください: 明らかに、珟代性は悪いコヌドから保護するものではありたせん)。

良い脚本。 時間が経぀に぀れお、開発者は、悪いコヌドは゜フトりェアの珟実であり、それを改善するこずが自分たちの仕事であるこずを受け入れ始めたす。 そしお、悪いコヌドが避けられないのであれば、それに぀いお倧隒ぎするのは意味がありたせん。 圌らは犅の道を歩み、盎面する問題や課題の解決に焊点を圓おたす。 圌らは、゜フトりェアの品質を正確に枬定しお経営者に䌝える方法を孊び、長幎の経隓に基づいお根拠のある芋積もりを䜜成し、最終的にはビゞネスに察する信じられないほどの継続的な䟡倀に察しお寛倧な報酬を受け取りたす。 圌らは非垞によく仕事をするので、10䞇ドルのボヌナスを受け取り、退職しお残りの人生でやりたいこずをしたすそれを圓然のこずだず思わないでください。

コヌドに察する怒り: プログラマヌず吊定性

もう䞀぀のシナリオは闇の道です。 開発者は、悪いコヌドを必然ずしお受け入れるのではなく、プログラミングの䞖界にあるすべおの悪いコヌドを自分自身で指摘し、それを克服できるようにしたす。 圌らは、倚くの正圓な理由で既存の悪いコヌドを改善するこずを拒吊したす。 「䞍快だ」 「これはビゞネスにずっお良くないこずだ」 「これは私がどれほど賢いかを蚌明しおいたす」; 「これがなんおひどいコヌドなのか教えなければ、䌚瀟党䜓が海に沈んでしたうだろう」などなど。

残念なこずにビゞネスは発展を続けなければならず、コヌドの品質を心配するこずに時間を費やすこずができないため、確実に望む倉曎を実装するこずができず、これらの人々は䞍平䞍満を蚀う人ずしおの評刀を高めたす。 圌らは高い胜力を持っおいるため雇甚されおいたすが、䌚瀟の片隅に远いやられおおり、倚くの人に迷惑をかけるこずはなく、重芁なシステムの運甚をサポヌトするこずになりたす。 新しい開発の機䌚にアクセスできなければ、スキルを倱い、業界の需芁を満たすこずができなくなりたす。 圌らの吊定的な気持ちは苊い苊いものに倉わり、その結果、圌らはXNUMX歳の孊生たちず、圌らのお気に入りの叀いテクノロゞヌがたどった道のりや、なぜ今でもこんなに熱いのかに぀いお議論しお゚ゎを肥やしたす。 圌らは結局匕退し、鳥に悪態を぀きながら老埌を過ごすこずになる。

珟実はおそらくこれら XNUMX ぀の䞡極端の䞭間のどこかにあるでしょう。

䞀郚の䌁業は、非垞にネガティブで、閉鎖的で、意志の匷い文化を䜜り出すこずに倧きな成功を収めおいたすMicrosoft が蚭立される前は、 倱われたXNUMX幎 - 倚くの堎合、これらは垂堎に完党に適合した補品を提䟛し、できるだけ早く成長する必芁がある䌁業です。 あるいは、党員が指瀺されたこずを行う、指揮統制の階局構造を持った䌁業ゞョブズの最盛期のアップル。 しかし、珟代のビゞネス研究 (および垞識) によるず、䌁業の革新性ず個人の高い生産性に぀ながる最倧限の創意工倫には、継続的な創造的で系統的な思考をサポヌトするために䜎レベルのストレスが必芁です。 たた、コヌドの各行に぀いお同僚が䜕を蚀わなければならないかを垞に心配しおいる堎合、創造的でディスカッションベヌスの仕事をするこずは非垞に困難です。

ネガティブな芁玠がポップカルチャヌを操䜜しおいる

珟圚、゚ンゞニアの姿勢がこれたで以䞊に泚目されおいたす。 ゚ンゞニアリング組織では、「角なし」。 郚倖者に察する敵意や悪意を我慢し続けるこずができなかった我慢し続けられなかったためにこの職業を蟞めた人々に関する逞話や話がツむッタヌ䞊にどんどん登堎しおいる。 ラむナス・トヌバルズさえも 最近謝った 他の Linux 開発者に察する長幎の敵意ず批刀 - これが、このアプロヌチの有効性に぀いおの議論に぀ながりたした。

ラむナスが非垞に批刀的である暩利を今でも擁護する人もいたす。圌らは「有害な吊定性」の長所ず短所に぀いおよく知っおいるはずです。 確かに、瀌儀正しさは非垞に重芁です基本的ですらありたす。しかし、私たちの倚くが吊定的な意芋の衚珟が「有害」になるこずを蚱容する理由を芁玄するず、これらの理由はパタヌナリズム的たたは青少幎的であるように芋えたす。「圌らは愚かだから圓然です」 「圌は、圌らが二床ず同じこずをしないず確信しおいるに違いない」、「もし圌らがそんなこずをしなければ、圌は圌らに怒鳎る必芁はなかったのに」など。 リヌダヌの感情的な反応がプログラミング コミュニティに䞎える圱響の䟋ずしお、Ruby コミュニティの頭字語 MINASWAN (「Matz は良い人なので、私たちも良い」) がありたす。

「愚か者を殺す」アプロヌチの熱心な支持者の倚くは、コヌドの品質ず正確さを非垞に気にしおおり、自分の仕事ず自分自身を同䞀芖しおいるこずに気づきたした。 残念ながら、硬床ず剛性が混同されるこずがよくありたす。 この立堎の欠点は、他人よりも優れおいるず感じたいずいう人間の単玔だが非生産的な欲求に起因したす。 この欲望に溺れた人は、闇の道にはたっおしたいたす。

コヌドに察する怒り: プログラマヌず吊定性

プログラミングの䞖界は急速に成長しおおり、そのコンテナである非プログラミングの䞖界の境界を抌し広げおいたす (あるいは、プログラミングの䞖界は非プログラミングの䞖界のコンテナなのでしょうか? 良い質問です)。

私たちの業界がたすたす加速するペヌスで拡倧し、プログラミングがよりアクセスしやすくなるに぀れお、「技術者」ず「䞀般人」の間の距離は急速に瞮たり぀぀ありたす。 プログラミングの䞖界は、初期のテクノロゞヌ ブヌムの孀立したオタク文化の䞭で育った人々の察人亀流にたすたすさらされおおり、新しいプログラミングの䞖界を圢䜜るのは圌らです。 そしお、瀟䌚的たたは䞖代的な議論に関係なく、資本䞻矩の名の䞋での効率性は䌁業文化や採甚慣行に珟れたす。優良䌁業は、他人ず䞭立的に接するこずができない人、たしおや良奜な人間関係を築けない人を採甚したせん。

ネガティブなこずに぀いお孊んだこず

自分の心や人々ずの亀流をコントロヌルするためにネガティブな芁玠が倚すぎるず、それが有害に倉化しおしたい、補品チヌムにずっおは危険であり、ビゞネスにずっおはコストがかかりたす。 私は、ある信頌できる開発者がそのテクノロゞヌや別の開発者、さらにはコヌドベヌス党䜓の品質を衚すために遞ばれた単䞀のファむルに察しお恚みを抱いたため、厩壊し、倚額の費甚をかけお完党に再構築されたプロゞェクトを数え切れないほど芋おきたしたそしお聞いた。

吊定的な考えはたた、士気を䜎䞋させ、人間関係を砎壊したす。 CSS を間違ったファむルに入れたこずで同僚に叱られたこずは決しお忘れられたせん。そのこずで私は動揺し、数日間考えをたずめるこずができたせんでした。 そしお将来的には、そのような人が私のチヌムの近くにいるこずを蚱可する぀もりはありたせんしかし、人は倉わりたす。

最埌にマむナス点ですが、 文字通りあなたの健康を害したす.

コヌドに察する怒り: プログラマヌず吊定性
これが笑顔に関するマスタヌクラスのあるべき姿だず思いたす。

もちろん、これは、幞せな笑顔を浮かべたり、すべおのプル リク゚ストに XNUMX 億個の絵文字を挿入したり、笑顔に関するマスタヌ クラスに参加したりするこずを支持する議論ではありたせん (いいえ、たあ、それがあなたが望むものであれば、問題ありたせん)。 吊定性はプログラミング (そしお人間の生掻) においお非垞に重芁な郚分であり、品質を瀺し、感情を衚珟したり、仲間ず同情したりするこずを可胜にしたす。 吊定性は掞察力ず慎重さ、問題の深さを瀺したす。 私は、開発者が以前は臆病で自信がなかったこずに察しお䞍信感を衚明し始めたずきに、その開発者が新しいレベルに到達しおいるこずによく気づきたす。 人々は自分の意芋に察しお合理性ず自信を瀺したす。 吊定的な衚珟を無芖するこずはできたせん、それはオヌりェル的でしょう。

ただし、ネガティブな芁玠は控えめにし、共感、忍耐、理解、ナヌモアずいった他の重芁な人間の特質ずバランスを取る必芁がありたす。 怒鳎ったり悪態を぀いたりしなくおも、盞手が倱敗したこずをい぀でも䌝えるこずができたす。 このアプロヌチを過小評䟡しないでください。誰かが䜕の感情も持たずに、あなたがひどい倱敗をしたずあなたに蚀ったら、それは本圓に怖いです。

数幎前のその時、CEO が私に話しかけおきたした。 私たちはプロゞェクトの珟圚の状況に぀いお話し合い、それから圌は私の気持ちを尋ねたした。 私は、すべお問題ありたせん、プロゞェクトは進んでいたす、ゆっくりず䜜業しおいたす、おそらく私が䜕かを芋萜ずしおいたので再考する必芁があるず答えたした。 圌は、私がオフィスの同僚たちずもっず悲芳的な考えを共有しおいるのを聞いたず蚀い、他の人たちもそれに気づいおいたず蚀いたした。 圌は、疑問がある堎合は経営陣にそれを党面的に衚明するこずはできるが、「疑問を撀回する」こずはできないず説明したした。 リヌド゚ンゞニアずしお、私は自分が気づいおいなくおも倧きな圱響力を持っおいるため、自分の蚀葉が他の人にどのような圱響を䞎えるかを意識しなければなりたせん。 そしお、圌はこれらすべおをずおも芪切に私に話し、最埌に、もし私が本圓にそう感じおいるなら、自分自身ず自分のキャリアに䜕を望むのかを考える必芁があるかもしれないず蚀いたした。 それは信じられないほど穏やかで、垭を立぀か垭を立぀かのような䌚話でした。 私は、半幎の間に倉わった私の態床が、私が気付かないうちに他の人たちにどのような圱響を䞎えおいるかを教えおくれお、圌に感謝したした。

これは、驚くべき効果的な管理ず゜フトなアプロヌチの力の䞀䟋でした。 私は䌚瀟ずその目暙を達成する胜力を完党に信頌しおいるように芋えお、実際にはたったく異なる方法で他の人ず話し、コミュニケヌションしおいるこずに気づきたした。 たた、自分が取り組んでいるプロゞェクトに疑問を感じたずしおも、同僚に自分の感情を衚に出しお悲芳論を䌝染病のように広めお成功の可胜性を枛らしおはいけないこずにも気づきたした。 その代わりに、私は積極的に珟実の状況を経営陣に䌝えるこずができたした。 そしお、もし圌らが私の蚀うこずを聞いおくれないず感じたら、䌚瀟を蟞めるこずで反察を衚明するこずができたした。

人事評䟡責任者の職に就いたずき、私に新たな機䌚が䞎えられたした。 元チヌフ ゚ンゞニアずしお、私は (垞に改善し続ける) レガシヌ コヌドに぀いお自分の意芋を衚明するこずに现心の泚意を払っおいたす。 倉曎を承認するには、珟圚の状況を想像する必芁がありたすが、うめき声​​や攻撃などに倢䞭になっおいおは䜕も進みたせん。 結局のずころ、私はタスクを完了するためにここにいたす。コヌドを理解し、評䟡し、修正するためにコヌドに぀いお文句を蚀うべきではありたせん。

実際、コヌドに察する感情的な反応をコントロヌルすればするほど、それがどのようなものになるのかがより理解でき、混乱は少なくなりたす。 私が自分を抑制しお衚珟したずき「ここにはさらに改善の䜙地があるに違いない」、自分自身ず他の人を幞せにし、状況をあたり深刻に受け止めおいたせんでした。 完璧にうっずうしいほどに合理的になるこずで、他人のネガティブな感情を刺激し、軜枛できるこずに気づきたした「おっしゃるずおり、このコヌドはかなり悪いですが、改善したす」。 犅の道をどこたで進んでいけるか楜しみです。

基本的に、私は垞に重芁な教蚓を孊び、孊び盎しおいたす。それは、人生は短すぎお、垞に怒り、痛みを感じ続けるこずはできたせん。

コヌドに察する怒り: プログラマヌず吊定性

出所 habr.com

コメントを远加したす