世界を動かす技術を、日本語で。

専門家が集まる場でのリーダーシップの取り方

概要

  • 技術リーダーは すべての専門知識 を持つ必要はない
  • 役割は 通訳・調整役 としての価値にある
  • 社会的スキル とコミュニケーション力が成果を左右
  • 問題の本質を 明確化し翻訳する ことが重要
  • チームの専門家が 最高の仕事 をできる環境づくりが使命

技術リーダーの本質的な役割

  • チームには バックエンド、フロントエンド、プロダクト など各分野のエキスパートが在籍
  • リーダー自身は 特定技術の最深部 に詳しいわけではない
  • 役割は 「すべての答えを持つこと」ではなく、「答えを見つけ、つなげること」
  • 技術的な詳細よりも 全体像の把握と伝達 に注力
  • 開発チームとプロダクトチームの 期待値調整や通訳 が重要任務

技術リーダーシップとは「翻訳力」

  • 技術リーダーは 最も賢い人 である必要はない
  • 最も効果的な「翻訳者」 であることが求められる
  • 技術的事実だけでは 人は動かない 現実
  • 社会的スキル と共感力が生産性の鍵
  • チーム間の 誤解や温度差 を橋渡しする役割

ゴールを見失わないリーダーシップ

  • 各専門家は 細部に没頭 しがち
  • リーダーは 全体目標(フォレスト) を見続ける存在
  • 技術議論が 本質から逸脱 しないよう軌道修正
  • 問題の 症状と本質 を切り分けて定義
  • 各視点の違いを 調和し、共通理解 へ導く

「わからない」と言える強さ

  • リーダーが 全知全能を装う 必要はない
  • わからないが、一緒に考えよう」は信頼構築の鍵
  • 専門家に 発言権と活躍の場 を提供
  • 議論では「正解選び」よりも トレードオフや影響 の整理
  • 必要な専門性を 適切に引き出す力 が真価

翻訳力の実践例

  • 技術者向け:「 認証サービスの依存関係サーキットブレーカー の重要性」
  • プロダクト向け:「 ログイン障害が全体影響、対策で納期延長」
  • 経営層向け:「 信頼性重視の方針転換、リスク低減を優先」
  • 各層に合わせた 説明と翻訳 がリーダーの役割
  • 専門家や非技術者が 相互に歩み寄る必要はない 環境づくり

「だからやるんだ」ではなく、理由を伝える

  • 権威で 押し切るリーダーシップ は逆効果
  • 判断の 背景や狙い を丁寧に説明
    • 「リスクが高いので 保守的な選択
    • アーキテクチャ方針 に沿った工数投資」
    • 納期重視 でシンプルな実装を優先」
  • 専門家でなくても良い と自覚することで、より効果的なリーダーに
  • チームに必要なのは
    • 明確な問題定義
    • 意思決定の文脈
    • 異なる視点の橋渡し
    • 不要な複雑さからの保護
    • 最良の仕事をするための空間

技術リーダーの本当の価値

  • すべての答え を持つ必要はない
  • 適切な問い を立て、 正しい人 が発言し、 正しい理由 で意思決定する支援
  • 技術リーダーシップとは 命令や管理 ではなく、 つながりと文脈 の提供
  • 指揮者がすべての楽器を演奏するのではなく
  • オーケストラ全体が同じ楽曲を理解し、演奏できるよう導く役割
  • 「一番賢い人」よりも「 最も価値を引き出す人」であることが本当の挑戦

Hackerたちの意見

ウェインバーグの『テクニカルリーダーになる』をおすすめするよ。ソフトウェアの例は古いけど、ウェットウェアに関する観察やアドバイスは今でも通用するからね。

「それはそういう理由だから」というフレーズが大好き。こういうテーマに興味がある人には、ヴァネッサ・ヴァン・エドワーズの本がめっちゃ役立ったよ。要するに、状況に応じて温かさと有能さを上手く伝える方法について書いてあるんだ。もちろん、これは広大な分野で、誰もが全ての答えを持っているわけじゃないけど、私にはいくつかの成功をもたらしてくれた。

「議論する価値のないバイクシェッドだから」と言った方がいいかも。正しい答えがないことも多いけど、決断は必要だよね。

