Nguyen Le Phong

やさしく効果的なエンジニアリング全 5 回中第 2 回

Kind Engineering:優しさがあなたをより良いエンジニアにする理由

優しさはお人好しでも、柔弱でもありません。フォース・マルティプライヤーです——より明確なフィードバック、より安全なインシデント対応、より速く成長するチームメンバーを生み出します。「Kind Engineering」とは何か、そしてコードレビュー、インシデント対応、日常の仕事の中でそれをどう実践するかを解説します。

チームの中でひそかに、十分に経験を積んだエンジニア同士の間で交わされる言葉があります:「ここでは本当に思っていることを言える。」シンプルに聞こえます。実際には珍しいことであり、非常に価値があります。それを可能にする条件は偶然に生まれるものではありません。優しさを選ぶ人々が、一つ一つのやり取りを積み重ねることで作られていきます。

お人好しではありません。優しさです。この違いは一見する以上に重要であり、間違えるとチームに大きなコストをもたらします。

この記事は、Kind Engineeringが実際に何を意味するのかを実践的に探るものです——コードレビュー、インシデント対応、フィードバックの会話、そして一緒に働く人々をどう扱うかという静かな選択の、日常的な瞬間において。ここでの考え方の多くは、kind.engineeringに形作られました——健全なチームを築くことに関心のある方に強くお勧めするリソースです。以下のアイデアは私自身の統合と経験であり、そのサイトを必読のさらなる読み物と考えてください。

優しさとお人好しは違う

優しさとお人好しの混同は、驚くほど多くの機能不全チームの原因になっています。お人好しは心地よいものです——気まずい瞬間をなだらかにし、平和を保ち、温かみを感じさせます。でも、しばしば空虚です。お人好しな人はデモが重大な欠陥を持っているときも「すごく良かった」と言います。お人好しな人はコメントが批判的に見えるかもしれないと思ってプルリクエストを承認します。お人好しな人は会議で同意し、悪い決定が進む間も黙っています。

優しさは違います。優しさはあなたのことを気にかけているから真実を伝えます。難しいことを言いますが、成長したいと思わせ、隠れたいと思わせない方法で言います。kind.engineeringの著者はこれを美しく表現しています:お人好しはケーキを持ってくる;優しさはあなたのマネージャーのところに行って「この人は素晴らしい仕事をしている——次のリードロールに推薦してください」と言う。一方の行動は簡単でコストがゼロです。もう一方は努力と他者の未来への投資を要します。

場面UnkindNiceKind
欠陥のあるプルリクエスト 「これは完全に間違っています。」 摩擦を避けるためにコメントなしで承認する。 「24行目に競合状態があると思います——代わりにこうしてみてはどうでしょう。」
本番インシデントの後 「これを書いたのは誰ですか?なぜレビューを通ったのですか?」 何も言わずに次に進む。 ブレームレスな振り返りを実施し「何がこれを起こしたのか?」を問う(「誰が」ではなく)。
設計へのフィードバック 「これは意味をなしません。」 「良さそうです!」——本当の問題があっても。 「このキャッシュ戦略が現在のトラフィック量で持つか確信が持てません——期待されるリードパターンを一緒に確認できますか?」
断る場面 「それは私の問題ではありません。」 すべてにYesと言い、燃え尽きるか期待に応えられなくなる。 「このスプリントではこれを引き受けられませんが、この時期ならできますし、今すぐ助けられる人はここにいます。」
他者の仕事を認める まったく認めない。 チームチャンネルで曖昧な称賛を与える。 具体的な貢献を公に名指しし、リーダーシップへの可視化を推進する。

優しさが三つの中で一貫して最も難しいことに注目してください。同時に正直で、思慮深く、投資していることが求められます。お人好しは安上がりです。優しさには手間がかかります。そして意地悪は、短期的な効率がどうであれ、ほぼ常に時間とともに物事を悪化させます。

核心的な違い

お人好しはあなた自身の快適さを最適化します——難しいことを言う不快感を。優しさは相手の成長を最適化します。多くの場合、これらの二つは逆方向に引っ張ります。Kind Engineeringとは、常に快適さよりも成長を選ぶことです。

優しさがフォース・マルティプライヤーである理由

優しさが単なる「あると良いもの」——道徳的な志向だが実践的なレバーではない——だとしても、追求する価値はあります。しかし、高パフォーマンスなチームの研究と生きた経験は、それがより強いもの、すなわちエンジニアリングアウトプットへの真のフォース・マルティプライヤーだということを示唆しています。

