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

シニア開発者が専門知識を効果的に伝えられない理由

2026年5月13日原文(nair.sh)

概要

  • シニア開発者には「新しいもの好き」と「複雑さ回避派」の2タイプが存在
  • ビジネスには「不確実性削減」と「安定性維持」という2つのループがある
  • シニア開発者は複雑さによるリスクを避けるが、他部門はスピード重視
  • コミュニケーションのズレはこのループの違いから生じる
  • AIの登場で「スピード」と「スケール」のシステム分離が重要に

シニア開発者の2つのタイプ

  • チームに入ると、 2種類のシニア開発者 に出会う傾向
    • 新しいツールや事例を持ち込むタイプ
      • 「このツール面白い」「他社はこうしてる」「HackerNewsで見たベストプラクティス」
      • 業界経験豊富、コミュニケーション力はあるが、自分とは合わない人も
    • 最小限主義・回避型タイプ
      • 「本当に必要?」「やらなかったら?」「今は我慢できる?」
      • 複雑さを極力避け、既存のものを再利用・減らすことを重視

複雑さを恐れる理由

  • シニア開発者が最も恐れるのは 複雑さ(Complexity)
    • 特殊ケース、if文、DBテーブル追加、新コンポーネントなどを極力減らす
    • システムへの追加は、 複雑さ増大=リスク増大 を意味
  • 責任を持つ立場になると、誰もが複雑さの怖さを理解するようになる

ビジネスの2つのループ

  • 企業活動は 2つのループ で説明可能
    • 第1ループ:不確実性削減
      • マーケター、営業、プロダクトマネージャー、CEOなどが所属
      • 目的は市場での学習とフィードバック獲得
      • 最大の敵は 不確実性(Uncertainty)
      • スピードが最優先、どんどん試して市場から学ぶ
    • 第2ループ:安定性維持
      • 顧客がつき始めた後のフェーズ
      • サービスの継続・保証・安定運用が主目的
      • シニア開発者はここで活躍、 複雑さ=安定性低下 を警戒

コミュニケーションのズレ

  • 2つのループが同時進行し、 問題意識の違い がコミュニケーションの障壁に
    • ビジネス側は「不確実性削減=スピード重視」
    • シニア開発者は「複雑さ回避=安定性重視」
  • シニア開発者が複雑さの話ばかりすると、他部門には響かない

シニア開発者のコミュニケーション改善策

  • 他部門の「不確実性削減」に寄り添う表現が重要
    • 「もっと早く試せる方法は?」 と提案
      • 「quicker」でスピードを意識
      • 「something」で代替案を示唆
      • 「try」で完璧でなくてもOKという柔軟性
  • 最小限で試し、既存のものを再利用する姿勢
    • 例:Google Formsでアンケート、既存UIにボタン追加、1つの指標だけで分析
    • 「ケーキが欲しい?サンドイッチにローソクを立てればOK」

AIによる影響と新たな課題

  • AIの登場で「複雑さ回避」の意義が問われる
    • AIは高速に多くを構築できるが、「責任」を持たない
    • システムの可読性・保守性・拡張性・安定性が損なわれやすい
    • スピード重視の結果、安定性が大きく犠牲に

「スピード」と「スケール」のシステム分離

  • 解決策として システムの分離(デカップリング) を提案
    • Speed版システム
      • AIやジュニア開発者、他部門が自由に実験・市場検証
      • 可読性や安定性は二の次、とにかく早く試す
    • Scale版システム
      • シニア開発者主導で安定性・可読性・拡張性を重視
      • Speed版でうまくいったものだけを選抜し、堅牢に実装
  • フィクション作家の「初稿」と「編集」作業の関係に近い
  • 「3日でSpeed版、6週間でScale版」など、 両者のニーズを満たす提案 が可能

まとめ

  • シニア開発者は「複雑さ管理」だけでなく「不確実性削減」への貢献を意識
  • AI時代は「スピード」と「スケール」を分離し、両者のバランスを取る設計が重要
  • シニア開発者=編集者的視点の価値がより高まる時代

Hackerたちの意見

シニア開発者として、私は一律の意見が本当に嫌いです。実験者と同じくらい、以下のような失敗も見てきました。

「本当にそれが必要なの?」 「これをやらなかったらどうなるの?」 「今はなんとかなる?後で重要になったら考えようか?」 システムも製品もそれぞれ違うので、CTスキャナーのファームウェアを作るなら、新しいことに挑戦するアプローチは、100クライアントのCRUD SaaSとは全然違います。熱心でオープンなシニアがシステムを抜け出せない角に追い込むこともありますが、PHP5があれば十分だと言う人もいます。

いわゆるサバイバー・バイアスです。あるVPが、以前の会社でうまくいったからという理由でエラスティックサーチを使うように命じました。結果的に、私たちにも合っていました。VPの言うことを聞いて技術的な決定を下し、エラスティックサーチを使いましょう。

実は私も似たようなことを言いに来ました。

ああ、ベイビー、これが私のシニア開発者だ。避ける人、減らす人、リサイクルする人。彼らはできるだけ開発を避けたがります。これが良い時もあれば、改善を積極的に試みるのが最善の方法である時もあります。良いシニアは、その時を見極めることができるのです。