「私はリーダーだから、こうやってやるつもりだ」とは言わない方がいい。できるだけ避けて、でも適切な答えの時には躊躇せずに使ってね。みんなの意見を聞く時間を持って、しっかりした決断を下すことが大事。結論を一度、二度、三度説明してもいいけど、時にはチームが目標に関係ない細かいことについて無限に無駄な議論にハマっちゃうこともある。その場合、リーダーとして秩序を保つために独裁者になるのがあなたの義務だよ。スティーブ・ジョブズが言ったように、「みんなを幸せにしたいなら、リーダーにならないで。アイスクリームを売れ」ってね。もしそうなったら、チームメンバーとの信頼を再構築することを忘れずに、あなたがそう行動した理由を理解してもらうようにしよう。

これは私が苦労して学んだ教訓だよ。初めてのマネージャーの時、全てのことについて合意を築こうとして、自然にみんなが同意するだろうと考えてた。最初は良いチームでうまくいったけど、その後、他のチームの一部を引き継いで、すべての現代のものはゴミだと思っている知ったかエンジニアたちがいて、25年前のやり方でやるべきだと言ってた。彼らが全てをストーンウォールするのを許しすぎて、最終的には合意に達するだろうと思って無駄に時間を使ってしまった。ある時点で、彼らの意見を聞いた後は、しっかりと足を踏み入れて方向性を決める必要があることに気づくんだ。

スティーブ・ジョブズは、チームを部屋に閉じ込めて共通のビジョンに到達させることで知られていたよね。みんなを揃えるのは難しいけど、私の限られた経験では、そうしないとすごく非効率な実行になっちゃう。さらに言うと、意見を無視されると人は小さく感じたり、拒絶された気分になるんだよね。時には人の気持ちや考えを無視してでも物事を進める必要があるけど、それを長続きさせるのは無理だよ。

いい指摘だね。「みんなの意見が聞かれる」と「みんなに拒否権がある」ってのは大きな違いがある。決定を下すのはリーダーの仕事の一部だよ。もちろん、すべての問題でリーダーが決定を下さなきゃいけないなら、マネジメントかインセンティブの問題か、あるいはみんなが戦略を理解していないってことだね。

時間はかかったけど、F50での仕事を始めて数年後に、ドメイン内でバスナンバーが3の状況に直面したんだ。解決策Aは見た目は良さそうだけど、実際はひどいことになるってみんな知ってた。でも、チームの他のメンバーはそれに夢中で、私たちの理論的な説明は全然説得力がなかった。人気投票の結果、ちょっとした緊急事態が増えて、いくつかの部門が遅れちゃうことになり、最終的には上司に相談して投票を無視することになった。これをうまく収めようとしたとき、決定の影響を受ける人たちが解決策Cを望んでいて、他のみんなが解決策Aを望んでいるってことに気づいたんだ。未来の決断において、実際に影響を受ける人たちが人気投票に拒否権を持つ必要があるってことを覚えておく価値があると思う。プロジェクトの勢いを失いたくないならね。大きなプロジェクトでは、異なるドメインを担当するリーダーがたくさんいて、彼らは主要なアーキテクチャの決定、特にコンウェイの法則に基づくモジュール化の間のインターフェースについて合意に達するんだ。上司は合意が得られないときだけ決定を下せばいい。ほんとに「必要」なんだよ。私が今までで二番目にひどい上司は、決定を下すことを拒否して、リーダーが偶数だったから、何度も同じことが起こった。毎月数時間、彼についての不満を言い合って、ある参加者は本当に彼を殺したいと思ってたし、私たちに遺体を隠す手伝いを頼もうとしてた。

「俺がリーダーだから、こうやってやるぞ」 「わかった。終わったら教えて。」

みんながあなたがしているトレードオフの理由を理解できるようにしないとダメだよ。それに、もしあなたが間違っていて彼らが正しかった場合、あなたが責任を取るってことも伝えないと。

100%同意。素晴らしいリーダーのもとで働いたことがあるけど、彼は優秀なエンジニアたちを率いていた。でも、ソクラテス式の方法にこだわって、考えさせる質問をして私たちに解決させようとしてた。重要な議論がぐるぐる回って、イライラすることもあった。時には、決断を下す必要があるよね。