そのメカニズムは心理的安全性を通じて動きます——組織研究者Amy Edmondsonによる用語で、後にGoogleのProject Aristotleによって広まりました。彼女の発見は、多くの業界のチームで確認されており、チームの有効性の最大の予測因子は、メンバーの平均IQでも、プロセスの洗練度でも、ツールの質でもないということです。それは、チームメンバーが対人的なリスクを取ることが安全だと感じるかどうか——「愚かな」質問をすること、自分が何かを知らないことを認めること、確実でない前に潜在的な問題を指摘すること、シニアの同僚と意見を異にすること——です。

心理的に安全なチームでは、バグを疑っているジュニアエンジニアがそれを言います。設計上の決定を理解していないエンジニアが、三日間間違ったものを作るのではなく、質問をします。リスクの高いデプロイの選択に気づいた人が、誰かがやってくれることを願うのではなく、レビューの会議で声を上げます。これらは勇気の劇的な行為ではありません。問題を本番で検出するチームとそうでないチームを分ける、日常的な情報の流れです。

優しさが心理的安全性を構築します。あなたが軽蔑の片鱗もなく質問に答えると、その人——そしてすべての観察者——が将来質問しやすくなります。ブレームレスなインシデント振り返りを実施すると、次回の際にヒヤリハットを報告しやすくなります。正直で思いやりのあるフィードバックを与え、受けた人がそれで成長すると、チーム全体がフィードバックは脅威ではなく贈り物だと学びます。

実践的な見返りは急速に複利になります:

  • バグがより早く表面化する。人々が無能に見えることを恐れないとき、半成形の懸念が本当のインシデントになる前に指摘されます。
  • 学習が加速する。質問がされます。知識が共有されます。ジュニアがより速く成長します。
  • 離職率が下がる。人々は尊重され、投資されていると感じるチームを去りません。小さくされていると感じるチームを去ります。
  • 意思決定が改善する。最も声が大きい人に支配されて自己検閲されるのではなく、多様な視点が実際に声に出されます。
優しさのフライホイール:心理的安全性が人々が声を上げることにつながり、問題が早期に表面化し、信頼が築かれ、安全性が深まります。 Kindness flywheel Psychological Safety 声を上げることが安全だと感じる 問題が表面化する 本番ではなく早期に 信頼が育まれる 正直なフィードバックが安全に感じる People Speak Up 質問、懸念、アイデア フライホイールが一回転するたびに、次の回転が楽になる。
優しさのフライホイール。心理的安全性が人々が声を上げることを促し、問題がより早く表面化し、チームが信頼を築き、信頼が安全性を深める。優しさがこのループを回し続け、意地悪な行動がそれを止めます。

優しさを実践する

哲学は、金曜日の午後4時にプルリクエストにコメントを残さなければならないときに役立ちます。実際に重要な瞬間において、Kind Engineeringがどのように見えるかをお伝えします。

コードレビューにおいて

コードレビューは、エンジニアリングにおける最も頻度の高い優しさのテストである可能性があります。うまくやれば、チームが持つ最も価値ある実践の一つです。優しさなくやると、人々が作業の提出を避け、怨恨からレビューを遅らせ、あるいは完全に関心を失うようになる恐怖の源になります。

ダイナミクスを一貫して改善するいくつかの原則:

  • 「何を」にコメントする前に「なぜ」を理解する。判決を下す前にオープンな質問をする。「コールバックではなくポーリングアプローチを使ったのが気になります——私が見落としている制約がありますか?」は対話への招待です。「コールバックを使うべきでした」はそれを閉じます。
  • 細かい指摘にラベルをつける。「Nit: ここはより説明的な変数名にするといいですが、そのままでも全然大丈夫です。」その一語が著者に伝えます:これはオプションで、これでブロックしていない、そして私の大きなコメントが本当に注目すべきものです。
  • コードと人を区別する。「この関数はいくつものことをしています」はコードについてのフィードバックです。「あなたはいつも何でもする関数を書きます」は人についてのフィードバックです。一方は有用で、もう一方は不快なだけです。
  • 大量のフィードバックには同期的な会話に切り替える。アプローチについて六つの大きな懸念がある場合、大量のコメントは公の叱責のように感じることがあります。10分間の通話の方が優しく、速く、実際に問題を解決できる可能性が高いです。