OPが伝えようとしているメッセージを見落としているかもしれないよ。強調された特性は、すべてより良い安定性につながるからなんだ。

同意する。文脈が重要だよね。シニア開発者としては、複雑さやリスク、利点と欠点を理解する必要がある。ビジネスサイドも理解しないと。スタートアップか、すでにキャッシュカウの大企業かで、製品のコア機能を変更する際の影響は全然違うから…文脈、文脈、文脈だよ。

同じこと考えてたけど、再度その部分を読み返して気づいたことがある:>「はい、はい、もちろんこれは単純化されています。アイデアを明確に伝えるために、極端な例を挙げているのです。」全てのことに言えるけど、黄金の中庸が適用されるって、この記事が主張してると思う:>「'スピード'バージョンのシステムでうまくいったことといかなかったことが、'スケール'バージョンのデザインに影響を与えています。」

私が見た中で、プロトタイプが実際のプロダクションに進むことが多いです。書き直し?みんなが「これが昇進したらゼロから書き直す」と約束したことが何度かありましたが、結局実現しませんでした。記事では責任やアカウンタビリティに触れていますが、リスクを取る人にはそれがありません。定義上そうです。クレイジーなアイデアを持って、急いで出して、クライアントが食いつくことを期待します。そして利益を得ます。どうやって機能させるか、スケールさせるか、コストが売価を超えないようにするかは、もうあなたの問題ではありません。右側のループ。最近人気のある2社は、これを極端に進めました。何かを早く出荷して、線形にしかスケールしないので資金を調達します。成功した企業、無数のユーザー、その中にはお金を払う人もいます。誰が悪いのか?シニア開発者か、単に「それはどう持続可能なの?」と尋ねる合理的な人か?そういう人は解雇されるので、残った人は信じる者になります。

みんなが「これが昇進したらゼロから書き直す」と約束したことが何度かありましたが、結局実現しませんでした。古い名言:「一時的なハックほど永続的なものはない。」

だからこそ、十分に経験のあるエンジニアリングリーダーシップが必要なんだよね(ICリーダーシップと管理の両方)。もしエンジニアが非技術的なステークホルダーの言うことを何でも従うなら、責任の空白ができて、いつかは大惨事が起きる。最もCYAが下手な人が責められることになるよ。一方で、ほとんどのビジネス問題は、十分に視野を広げて「なぜ」をたくさん聞けば、ひどい一方通行の扉を通らずに合理的に解決できる。もちろん、どこでもエンジニアリングがそれを許可されるわけじゃないけど、許可されないところでは、経験豊富な人たちを維持できなくなる。彼らは自分の判断が評価される場所に行くだけだから。時には技術的負債がビジネスにとって正しいこともあるけど、十分に経験のあるエンジニアは、常に逃げ道を作ることができる。でも、システムの純粋さをビジネスの問題よりも優先することはできない。システムはビジネスによって支払われているから、それを見失ったら、影響力の基盤を失ったことになる。

だから、チームの誰も聞いたことがない言語で書かなきゃダメなんだよね。

何度かみんなが約束したのを思い出すよ。「これが昇進したら、ゼロから書き直す」って。でも、結局そんなことはなかった。なんでそんなことするの? もし需要を満たしてて、必要な機能もあって、実際には再構築する必要がない「プロトタイプ」があるなら、なんでそんなに時間と労力をかけるの? それは意味がないよ。プロトタイプや「概念実証」であることは、実際の問題を列挙できないなら本質的には関係ない。私は、技術的負債に悩まされてるチームと一緒に働いてるけど、彼らはそれが大きなリスクで、作業を遅らせるって文句を言ってる。でも、私たちのインシデントログを見ると、あまりインシデントはなく、プロダクションでリスキーなコードを実行してるせいで起きたものもない。リスクレジスターにも「このコードは古くてゴミで、過去のEOL依存がある」なんて項目はないし、どのチームも技術的負債がどのように、またはどれだけ彼らを遅らせているかを具体的に説明できたことはない。だから、誰もが「影響がない問題を直すのに時間を使ってほしくない」と驚くべきではない。逆に、あるチームはアプリを立ち上げる前に数ヶ月かけてリファクタリングしてた。彼らはそれを作った後、「もっと良くできる」と決めて、立ち上げ前にほとんどを再作成するのに多くの時間を費やした。彼らが自分たちの作品が気に入らないから、すべての価値が遅れたんだ。そして、当然リーダーシップチームはそれに怒って、今では信頼がほとんど残ってない。チームとステークホルダーの間で仕事の納品について良い会話が必要だけど、それがないと誰も幸せになれない。もしそれが起こらないなら、ステークホルダーが常に勝つことになる。

この問題は確実にAIコーディングエージェントが登場する前からあったけど、彼らによって悪化しているかもしれない。記事は「一つは捨てるつもりで計画しろ」という古いアドバイスで締めくくられてる。もちろん、私も『神話の人月』を読んだけど、どうやって意思決定者を納得させる?

Hacker Newsで議論の続きを見る