人間は時々、リーダーにしっかりしてほしいと思うことがある。静かな人たちは、進展ができるようにおしゃべりな声を黙らせてほしいと思ってるかもしれない。そして、おしゃべりな人たちは自分のスキーが前に出すぎて、引き下がる優雅な方法がわからないから、リーダーが間違ったときに「ほら、言ったでしょ」って言う準備ができてても、閉じ込められるのもまあまあ受け入れちゃうんだよね。

「みんなを幸せにしたいなら、リーダーにならない方がいい。」これが一番大事な言葉だよ。誰かの気持ちを傷つけることを恐れちゃダメ(もちろん、意図的にではなく、できるだけ優しくね)。みんなを幸せにしたいと思ってたら、何も進まないから。

開発者にこれを言うと「目をひっくり返される」ことが多いんだ:事実で誰かを納得させることはできない。技術的リーダーシップでも、人生でもそうだよ。エンジニアは特にこのフラストレーションに陥りやすい。技術的には正しいのに、相手に合った言語で話せていないから。

これは受け入れるのが難しい教訓だけど、理解しなきゃいけない。地元でこの問題を解決するための努力がもっとないように感じて、まだ少しフラストレーションが残ってる。例えば、一般的には聴衆に話しかけて感情的なアピールをする必要がある。でも、上司である私がそれを超えて事実に基づいて働く方法を理解するべきだと思う。少なくとも可能な限りはね。それがあまり見られないんだ。

もっといい聴衆を得る必要があるよ。最近、コロナは嘘だと思っている良い開発者に会ったけど、できるだけ避けるようにしてる。彼の周りを丁寧にやり過ごせると思ってるかもしれないけど、それがワクチン懐疑論者がCDCを崩壊させる原因になるんだ。

方向性としては合ってるけど、完全に正確とは言えないと思う。もっと正確に言うと、あなたの聴衆は事実を意思決定基準に変えるための経験や文脈を持っていないってことだね。「生のデータ」を「消費可能な洗練された事実」に翻訳する必要がある。それが良いコミュニケーターの役割だよ。元の言い回しだと、決定が事実に基づいていないか、感情的であるかのように聞こえて、目をひっくり返したくなる。

目をひっくり返したくなるのもわかるよ。だって、これは大きな単純化だからね。事実で人を納得させる状況は決して珍しくないし。その人は、特に役に立つわけでもない人気のフレーズを繰り返してるから、目をひっくり返されてるんだと思う。

倫理、論理、感情が必要だね。論理だけじゃダメだよ。

「専門家」って言葉、今はあんまり意味がないよね。彼らは雇い主や資金提供者、さらには政治的イデオロギーに支配されてることが多いし。

新しいやり方って、反対意見に対して「あなたの言う通りです」と言って、元の提案をあまり変えずに言い直すことだと思ってた。

それって、ただのずる賢い感じがして、信頼を壊すだけだよね。

プロダクトチームが「シンプルな」機能をリクエストすると、必要なマイクロサービスを更新するために関わる3つのチームのことを考えちゃうんだよね。現代のウェブ、時々本当に嫌になる。

代わりに何をするの?

自分が「リーダーだ」って言うのはあまり良くない(不安に見えることがあるからね)。でも、必要な情報を集めて決定したら、「じゃあ、こうするよ」とか「これをやってほしい」と自信を持って言えるようにしないと。

この文脈でのリードデベロッパーって何なんだろう?エンジニアリングマネージャー?それともアーキテクト(スタッフエンジニアとか)みたいな感じ?特定のプロジェクトを担当してるエンジニア?それぞれの役割には違ったダイナミクスがあるよね。彼の経歴を読んでると、フリーランスなのかな?それともコンサルティング会社を持ってるのかな?って感じがする。そうなると全然違うダイナミクスになりそう。

航空宇宙の世界では、「システムエンジニア」って呼ばれてるよ。リードの役割は、1: システム全体を理解してるけど、細かいところまで知ってるわけじゃない。2: プロジェクト全体を計画すること。編集: ソフトウェアの世界では、タイトルが「アーキテクト」ってこともある。これって、階層やキャリアアップのための人工的な昇進にこだわる組織以外では、あまり「マネージャー」にはならないことが多い。マネージャーは通常、人やスケジュール、リソースに関心があって、技術的な問題にはあまり深く関わらない。でも、リードとマネージャーは、どちらかが休暇中、病気、辞めた時なんかにはお互いに補完し合うこともあるよ。