このトピックのより詳しい扱いについては、コードを優しくレビューする方法に関するコンパニオン記事もご覧いただけます。

インシデント対応において

インシデントはチームカルチャーのストレステストです。プレッシャーと現実の結果の下で、すべての習慣——良いものも悪いものも——が増幅されます。最も優しく最も効果的なチームはブレームレスな振り返りを実施します:人々は持っていた情報とツールで行動したという前提のもと、システムが失敗したとき、変更すべきなのは個人ではなくシステムだとします。

これは説明責任を下げることではありません。同じミスが単独で起こることはほとんどないと理解することです。誰かが悪い設定をデプロイしたのは、デプロイプロセスが二つ目の目を必要としなかったからです。誰かがアラートを見逃したのは、そのアラートがその朝に発生した40件のうちの一つだったからです。非難する人間を見つけることは解決のように感じますが、何も修正しません。ブレームレスな事後分析は人間が落ちたプロセスのギャップを見つけ——代わりにそれを修正します。

会議において

優しいエンジニアはスペースを作ります。誰かが発言していないことに気づいて招き入れます。速い口調で物静かな思考者を押し流しません。全員が——最も声が大きかった人だけでなく——同じ理解で退出できるよう、決定を要約します。コミットメントをフォローアップして、人々の時間と言葉が意味を持つと扱います。

断る場面において

直感に反して、明確に早めに断ることは、Yesと言って期待に応えられないより、しばしば優しいことです。引き受けられない仕事を受け入れると、頼んだ人は実現しないコミットメントを待ち、その周りで計画を立てることに時間を費やします。「これは15日まで引き受けられませんが、今すぐ助けられる人がここにいます」と言うとき——それは本当の意思決定ができる有用な情報です。

グルーワークとスポンサーシップにおいて

最も優しいエンジニアリングの仕事のいくつかはほぼ目に見えません:次の新入りが三日間混乱して過ごさないようにオンボーディングドキュメントを書く人、ジュニアのアイデアが話し流される前に企画会議でそれを支持する人、同僚のマネージャーに認識されるべき作業について伝える人。これはスポンサーシップ——誰か他の人の成長と可視化に積極的に投資すること——です。比較的コストが低く、莫大な複利効果をもたらします。

シンプルな習慣

週に一度、自問してみてください:このチームで良い仕事が見えていない人はいないか?そして、正しい部屋で、正しい人に、その内容について何か具体的に言ってみましょう。これは優しいエンジニアがすることの中で最も影響力があることの一つです——そして、一貫してやっている人はほとんどいません。

優しさは軟弱さではない

これは最もよく出てくる反論であり、直接答える価値があります。Kind Engineeringは高い基準と完全に両立します——実際、それを必要とします。目標はすべての人を快適にすることではありません;正直で建設的な関与を可能にすることです。それらは異なるものです。

高い基準を優しく保つとは:基準が何であるかを明確にし、なぜそれが重要かを説明し、人々がそれを満たせるよう助けること——単に満たせていないことを指摘するのではなく。「テストなしにはこれをマージできません。なぜなら六ヶ月前のインシデントから私たちを守っているのはカバレッジだからです」は高い基準であり優しい。「テストがありません、明らかに受け入れられません」は高い基準だが意地悪です。望む結果は同じで、そこに至る道がまったく異なります。

うまく意見を言うことも優しさです。決定に同意しないとき、その理由とともに明確にそれを言うことは贈り物です——特に、反対方向の決定が出ても従うなら。意地悪なのは受動的な反対です:部屋では同意し、後でその結果を損ない、あるいは発言が気まずく感じるから黙って悪い決定が進むことを許すことです。

優しいエンジニアはチームを守ります。それは時として、非現実的なスケジュールについてステークホルダーと難しい会話をすること、あるいはその部屋で自分を守れない人々を燃え尽きさせるような要求に反論することを意味します。それはお人好しではありません——いくらかの個人的なコストをかけて行使される、本物のケアです。

「優しさ」が回避のカモフラージュになっていないか注意

批判的なフィードバックを与えることが一切ない、振り返りで懸念を提起することがない、あるいは常に物事をなだらかにしているとしたら——それは優しさではありません。優しさに変装した衝突回避です。相手はあなたの誠実さに値します。あなたが恐れるほど傷つきやすくはありません。

自分自身への優しさ

自分自身に意地悪なエンジニアは、しばしば他者に意地悪です。慢性的な残業、助けを求めることを拒否すること、常に有能に見える必要があること——これらは美徳ではありません。判断力を侵食し、怨恨を生み出し、真の協働を難しくする疲弊したパターンです。

ヒーロー文化——インシデントを修正するために徹夜した人、コンポーネントを一人で書き直した人、常に利用可能でいつも成果を上げる人の称賛——は魅力的ですが危険です。ヒーローは不可欠な存在に感じ、他のすべての人に同じように振る舞うための暗黙の圧力を与えます。また、危険なほど知識を集中させ、その人が不在のときにチームを脆弱にします。

持続可能なペースは低い志の表れではありません。明確に考え、良いフィードバックを与え、会話に真に存在し、数ヶ月で燃え尽きるのではなく何年も良い仕事をし続けることを可能にするものです。自分に優しいエンジニア——境界を設定し、助けを求め、不確実性を認める——は、同僚が最も一緒に働きたいと思う人になる傾向があります。脆弱性は、判明するところ、信頼を築きます。無敵さを演じることはそうではありません。

これはまた、助けを遅くではなく早く求めることも意味します。行き詰まって二時間後に聞く質問は、自分自身と頼む相手への優しさです——有用なコンテキストと解決可能な問題を与えます。二日間の沈黙した奮闘の後に聞く同じ質問は、全員にとってより難しいです。

役割とチームサイズに応じて優しさがどう変わるか

Kind Engineeringは、あなたがどこに位置するかと組織の規模によって多少異なりますが、核心は変わりません。

個人貢献者として、あなたの優しさのほとんどはローカルです:コードレビュー、ペアプログラミング、Slackでの質問への応答、次の人が同じことをしなくて済むよう今知ったことをドキュメント化するか。これらの瞬間は個別に小さく、積み重ねると膨大です。これらをすべてのICが仕事の一部と扱うチームは、そうでないチームより目に見えて良い職場です。

テックリードとして、チームの規範に対して不均衡な影響力を持っています。あなたがフィードバックを与える方法が、フィードバックが与えられる方法になります。判決を下すのではなく質問をすれば、他の人もそうします。問題を早期に表面化させた人を称えれば、全員が問題を早期に表面化させることが安全になります。あなたの最も価値あるKindnessの投資は、チームのやり取りの文化を設定することです——そして最も速くそれをする方法は、すべてのコードレビューとすべての会議で自分自身でその行動をモデルにすることです。

マネージャーとして、レバーが変わります。心理的安全性には今や「これを言ったら仕事を失うか?」という問いも含まれます。これは多くの人にとって現実の懸念であり、積極的に対処する必要があります——言葉で、リスクを取ることへの反応で、悪いニュースを持ってきたときの対応で。悪いニュースに対して苛立ちで反応するマネージャーは、悪いニュースを隠すよう部下を訓練します。「早めに教えてくれてありがとう、一緒に考えましょう」と反応するマネージャーは、早めに教えるよう部下を訓練します。結果の違いは劇的です。

大きな組織では、規模での優しさはしばしば優しい行動をデフォルトにする構造を作ることを意味します:ブレームレスな事後分析テンプレート、エンジニアリングハンドブックの明示的なコードレビュー規範、対人パターンを表面化させる360度フィードバックプロセス、個人が出荷したものだけでなくチームメンバーを育て支援する方法を含む昇進基準。

まとめ

  • 優しさはお人好しではありません:お人好しは不快感を避け;優しさは相手の成長を気にかけているから真実を伝えます。
  • 心理的安全性がメカニズムです:人々が安全に声を上げられると感じると、問題はより早く表面化し、学習が加速し、チームのパフォーマンスが向上します。
  • 優しさには実践があります:レビューでは判断の前に質問する;ブレームレスな振り返りを実施する;明確に断る;他者の可視化をスポンサーする。
  • 高い基準と優しさは両立します:基準が何かを明確にし、なぜ重要かを説明し、人々がそれを満たすのを助ける——ギャップを指摘するだけではなく。
  • 自分自身への優しさは選択肢ではありません:ヒーロー文化は脆弱な文化です;持続可能なペース、助けを求めること、不確実性を認めることはすべて、優しさが必要とする信頼を築きます。
  • 役割がレバーを形作ります:ICは日常のやり取りで規範を築き;リードはチームレベルで行動をモデルにし;マネージャーはリスクと悪いニュースへの反応を通じて構造的な安全性を作ります。
  • さらに読む:この記事のアイデアはkind.engineeringに形作られました——エンジニアリングチームにおけるコミュニケーション、誠実さ、心理的安全性について思慮深く実践的なリソースです。

優しさは複利になります。うまく届いた正直なレビュー、軽蔑なしに答えられた質問、実際にギャップを見つけたブレームレスな事後分析——これらのひとつひとつが、チーム全体が引き出す信頼口座への小さな預金です。時間をかけて、その口座こそが、良い仕事が起こる場所に感じるチームとそうでないチームを分けるものです。丁寧に築く価値があります。

一つの特定の実践についてより深く掘り下げたい場合、このシリーズの次の記事では素晴らしいプルリクエストの書き方という職人技を見ていきます——それ自体がレビュアーへの優しさの行為です。

よくある質問

Kind Engineeringとは何ですか?
Kind Engineeringとは、コードレビュー、インシデントの振り返り、設計の議論、日常的な協働において——チームメンバーを誠実さと真の思いやりで扱う実践です。リソースkind.engineeringによって広まり、三つのアイデアを中心にしています:コミュニケーション、誠実さ、安全性。優しいエンジニアは、相手に成長してほしいから真実を伝え、人々が安心して声を上げられる条件を作り、自分のアウトプットと同様にチームメンバーの成功にも投資します。
職場で優しくあることとお人好しであることの違いは何ですか?
お人好しはあなた自身や他者の不快感を避けることを最適化します。欠陥のあるプルリクエストを気まずさを避けるために承認し、仕事が良くなかったときも「すごい仕事」と言い、決定が間違った方向に向かっていても会議で黙ります。これに対して優しさは、相手の成長を気にかけているから真実を伝えます。正直なコードレビューのコメントを残し、率直な設計フィードバックを与え、会議で難しいことを言います——しかしこれらすべてを、相手を尊重し成長を助ける方法で行います。お人好しは安上がりで快適;優しさは努力と投資を要します。
ソフトウェアチームにおける心理的安全性とは何ですか?
心理的安全性——研究者Amy Edmondsonの概念でGoogleのProject Aristotleの中心——は、チームメンバーの間での共有された信念です:愚かに見えずに質問をすること、自分が何かを知らないことを認めること、確信がなくても懸念を指摘すること、シニアの同僚と意見を異にすることなどの対人的なリスクを取ることが安全だという信念。エンジニアリングの観点では、見つけた潜在的なバグについて言及するジュニアエンジニアと、間違いを恐れて黙っているジュニアエンジニアの違いです。心理的安全性が高いチームは、より早く問題を発見し、より速く学習し、より良い意思決定をします——重要な情報が実際に流れるからです。
コードレビューで優しくするにはどうすればいいですか?
一貫して違いをもたらすいくつかの習慣:(1)判断する前に質問する——「なぜこのアプローチが選ばれたのか気になります」は対話を招き、あなたが持っていなかったコンテキストを明らかにするかもしれない。(2)細かい指摘を明示的にラベル付けする——「Nit: ここはより説明的な名前を検討してほしいが、ブロッキングではない」は著者にどのコメントが本当に重要かを伝える。(3)コードについて話し、人についてではなく——「この関数はやりすぎです」は有用なフィードバック;「あなたはいつもこうします」はそうではない。(4)大量のフィードバックには通話に切り替える——六つの大きな懸念をインラインコメントとして残すことは公の叱責のように感じることがある;10分間の通話で多くが解決される。詳しくはコードを優しくレビューする方法のコンパニオン記事をご覧ください。
優しくあることは基準を下げることを意味しますか?
いいえ——そしてこれが最も重要なことです。Kind Engineeringは高い基準と完全に両立します;実際、それを要求します。違いは基準をどのように保つかにあります:優しいエンジニアは基準が何であるかを明確にし、なぜ重要かを説明し、相手がそれを満たすのを助けます。「テストなしにはこれをマージできません——なぜそれが重要かとどうアプローチするかはこうです」は高い基準であり優しい。摩擦を避けるためにすべてを承認することは「お人好し」ですが、最終的には役に立ちません。正直なフィードバックを決して与えない優しさは、単なる衝突回避の変装です。