Skip to content

Instantly share code, notes, and snippets.

@podhmo
Created January 26, 2026 13:40
Show Gist options
  • Select an option

  • Save podhmo/c5b54ab9c68eedca44d58e91cadae37c to your computer and use it in GitHub Desktop.

Select an option

Save podhmo/c5b54ab9c68eedca44d58e91cadae37c to your computer and use it in GitHub Desktop.
Uploaded via Gist Uploader - 2026-01-26T13:40:00.162Z

AI時代のプログラマーの生き残り方と、これからの仕事の話

📉 「もう9割できました」は大体ウソだという話

最近流行りの生成AI(ChatGPTなど、言葉で指示すると文章やプログラムを作ってくれるAIのこと)を使うと、プログラミング開発の景色がガラッと変わってしまいました。

これまでは、時間をかけてコツコツ作った分だけ進捗が進んでいました。でもAIを使うと、最初の「なんとなく動くもの」を作るのが爆発的に速くなります。一瞬で「90%くらいできた!」という状態になります。

でも、ここには大きな落とし穴があります。

AIが作ったプログラムは、言ってみれば「赤の他人が超高速で書いた下書き」みたいなものです。パッと見はいい感じでも、中身のつじつまが合っていなかったり、細かい部分が適当だったりします。

残りの「仕上げの10%」をやろうとした時、あなたは「他人が書いた大量のプログラム」を全部読み解いて、どこが間違っているかを探し出し、直さなければなりません。これは、自分でゼロから書くよりもずっと疲れるし、頭を使います。

つまり、「進捗バーは90%まで一瞬で進んだけど、残りの10%を終わらせるのに、全体の90%以上の体力と予算を使う」という変なことが起きるのです。これをわかっていないと、最後にお金も時間も足りなくなって大炎上します。

🧩 AIにお任せするなら、人間は「監督」になろう

これからの時代、人間がやるべき仕事は「自分でコード(プログラム)を書くこと」ではなくなります。「AIという、仕事は速いけどちょっとおっちょこちょいな部下」をどう上手く働かせるか、という「環境作り」がメインになります。これを難しい言葉で「エージェンティック・コーディング(AI代理人による開発)」と言ったりします。

具体的に人間がやることは3つです。

  1. 絶対に守るべきルールを作る AIは確率で動くので、サイコロの出目次第でたまに変な動きをします。だから、「ここからはみ出したらダメ」というガードレール(テストやルール)を作ってあげます。「このテストに合格するまで、何度でも書き直してね」と指示するのです。

  2. バラバラの部品をくっつける(接着剤の役割) AIは「ログイン機能」とか「検索機能」みたいな、小さな部品を作るのは得意です。でも、それらを合体させて一つの大きなシステムにするのは苦手です。部品と部品がうまく噛み合うように調整してあげるのが人間の役目です。

  3. 「とりあえず動く」を「製品」にする AIが作るのはあくまで「試作品」です。それを、たくさんの人が同時に使っても壊れないようにしたり、セキュリティを強化したりして、プロが使う道具(製品)に仕上げる。この「最後の硬化作業」はまだ人間にしかできません。

⚖️ 仕事が速くなっても、帰れない問題

AIを使えば、作業自体はすごく速く終わります。でも、会社員や受託開発(人から頼まれて作る仕事)をしていると、困ったことが起きます。

上司やお客さんは、単に「プログラムが完成すること」だけでなく、「いつでも連絡がつくこと」や「会議に出て安心させてくれること」にお金を払っているからです。これを「アベイラビリティ(いつでも対応できる状態)」と言います。

AIのおかげで1時間で作業が終わっても、「定時まで会社にいなさい」とか「何かあったらすぐ返信して」と言われたら、結局あなたの自由時間は増えません。むしろ、たくさんのプロジェクトを掛け持ちして、あちこちから「ちょっといい?」と話しかけられるようになり、頭の中がパンクしてしまいます。

これを避けるには、自分の時間を切り売りする働き方をやめて、AIと一緒に自分だけの小さなビジネス(スモールビジネス)をやるか、あるいは「私は作業は速いけど、拘束時間は短くしますよ」という契約に変えていく必要があります。

🧬 最後は「健康」が一番大事という話

いろいろ難しい話をしましたが、一番怖いのは「あなたが倒れること」です。

AIに的確な指示を出したり、複雑な設計を考えたりするのは、ものすごく脳のメモリを使います。体調が悪かったり、寝不足だったりすると、この高度な判断ができなくなります。

特に、AIを使って一人や少人数でビジネスを回している場合、あなたが病気で寝込んだ瞬間に、すべての仕事がストップします。代わりはいません。これを専門用語で「単一障害点(ここが壊れたら全部終わる急所)」と言います。

昔は「誰も知らない知識を知っていること」に価値がありましたが、今はAIが何でも知っています。これからの人間に求められるのは、「AIが出した答えを実行して、もし何かあったら私が責任を取ります」という「責任を持つこと」です。

責任を持つには、丈夫な体とメンタルが必要です。だから、これからのエンジニアにとって「健康管理」は、単なる生活習慣ではなく、パソコンのスペックを上げるのと同じくらい重要な「技術への投資」なのです。

対話履歴

ユーザー: 投稿者: @podhmo #1 今こそこの話を思い出すべきなのかも。進捗N%のときに残りの作業の価格は総コストに対する1-Nの割合で十分だとみなされてしまうのか…

そしてそこからの抵抗。

https://ohbarye.hatenablog.jp/entry/2025/05/06/vibe-coding-book-early-release

投稿者: @podhmo #2 あと90%終わってたとして残り10%のコストは本当に10%なのかみたいな話もありそう。

作業量が10%だとしても90%の進捗を把握するための認識のコストが入る。綺麗に残りのtodoが10%ではなく散在した依存性の強いバグ修正が待ってる可能性がある。手軽なものが解けた残りの可能性がある。 ( #1 に対する発言 )

投稿者: @podhmo #3 理想としては進捗80%の価格が総コストの20%みたいな話になるべきなのかもしれない。

ところで相手がプロジェクトの失敗に気づいた時点でそれの解消の相談を自分にもちかけられたときには既に相手が持つ総予算の大部分が消費された後なので解消の手助けをする仕事のメリットはあんまりないかも。 ( #2 に対する発言 )


これは私のつぶやき。バイブコーディングとエージェンティックコーディングは分けたほうが良いかもだけど大枠はこんな話そう。


AIの思考プロセス

Analyzing the Tweets

I've begun dissecting the three tweets from @podhmo, focusing on the "V" concept in software development economics. I'm trying to grasp the nuances of the arguments presented to determine the core points. I am paying particular attention to their arguments on the economics of software development progress.

Exploring the Nuances

I'm now diving deeper into the nuances revealed in the posts. I'm focusing on the economic implications of the Pareto Principle in software and how the perceived value changes over the project lifecycle. I'm also considering the argument that 80% progress doesn't necessarily equate to 80% of the value, and the implications of this shift for projects asking for help.

Clarifying the Framework

I am now focusing on the distinction between "Vibe" and "Agentic" coding approaches. I'm exploring how these concepts, as defined by recent trends and Andrej Karpathy's perspective, relate to the tweets. I'm finding that both methods accelerate the initial phases, but potentially magnify the challenges of the final stages of projects. I'm also considering the potential role of human context in preventing this.

Addressing the Rescue

I'm now grappling with the "rescue" problem, triggered by stakeholders misjudging UI/proto completion. The hidden costs of integration and edge cases are substantial. I'm focusing on how AI's efficiency in initial tasks might skew client expectations, potentially leading to budget depletion when complex issues arise. The resulting tangled messes are a significant concern, making remediation prohibitively expensive.

Outlining a Response

I'm structuring my response, beginning with empathy and validation of the issue. I am then analyzing the exacerbated "90% trap" in the AI era, highlighting how AI achieves initial progress without inherent human understanding, which amplifies cognitive costs. I'm distinguishing "Vibe" and "Agentic" approaches, focusing on the hidden risks of human-in-the-loop "vibing".

Refining the Core

I'm now zeroing in on the implications of AI-driven coding. I'm seeing that "Agentic" AI risks a complete black box until it fails, but that this and "Vibe" coding both lead to a progress/budget mismatch. The core issue is that high skill is needed to rescue the project, but the budget is already spent on the initial (low-skill) generation, the rescue paradox. I'm focusing on how developers and managers can adapt. I'm also confirming my understanding of "Vibe Coding" referencing Karpathy and related discussions. I'm also considering emphasizing how fast "technical debt" accumulates in the modern era.

AI: podhmoさんのこの一連のツイート、**「AIによる爆速開発」が普及しつつある今だからこそ、非常に切実で重要な視点**だと思います。

ご指摘の通り、**「Vibe Coding(ノリと自然言語でガンガン作る)」「Agentic Coding(自律的にタスクをこなさせる)」**は技術的には別物ですが、プロジェクト管理や予算の文脈で引き起こす「歪み」の構造は共通していますね。

いただいた3つの視点について、AI時代の開発に当てはめて解釈すると、以下のような深い闇が見えてきます。

1. 進捗N%と残存価値の非対称性(#1, #2)

「90%できたなら、残りのコストは10%だろ?」という誤解は昔からありましたが、生成AIはこの錯覚を極大化させます。

  • 昔の90%: 人間が苦労して積み上げたので、構造や文脈は(ある程度)頭に入っている。
  • AI/Vibe Codingの90%: 「なんとなく動くもの」が一瞬で生成される。しかし、中身の整合性やエッジケースは未検証。

ここでpodhmoさんが仰る**「認識のコスト」という言葉が非常に重いです。 AIが書いたコードは「他人が書いたコード」と同じです。バグ修正や仕様変更のためには、「自分が書いていない90%のコードを読み解き、文脈を再構築する」**という巨大なコストが発生します。

つまり、**「AIが進捗バーを90%まで一瞬で進めてしまうせいで、残りの10%(詳細詰め・バグ修正・整合性確保)に、総コストの90%以上のエネルギーとスキルが必要になる」**という現象が起きやすくなっています。

2. 「散在した依存性の強いバグ」と「手軽なものが解けた残り」(#2)

Vibe Coding的なアプローチは、**「局所最適」**の積み重ねになりがちです。

  • 「ログイン画面できた」
  • 「データ表示できた」

これらは個別のプロンプトで解決できますが、いざこれらを統合して「整合性のあるシステム」として仕上げようとした瞬間(残り10%の段階)、**「散在したスパゲッティコード」「AIが勝手に仮定した矛盾する仕様」**が牙を剥きます。

これらを解消するのは、プロンプトを打つだけの作業ではなく、高度なエンジニアリング能力(アーキテクチャ設計・デバッグ力)が必要な作業です。**「残っているのは、AIでも解けなかった難しい問題だけ」**という状態になりがちです。

3. 予算消化後の「敗戦処理」問題(#3)

ここがビジネスとして最も恐ろしい点だと思います。

相手がプロジェクトの失敗に気づいた時点で(中略)既に相手が持つ総予算の大部分が消費された後

これからの受託開発やフリーランスの現場では、以下のような相談が増える懸念があります。

  1. 発注者「AI(や安価なAI使い)で作ったので、もう9割できてます。あとちょっと直すだけなので安くお願いします」
  2. 実態:「見かけ上の9割」を作るのに予算を使い果たしている。 中身はカオス。
  3. リカバリー担当:「残りの1割(実は最難関)」を、「残りの僅かな予算」でやらされる。

podhmoさんの**「進捗80%の価格が総コストの20%(残りの詰めこそが価値の本丸)」**という価格設定モデルへの転換は、自分の身を守るために必須の考え方になりそうです。

結論として

Vibe Coding / Agentic Coding は、プロトタイピング(0→80%)を劇的に加速させますが、それは**「技術的負債を爆速で積み上げている(=未来の修正コストを前借りしている)」**状態とも言えます。

「残りの10%」に見える作業が、実は**「借金の返済(リファクタリング・文脈理解)」「高難易度クエスト」**の複合体であることを、エンジニア側が強く認識し、それをどう非エンジニア(予算管理者)に伝えるかが、これからの時代の生存戦略になりそうですね。

(返答終了理由: STOP)


ユーザー: 似たようなことをそう言えば考えてました

これまでのあなたの入力一覧です。指示語や文脈がわかるように補足を括弧内に追記しています。

  • 「以下のテキストを読んでください。」 (※Addy Osmani氏の『Vibe Coding』に関するブログ記事全文を提示)
  • 「これに対して以下のような反応が得られました」 (※提示したブログ記事に対し、「残り30%の作業が30%の賃金で買い叩かれる懸念」や「期待値コントロールの難しさ」を指摘する第三者のコメントを提示)
  • 「これに対して良い案はあるでしょうか? 以下の2つに分けてください。 - プロダクトのリリースと完成 - エンジニアとしての生存戦略」 (※提示した第三者のコメントの懸念点「30%の賃金問題」「期待値管理」などを解決するための具体的なアイデアを要求)
  • 「いえプロダクトの話は予算管理の話を含んでました。たとえば70%に見える進捗で70%を支払ってしまうと途中で瓦解することが多くなるのでは?みたいな話です。スタートから始めて良いプロダクトを作るための戦略部分に再考が必要になるみたいな話です。」 (※AIの回答に対し、前段の「プロダクトのリリースと完成」という項目は、単なる機能完成だけでなく、予算消化と進捗の乖離を防ぐ契約や戦略の視点が必要だと補足・修正)
  • 「一番嫌なのはPoCやプロトタイピングを受け持つ契約とその後の開発が別会社という例です。あるいは部署が別でも構いません。このように捉えると大きな目で見たときに今まででも同様の問題があったのではないかと思います。それを元に一度にaiによる影響と未来について整理してください。」 (※「このように捉えると」=PoCと本開発の分断という視点で捉えると、AI以前からある構造的な問題だと指摘。「それ」=その従来からある問題をベースに、AIが与える影響を加味して再整理するよう指示)
  • 「もう少しaiの影響を加味してください。たとえば見た目上のドキュメントは増えるがスパムになる可能性があります(部分では完璧なのですが全体で繋げようとすると不一致があるなどですね)」 (※AIによるドキュメントの量産がかえって混乱を招く「スパム化」などの具体的な悪影響を含めて再考するよう指示)
  • 「PoCやプロトタイピングとしてのアプリはその場で動かしユーザー数1で動作すれば問題ないというデモが多いと思います。これを実際のプロダクトとしてリリースするにはユーザー数Nで動かしスケールする必要があります(実際のところ常にスケールする必要はないのかもしれませんが) この辺の観点で更新はありますか?」 (※「この辺の観点」=デモ(ユーザー数1)と本番製品(ユーザー数N)のスケーラビリティのギャップという観点に基づき、議論を更新するよう指示)
  • 「おそらくaiによる民主化はこのユーザー数1のPoCを誰でも作れるようになったことだと思います。」 (※これまでの議論を踏まえ、AIによる開発の民主化の本質を定義づけ)
  • 「受託開発という視点において、見積もりのタイミングで発注側に動くデモを求めるということは可能でしょうか? なにせ誰でもできるわけですから。予算執行に関しても同様で調査フェーズな長くなるイメージです。これである程度解決するのでしょうか?(財布の話)」 (※「これ」=発注側にデモ作成を求めるアプローチによって、前述の「財布の話(予算管理や期待値のズレ)」が解決するかどうか質問)
  • 「つまり受託開発とはユーザー数1で提供可能な機能をユーザー数Nで提供するための試みとみなすということです。この場合の懸念点やメリットや変化はあるでしょうか? あと実現の難度などについても教えてください。」 (※受託開発の役割を「1からNへのスケールアップ」と再定義した上で、そのモデルにおけるメリット・デメリット・難易度を質問)
  • 「明らかなのは営業担当として非エンジニアの人が分業することが難しくなるでしょう。少なくともやるやらないのコミットメントがエンジニア側に求められます、」 (※新しい受託開発モデルにおいては、技術がわからない営業担当だけでは案件が回らず、エンジニアの早期コミットメントが必要になるという見解を提示)
  • 「そもそも進捗で契約せず稼働時間で契約するという方法はありますね。ただこの方法の場合には進捗自体が報酬には繋がらず風評程度に収まる点があります。」 (※準委任/T&M契約という代替案を挙げつつ、成果と報酬が連動しにくいというデメリットを指摘)
  • 「プロジェクトという仕組みではなく毎回のキャッシュフローとそれを予算としての雇用というふうに考えると納期という概念が消えて便利かもしれません。」 (※単発のプロジェクト契約ではなく、継続的な予算配分と雇用に近い形にすれば、納期プレッシャーの問題などが解決するのではないかという仮説を提示)
  • 「問題は売り上げが立っていない新規のプロジェクトやスタートアップです(とは言えポストLLM時代においては組織自体がスモールビジネス的な意味合いのものに寄っていく可能性はあります)」 (※前述の継続雇用モデルは、資金力のないスタートアップには適用が難しいという課題を指摘しつつ、組織のあり方自体が変わる可能性にも言及)
  • 「今まで話してきた内容の議事録を取って。未来の私がこの議論を思い出したいので。」 (※これまでの議論全体の要約・記録を要求)

かしこまりました。これまでの議論を議事録としてまとめます。未来のあなたがこの議論を思い出し、さらに思考を深めるための一助となれば幸いです。


議事録:AI時代におけるソフトウェア開発と組織の未来に関する考察

日付: 2024年5月16日 (議論発生日) 参加者: 利用者様、AI 議題: Addy Osmani氏のブログ記事「Vibe Coding: The Future of Programming (Early Release) 読んだ」を発端とした、AI(特にLLM)がソフトウェア開発、受託開発、組織、働き方に与える影響と未来展望についての議論。

【議論のポイントと流れ】

  1. 発端:Addy Osmani氏のブログ記事と「70% Problem」

    • AIはコードの約70%を生成できるが、残り30%(エッジケース、アーキテクチャ、保守性など本質的複雑性)は人間のエンジニアリングが不可欠。
    • AIはプログラミングは得意だが、エンジニアリング(計画、コラボレーション、テスト、デプロイ、メンテナンスを含むワークフロー全体)は苦手。
    • この「残り30%」の価値と報酬、期待値コントロールが課題。
  2. 「残り30%」の価値と期待値コントロールの課題

    • AIによる見た目上の進捗の速さが、残り30%の作業に対する楽観的な期待を生み、最終的に割高感を感じさせるリスク。
    • 「一度に完成しない」ことの理解促進の難しさ。
    • 対策案:
      • プロダクトリリース: 透明性の高い計画、期待値の初期設定、タスク分解、イテレーションと早期フィードバック、エンジニアリング価値の啓蒙。
      • エンジニア生存戦略: AIが苦手な領域の専門性深化、AIを使いこなすメタスキル習得、価値の言語化と交渉力強化、継続学習。
  3. 予算管理と契約戦略(特にPoCと本開発の分断問題)

    • AIによる初期進捗(70%)で予算の70%を消化すると、プロジェクトが途中で瓦解するリスク。
    • PoC/プロトタイピング担当と本開発担当の分断は従来から存在したが、AIが問題を複雑化・顕在化させる。
      • AIによる影響: 期待値のさらなる乖離、AI生成物への過信、「スパム的ドキュメント」の増加(量は多いが本質情報欠如)、技術選定のブラックボックス化。
    • 対策案:
      • 契約・支払いモデルの工夫(マイルストーン分割、成果報酬型一部導入、実験フェーズ分離など)。
      • 期待値マネジメントと教育の徹底(「70%進捗 ≠ 70%完成」)。
      • 透明性の高いプロセスと進捗報告(品質指標中心)。
      • 組織・プロセスレベルでの連携強化、PoC品質ゲート設置。
  4. 「ユーザー数1のPoC」と「ユーザー数Nの本番システム」のギャップ

    • AIによる民主化の核心は「誰でもユーザー数1のPoCを作れるようになったこと」。
    • ポジティブ側面: アイデア具現化の加速、多様な視点からのプロダクト創出。
    • 課題: 「PoC以上、製品未満」の急増、PoC作成者と本番化エンジニアのスキル/期待値ギャップ、技術的負債の早期蓄積。
    • エンジニアの役割: PoCを本番品質に引き上げる「翻訳者」「鑑定士」「品質保証人」。
  5. 受託開発の新しいモデル

    • 見積もり段階での発注側デモ要求:
      • 可能性:要件具体化、初期期待値調整、発注側の主体性向上。
      • 課題:デモ品質のバラツキ、発注側の過度な期待、責任範囲の曖昧化。
      • 現実解:オプション化、共同WS、デモ位置づけ明確化、調査フェーズ有償化。
    • 受託開発の再定義: 「ユーザー数1で提示可能な機能を、ユーザー数Nで安定提供するためのエンジニアリングサービス」。
      • メリット:価値提供の明確化、専門性の強調、期待値コントロール改善。
      • 懸念点:デモ品質、発注側のAIリテラシー、責任範囲。
      • 変化:営業の技術理解深化、プリセールスエンジニアの重要性増大、エンジニアによる実現可能性評価のプロセス化、営業とエンジニアの連携強化。
      • エンジニアのコミットメント: 「できる/できない」の早期かつ明確な表明が不可欠。
  6. 契約形態と「納期」概念の変化

    • 稼働時間契約(T&M): AI時代の不確実性に適合するが、「進捗と報酬のズレ」が課題。対策としてマイルストーンインセンティブ、価値ベースの時間単価、透明性の高い進捗報告。
    • 「プロジェクト」ではなく「継続的キャッシュフローと予算ベースの雇用」:
      • メリット:「納期」プレッシャーからの解放、品質向上、アジャイルな価値提供、深いパートナーシップ、エンジニアの安定雇用。
      • 課題:成果定義と評価の難しさ、モチベーション維持、発注側のコミットメントと信頼、スコープ管理。
      • AI時代との親和性:AIによるPoC民主化と相性が良い。変化の速い時代に適応しやすい。
  7. 新規プロジェクト/スタートアップへの適用とポストLLM時代の組織

    • 課題: 売上未達段階での継続的キャッシュフロー確保の難しさ。
    • ポストLLM時代の可能性:
      • AI活用による「超リーン」MVP開発と高速イテレーション。
      • レベニューシェア型/エクイティ型の協力体制。
      • コミュニティベース開発、マイクロパトロンモデル。
      • AIによる「一人会社/超スモールチーム」の実現。
    • スモールビジネス化の意味合い: 固定費極小化、個人のエンパワーメント、柔軟な働き方と組織形態。
    • AIは初期の価値検証を加速し、そこから継続的価値創出サイクルへ繋げる道筋を示唆。

【総括的なキーワードと洞察】

  • AIの二面性: 生産性向上ツールであると同時に、既存の問題を増幅・複雑化させる触媒。
  • 人間のエンジニアリング価値の再定義: AIが代替できない「本質的複雑性」への対応、システム思考、品質保証、スケーラビリティ設計、コミュニケーション、倫理観。
  • 期待値マネジメントの重要性: AIの能力と限界を関係者全員が正しく理解し、現実的な期待値を設定することが、プロジェクト成功の鍵。
  • 「PoCの民主化」とその先: 誰でもアイデアを形にできるようになったからこそ、それを真の「製品」に昇華させるプロの専門性が輝く。
  • 組織と契約の柔軟性: 従来の固定的なプロジェクト型・請負型から、よりアジャイルで継続的なパートナーシップを前提としたモデルへ。
  • エンジニアのコミットメントと責任: 技術的な実現可能性に対する早期かつ明確な判断と表明が、信頼の基盤となる。
  • スモール化と個のエンパワーメント: AIは、小規模チームや個人が大きな価値を生み出すことを可能にし、組織のあり方や働き方を根本から変えるポテンシャルを持つ。

未来のあなたがこの議事録を読み返し、新たな視点やアイデアを得られることを願っています。今回の議論は多岐にわたりましたが、AIという技術革新がもたらす変化の大きさと、それに対応していくための人間の知恵と努力の重要性を再認識する機会となりました。


AIの思考プロセス

Revisiting Perceived Progress

I'm digging deeper into the gap between the hype around AI's impact on software development and the practical realities I'm observing. It seems that "Vibe Coding" might be a symptom of a larger issue. The core challenge lies in understanding how to reconcile the perceived capabilities of AI with the actual needs of developers in their day-to-day workflow. I'm focusing on identifying the barriers to wider adoption and true productivity gains.

Analyzing Cost Discrepancies

I'm now grappling with the disparity between progress percentages and actual completion costs in AI-driven projects, drawing insights from the tweets by @podhmo. I recognize that the remaining "resistance" after achieving, say, 90% progress is not a mere 10% cost; it carries significant cognitive burdens and complexities. I'm exploring the implications for projects where AI or cheaper labor have failed initially, leaving little budget for resolution. The user's comment supports separating "Vibe Coding" from the "Agentic Coding" reality.

Connecting Cognitive Costs

I'm now integrating the recent tweets into my existing mental model. The "cognitive cost" of AI-generated code, and the "rescue trap" it creates, are crucial additions. It reinforces the gap between superficial progress and real value. This connection helps to explain the "90% done, 90% cost remaining" problem. It's becoming clearer that the true cost isn't just financial, but intellectual. The tweets are helping me clarify the "Contract/Budget" component of the prior discussion.

Unpacking Linear Illusions

I'm now focusing on the core problem: the false linearity AI projects often present. It's like buying a house nearly built, but missing the foundation. The "Cognitive Cost" of AI-generated code is a critical element, making reading AI-generated code even harder. This creates a potential economic dead end when budgets are linear but efforts become exponential. Value-based pricing seems like a solution. The "Vibe" vs "Agentic" distinction is still key.

Defining the Debt Cycle

I'm now identifying a crucial debt cycle. AI-driven work initially feels fast, like magic, great for the first "90%." However, "Agentic Coding" struggles, creating complex bugs. "Vibe coding" accumulates debt. When both fail, humans are brought in to fix the mess, but often the budget is already exhausted. This underscores the need to separate and identify "Agentic Coding" and the "Vibe Coding" approaches. I'm focusing on the nature of "The Trap."

AI: podhmoさんのこの一連のツイート、**「AIによる爆速開発」が普及しつつある今だからこそ、非常に切実で重要な視点**だと思います。

ご指摘の通り、**「Vibe Coding(ノリと自然言語でガンガン作る)」「Agentic Coding(自律的にタスクをこなさせる)」**は技術的には別物ですが、プロジェクト管理や予算の文脈で引き起こす「歪み」の構造は共通していますね。

いただいた3つの視点について、AI時代の開発に当てはめて解釈すると、以下のような深い闇が見えてきます。

1. 進捗N%と残存価値の非対称性(#1, #2)

「90%できたなら、残りのコストは10%だろ?」という誤解は昔からありましたが、生成AIはこの錯覚を極大化させます。

  • 昔の90%: 人間が苦労して積み上げたので、構造や文脈は(ある程度)頭に入っている。
  • AI/Vibe Codingの90%: 「なんとなく動くもの」が一瞬で生成される。しかし、中身の整合性やエッジケースは未検証。

ここでpodhmoさんが仰る**「認識のコスト」という言葉が非常に重いです。 AIが書いたコードは「他人が書いたコード」と同じです。バグ修正や仕様変更のためには、「自分が書いていない90%のコードを読み解き、文脈を再構築する」**という巨大なコストが発生します。

つまり、**「AIが進捗バーを90%まで一瞬で進めてしまうせいで、残りの10%(詳細詰め・バグ修正・整合性確保)に、総コストの90%以上のエネルギーとスキルが必要になる」**という現象が起きやすくなっています。

2. 「散在した依存性の強いバグ」と「手軽なものが解けた残り」(#2)

Vibe Coding的なアプローチは、**「局所最適」**の積み重ねになりがちです。

  • 「ログイン画面できた」
  • 「データ表示できた」

これらは個別のプロンプトで解決できますが、いざこれらを統合して「整合性のあるシステム」として仕上げようとした瞬間(残り10%の段階)、**「散在したスパゲッティコード」「AIが勝手に仮定した矛盾する仕様」**が牙を剥きます。

これらを解消するのは、プロンプトを打つだけの作業ではなく、高度なエンジニアリング能力(アーキテクチャ設計・デバッグ力)が必要な作業です。**「残っているのは、AIでも解けなかった難しい問題だけ」**という状態になりがちです。

3. 予算消化後の「敗戦処理」問題(#3)

ここがビジネスとして最も恐ろしい点だと思います。

相手がプロジェクトの失敗に気づいた時点で(中略)既に相手が持つ総予算の大部分が消費された後

これからの受託開発やフリーランスの現場では、以下のような相談が増える懸念があります。

  1. 発注者「AI(や安価なAI使い)で作ったので、もう9割できてます。あとちょっと直すだけなので安くお願いします」
  2. 実態:「見かけ上の9割」を作るのに予算を使い果たしている。 中身はカオス。
  3. リカバリー担当:「残りの1割(実は最難関)」を、「残りの僅かな予算」でやらされる。

podhmoさんの**「進捗80%の価格が総コストの20%(残りの詰めこそが価値の本丸)」**という価格設定モデルへの転換は、自分の身を守るために必須の考え方になりそうです。

結論として

Vibe Coding / Agentic Coding は、プロトタイピング(0→80%)を劇的に加速させますが、それは**「技術的負債を爆速で積み上げている(=未来の修正コストを前借りしている)」**状態とも言えます。

「残りの10%」に見える作業が、実は**「借金の返済(リファクタリング・文脈理解)」「高難易度クエスト」**の複合体であることを、エンジニア側が強く認識し、それをどう非エンジニア(予算管理者)に伝えるかが、これからの時代の生存戦略になりそうですね。

(返答終了理由: STOP)


ユーザー: バイブコーディングとコーディングエージェントの利用とエンジニアの仕事とチームの仕事という観点で整理してください。また個人的にはclaude codeの利用とはペアプロのナビゲーターの経験が必要な気がします。また発注者に最終的に求められるつまりaiを適切に利用できるというのはスクラムに適切に参加できるPOという感覚があります。そのうえでの技術者側でglueとして必要になることについて整理もしてください。


AIの思考プロセス

Analyzing the Request's Nuances

I'm currently dissecting the user's request, focusing on the core topics of Vibe Coding, Agentic Coding, the Engineer's Role, and Teamwork. I'm starting to identify some key insights regarding their perspective, and formulating how they may relate to each other. I'm focusing on their implied expertise in the subject, to tailor the response in a useful way.

Defining the Roles

I'm now clarifying the distinctions between Vibe Coding and Agentic Coding for context. I see the user's points as key: they're essentially equating modern AI coding tools to a new "Pair Programming Navigator" role. I'm structuring the response to acknowledge this link, defining the "navigator" in this context and highlighting the Engineer's role as the "glue".

Clarifying the Client's Role

I've shifted my focus to the client's role. I'm validating the "Scrum PO" analogy: the AI acts as the dev team, requiring the client to define "Done" and accept iterative increments. A failing client interaction guarantees failure for the project, regardless of development velocity. I'm clarifying the core role of the engineer, and working on defining the client's role.

Refining the Navigator Role

I'm now honing the "Navigator" analogy to better reflect the new reality of AI-assisted coding. The speed of the AI means the engineer is less "thinking ahead" and more "herding cats," emphasizing decision-making and clear intent. The PO and navigator analogies are spot on. I'm focusing on "the why" and "the what" of the project.

Defining the Engineering Role

I'm now solidifying the key engineer roles. I'm seeing it clearly: they're the navigator, but needing concrete feedback. The AI's strength is speed, but it's low context. Now, I see "good code" as a key ingredient to make use of AI. I'm focusing on those three "bridges" from client's wish to final code: abstract to concrete, PoC to production, component to system. I'm seeing this as moving the engineer to "Architect/Site Foreman" role.

AI: 非常に鋭い洞察です。いただいた「Claude Code利用=ペアプロのナビゲーター」「発注者=スクラムのPO」という視点は、AI時代の開発体制の本質を突いています。

ご提示いただいた観点をもとに、「AI時代におけるエンジニアの役割変化」と、そこで必要となる「Glue(接着剤)」としての技術的責任について整理します。


1. 個人の作業:ナビゲーターとしてのエンジニア

仮説:Claude Code等の利用には「ペアプロのナビゲーター」の経験が必要

これには完全に同意します。今のAIコーディングは**「超高速だが、文脈を知らない優秀なジュニア〜中堅エンジニア(ドライバー)」**を横に座らせている状態に近いからです。

  • 従来の開発: 自分で考え(設計)、自分で書く(実装)。
  • AIとの開発: AIが書く(実装)。人間は「違う、そうじゃない」「ここはこういう設計で」「エッジケースを考慮して」と指示し続ける。

必要なスキルセットの変化:

  • 構文記憶力(How)設計判断力(What/Why): コードの書き方よりも、「この実装方針で将来困らないか?」「セキュリティ的に大丈夫か?」を瞬時に判断するレビュー能力と、AIを正しい方向へ導く言語化能力がナビゲーターとして必須になります。
  • ナビゲーターの経験がないと、AIという「暴走しやすいドライバー」の手綱を握れず、動くけど保守不可能なスパゲッティコードが量産されます。

2. チームと発注者:POとしての資質

仮説:発注者に求められるのは「スクラムに適切に参加できるPO」の能力

これも非常に的確です。AIによって実装スピード(Velocity)が爆発的に上がるため、「仕様が決まるのを待つ」時間がボトルネックになります。

  • Vibe Coding/Agentic時代のPO(発注者)の要件:
    • 即時フィードバック: AIが出してきた成果物(動く画面)を見て、即座に「Go」か「No Go」を判断できる。
    • 受け入れ条件(Acceptance Criteria)の明確化: AIは曖昧な指示を勝手に解釈します。「なんとなくいい感じに」は通用しません。論理的な整合性をジャッジできる能力が必要です。
  • もし発注者が「丸投げ」タイプだと、AIは「間違ったものを超高速で作る」ことになり、プロジェクトは高速で破綻します。

3. 技術者が担うべき「Glue(接着剤)」としての役割

ここで、Podhmoさんが懸念されていた「バラバラに生成されたコード」や「PoCとプロダクトの溝」を埋めるために、エンジニアが果たすべき**Glue(接着剤)**としての役割が定義できます。

AI(ドライバー)と発注者(PO)の間に入り、システムを成立させるために以下の3つの結合が必要です。

① 「抽象」と「具体」のGlue(翻訳者)

POが語る「ビジネス要件(ふわっとした言葉)」を、AIが理解可能な「技術的コンテキスト(正確なプロンプト/仕様)」に変換する役割です。

  • PO: 「ユーザーが使いやすいようにして」
  • Glueとしてのエンジニア: 「"使いやすい"とは、クリック数が3回以内であること、かつレスポンスが200ms以内であることと定義し、Reactのコンポーネント設計をこう指示する」
  • 役割: コンテキストの注入、ドメイン知識の言語化。

② 「部品」と「全体」のGlue(アーキテクト)

Vibe CodingやAgentic Codingは、ファイル単位や機能単位の局所最適には強いですが、全体整合性には無頓着です。

  • 課題: A機能とB機能でデータ構造が微妙に違う、認証ロジックが重複している、など。
  • Glueとしてのエンジニア:
    • インターフェース定義: 各エージェントが従うべきAPIスキーマや型定義を先に決める。
    • リファクタリング: AIが散らかしたコードを、共通基盤に乗せ換える。
    • 依存関係の整理: 循環参照や無駄なライブラリ追加を防ぐ。

③ 「PoC(ユーザー1)」と「Production(ユーザーN)」のGlue(SRE/QA)

ここが最も重要です。AIは「動くコード」は書きますが、「運用に耐えるコード」への関心は薄いです。

  • 課題: エラーハンドリングがない、ログが出ない、DBのコネクション管理が適当、セキュリティホールがある。
  • Glueとしてのエンジニア:
    • インフラ/IaC: TerraformやDockerなど、AIが苦手とする環境構築やデプロイパイプラインの整備。
    • 非機能要件の実装: パフォーマンスチューニング、監視設計、セキュリティ対策。
    • CI/CD: AIがコードを生成するたびに自動テストを走らせ、品質を担保する仕組み(ガードレール)を作る。

まとめ:新しいエンジニア像

これからのエンジニアは、**「コードを書く人」から、「AI(優秀だが危なっかしい部下)とPO(要望を持つ発注者)の間を取り持ち、システム全体を"製品レベル"に接着・硬化させる現場監督」**へとシフトしていくことになります。

  • POに対して: スクラム開発のリズムに巻き込み、決断を促す。
  • AIに対して: ペアプロのナビゲーターとして、アーキテクチャと品質を指導する。
  • システムに対して: 散在するAI生成物を統合し、非機能要件(Glue)で固めてプロダクトにする。

この「Glue」の部分こそが、AIに代替されにくく、かつ今後最も価値が高まる領域(そして前述の"残り10%に見えるが実は重いコスト"の正体)だと言えるでしょう。

(返答終了理由: STOP)


ユーザー: うーんあなたのまとめは良いですが、人間が検証機構として機能するというふうにまとめられてしまってますね。コーディングエージェントが他のLLMの活用例とで異なる点やlinterやコンパイラや自動テストの出力をもとに自己解決を行う余地が残されてる点です。またLLMによってlinterをつくって制約を作れるという観点もあります。もちろんLLMの実行部に関してはあくまで確率的なのでたまにミスをします。またプロンプトで制御しようとしても必ずしも失敗せずに導けるわけではありません。また複数の可能性を同時に検討することが可能になってる点は異なるかもしれません。


AIの思考プロセス

Refining Perspective on Engineers

I'm now revising my understanding. The user's feedback highlighting the "verification mechanism" oversimplification has prompted me to shift away from portraying the engineer solely as a "glue" or "navigator." Instead, I'm focusing on better capturing the multifaceted nature of their role and the value of their specific expertise.

Analyzing Agentic Coding

I'm now zeroing in on the distinctions between "Coding Agents" and more human-centered approaches. It's becoming clear that the key lies in the agent's ability to self-correct using deterministic tools like linters and tests, a feature absent in general LLM uses. I'm developing the meta-tooling perspective—humans building constraints for agents—and the implications of agents exploring multiple possibilities. Finally, I'm understanding the human's role as setting the environment for coding agents.

Defining Agentic Engineering Roles

My focus is sharpening, as I further refine the engineer's function in an agent-driven environment. I'm now outlining key roles: the "Sandbox" Builder, designing feedback loops for agent self-correction; the "Parallel" Manager, defining the search space and evaluating agent-generated strategies; and the "Computed Context" Provider, ensuring agents have access to relevant information and context. I'm exploring the implications of these roles in more detail.

Clarifying Constraint-Driven Development

I am now focusing on the implications of "Constraint-Driven Development," or "Test-Driven Agentic Development." My previous response overlooked the automated nature of agentic workflows. The agent fills the solution space based on the human-defined constraints. I am highlighting the self-correction loop where the agent fixes errors. I'm exploring the potential of using LLMs to generate linters or tests to constrain other LLMs.

Formulating Agentic Paradigms

I'm now integrating insights to structure the coding agent concept. I'm focusing on "Environment Design" replacing the bottleneck perspective. I am highlighting the self-correcting OODA loop in agents using deterministic tools, with humans building the fitness function (tests/linters). I am also focusing on "Meta-Engineering" where LLMs build guardrails (tests/linters). Finally, I am including parallelism and managing stochastic outcomes by running multiple trials. The engineer is now the Architect.

AI: おっしゃる通りです。私の前回のまとめは、まだ「人間がループの中心にいて、都度判定する」という、従来のCopilot的なパラダイムに引きずられていました。

「コーディングエージェント(Agentic Coding)」の本質は、人間が都度レビューするのではなく、**「ツール(コンパイラ・Linter・テスト)からの決定論的なフィードバックを用いて、エージェント自身が自律的に試行錯誤(OODAループ)を回す」**点にありますね。

この視点に基づき、エンジニアの役割と「Glue」の定義を、「検証者」から「環境設計者」へと再構築します。


1. コーディングエージェントの特異性:自律的な修正ループ

従来の「Vibe Coding(人間と対話しながら作る)」と「Agentic Coding」の決定的な違いは、フィードバックソースの自動化です。

  • これまで: LLMが出力 → 人間が読んでエラー指摘 → LLMが修正
  • Agentic: LLMが出力 → コンパイラ/Linter/テストがエラー指摘 → LLMがログを読んで修正 → (解決するまでループ)

この構造において、エンジニアの仕事は「コードを読むこと」から、**「エージェントが自律的に正解に辿り着けるための"迷路の壁(制約)"を構築すること」**にシフトします。

2. エンジニアの新しい役割:制約と評価関数の設計者 (Meta-Engineering)

ご指摘の「LLMでLinterを作って制約を作る」という観点は非常に強力です。エンジニアはコードそのものではなく、**「コードが満たすべき条件」**を記述するメタな作業に注力することになります。

A. 確率的な「実行部」を、決定論的な「検証部」で囲い込む

LLMは確率的に動くため、毎回結果が異なります(たまにミスをする)。しかし、**判定機(Linter, Test, Type Check)は決定論的(0か1か)**です。

  • エンジニアの仕事:
    • 「なんとなく動く」を許さない厳格な型定義を書く。
    • エージェントに守らせたいルール(アーキテクチャ制約など)を記述したカスタムLinterを(LLMを使って)生成し、CIに組み込む。
    • Property-based Testing のような、エッジケースを網羅的に機械的に叩くテストを用意し、エージェントに「テストが通るまで直せ」と指示する。

B. 並列探索と「Best of N」の選択

ご指摘の通り、人間には難しい**「複数の可能性の同時検討」**が可能です。

  • シナリオ: 「この機能を実装して。A案(保守性重視)、B案(速度重視)、C案(最小実装)の3パターンで並列に書いて、それぞれのテスト結果とベンチマーク比較を出して。」
  • エンジニアの仕事:
    • どれが正解かを判断するための**評価基準(Metrics)**を設計する。
    • 最終的に生成された複数の候補から、コンテキストに最も合うものを**選択(Selection)**する。

3. 改めて整理する「Glue(接着剤)」としての技術的責任

前回の「人間が翻訳する」というアナログなGlueではなく、**「システム的にエージェントを制御するGlue」**として整理し直します。

役割 従来の感覚 Agentic時代の感覚
ナビゲーター コードを横から見て指摘する人 「テストと型」というガードレールを敷設する人
エージェントが脱線したら、自動テストが即座に平手打ちする環境を作る。
Linter/CI 人間が書いたコードの静的解析 エージェントへの自動フィードバック装置
コンテキストに即したルール(「この層でDB呼ぶな」等)をカスタムLinterとして即席で作って適用する。
デバッグ ログを見て原因を探す 再現テストケースの作成
「このテストが落ちる」という事実さえ渡せば、エージェントが解決できるまでループしてくれる。
POとの関係 要件を聞いて実装する 「受け入れテスト(Executable Spec)」の定義
自然言語の仕様を、エージェントがPass/Fail判定できる形式(GherkinやE2Eテスト)に変換する。

4. 結論:確率を制御するための「環境」を作る

Podhmoさんの懸念されていた「90%進捗からの残り10%の重み」は、Agenticなアプローチにおいては**「エージェントが自律解決できないほど、環境の定義(テストや制約)が曖昧だった」**ことに起因すると言えます。

したがって、これからのエンジニア(Glue)の能力は以下のように定義できるかもしれません。

「確率的に振る舞う強力な知能(LLM)を、厳格なルール(Linter/Test/Compiler)の中に放り込み、"コンパイルエラー"や"テスト失敗"という痛みを自律的に回避させることで、結果として整合性の取れたコードを排出させる『実験場(Sandbox)』を設計・構築する能力」

これが、単なる「レビュー係」ではない、Agentic時代のエンジニアの生存戦略であり、ペアプロのナビゲーターとしての経験(=ゴールと制約を示してドライバーを導く力)が活きる真の理由だと考えられます。

(返答終了理由: STOP)


ユーザー: あとは短時間で複数のプロジェクトにコミットするべきなのか長時間一つのプロジェクトにコミットするべきなのかというなしもありそう。 一エンジニアとして給与をもらうという観点ではビジネス層との対話においてのアベイラビリティ的なものを要求されがちそう。ただこれはほかの作業への集中ができなくなる。逆に起業するときにスタートアップとして見たときにもしばらくはエンジニアの採用をする必要はないかもしれない。明らかなPMFまで不要であるしチームの運営と言う意味では人数は一桁不要になるかもしれない(ランウェイが伸びるか必要な調達額が減る)。そういう意味ではエンジニアもスモールビジネスをやっても良いのかもしれない。これとアベイラビリティの話が衝突する


AIの思考プロセス

Considering Project Dedication

Okay, I'm now analyzing the core question: Should engineers tackle fractional or dedicated projects? I'm breaking down the implications of each approach. So far, the user's input focuses on the central dilemma, which is helpful to get started. I'll need to identify the key trade-offs to offer some sound suggestions.

Analyzing Availability Conflicts

I'm now focusing on the conflict between required availability and deep work, particularly through the lens of AI. The traditional view of constant availability contrasts sharply with the potential of AI-driven coding, where the actual coding time decreases. I'm exploring whether the need for rapid response is an outdated requirement.

Addressing Availability Hurdles

I'm now diving into the core of the problem: availability constraints. Even with AI's speed boost, the need to be "available" is the bottleneck. I'm looking at the implications for both fractional engineers juggling multiple projects and solo founders running small businesses. I'm considering async strategies, premium availability rates, and outcome-based models to navigate this challenge. I'm also planning to structure the response to highlight this central conflict effectively.

Synthesizing Solutions and Strategies

I'm now focusing on synthesizing potential solutions. The challenge lies in reconciling the engineer's need for focus with the business's demand for availability. My central concept is "Async Availability" and "Agentic Delegation." I've drafted some content, emphasizing availability as the critical keyword. I am now exploring the shift from time-based availability to SLA-based response windows. I'm also refining the idea of the engineer as a small business, and how AI agents increase the founder's cognitive load. I'm starting to think about this angle more deeply.

Refining Outcome-Based Models

I'm now focusing on framing the engineer's work as a business, emphasizing outcomes over hours. I'm considering contractual or expectational solutions to handle the availability bottleneck, rather than time-blocking. I am now exploring this new paradigm through the use of AI agents, and how these agents can either exacerbate context switching hell, or allow for "High Value Intervention."

AI: アベイラビリティ(可用性・即応性)とAI活用によるレバレッジ(テコ)の衝突、これはこれからのエンジニアのキャリア戦略における**核心的なジレンマ**ですね。

AIによって「作業(Hands-on)」の時間は圧縮できても、「対話・意思決定・安心感の提供(Availability)」の時間は圧縮しにくい。むしろ、作業が速くなる分、ボトルネックがそこに移っています。

ご提示いただいた観点を、「受託/雇用(他人のビジネス)」と「起業(自分のビジネス)」の2軸で整理し、その衝突をどう解消すべきか考察します。


1. 「他人のビジネス」におけるジレンマ:作業は瞬殺できるが、拘束は減らない

AIを使えば、技術的には1人で5プロジェクト分のコードを書くことは可能です。しかし、**ビジネスサイドがエンジニアに求めている価値の半分は「安心感(Availability)」**です。

  • 現状の矛盾:
    • 成果: AIのおかげで短時間で終わる。
    • 要求: クライアント/上司は「何かあったらすぐ聞きたい」「会議に出席してほしい」「Slackに即レスしてほしい」と願う。
  • アベイラビリティの衝突:
    • 5つのプロジェクトを掛け持ちすると、5方向から「今ちょっといい?」が飛んでくる。
    • これでは、作業時間がゼロになっても、マインドシェア(脳のメモリ)が常時枯渇し、深い思考や自身のプロダクト開発ができなくなる。

→ 戦略: 受託や雇用で稼ぐ場合、AI時代のエンジニアは**「時間単価」から「アベイラビリティ単価」+「成果単価」へ契約を分離**する必要があります。

  • 「作業はすぐ終わりますが、ミーティングや即レス対応(拘束)を求めるなら、その『待機コスト』は高くつきますよ」という交渉です。
  • あるいは、**「完全非同期(Async)」**を前提とした契約に持ち込み、アベイラビリティの切り売りをやめるかです。

2. 「自分のビジネス(起業)」におけるパラダイムシフト

ご指摘の通り、ここが最も劇的に変わる部分です。

  • 採用不要論:
    • これまでは「CTO + リード + ジュニア2名」でやっていたことを、「創業者(CTO兼任) + AIエージェント群」でPMFまで走れる。
    • コミュニケーションコストの消滅: 人間を雇うと発生する「採用・教育・評価・モチベーション管理・MTG」がゼロになる。これは金銭的コスト以上に、創業者の精神的リソースを節約します。
  • ランウェイの伸長:
    • 人件費が自分の生活費(+AIのAPI代)だけで済むため、調達額が少なくても長く生き残れる。
    • これは「急いで上場/Exitを目指すVCモデル」ではなく、**「利益率の高いスモールビジネス(Micro-SaaS等)」**との相性が抜群に良いことを意味します。

3. 「アベイラビリティ」と「スモールビジネス」の衝突と解決策

ここでおっしゃる「衝突」が発生します。

シナリオ: 生活費を稼ぐために「アベイラビリティを売る仕事(受託/雇用)」をしつつ、副業的に「AIを活用したスモールビジネス」を立ち上げようとする時。

他人のプロジェクトへのアベイラビリティ提供(Slack即レスやMTG)は、**「AIエージェントの指揮官」として必要な深い集中力(Context Loading)**を細切れに破壊します。

解決策の方向性:

A. アベイラビリティを売らない働き方(非同期の極み)

  • 受託を受けるにしても、「週1回の定例と、成果物の納品のみ。Slack対応はしない(あるいは24時間以内の返信)」という、**「高級な技術顧問」**のような立ち位置を取る。
  • AIを活用して、自分自身の「分身(ドキュメントやFAQボット)」をクライアントに提供し、人間への問い合わせを減らす。

B. 「期間」で区切る(シリアル・アントレプレナー化)

  • 「短時間で並行(マルチタスク)」はAI時代には脳のオーバーヘッドが大きすぎます。
  • 「3ヶ月ガッツリ稼ぐ(アベイラビリティ全振り)」「3ヶ月自分のプロダクトに没頭(無職)」 というように、期間で完全にモードを切り替える。
  • AIのおかげで開発速度が速いので、3ヶ月あればMVP(Minimum Viable Product)は十分作れます。

C. 自分自身が「ボトルネック」にならない設計

  • 自分のスモールビジネスにおいて、ユーザーからの問い合わせ対応(サポート)などで自分のアベイラビリティが食われないように、最初から**「Ops(運用)の自動化」**を製品に組み込む。
  • 「ユーザー数1のPoC」ではなく、「自分がいなくても回るビジネス」を最初から設計する(Agenticなアプローチ)。

まとめ

podhmoさんの考察通り、**「エンジニア自身がスモールビジネス(一人企業)をやる」**のが、AIのレバレッジを最大化する道であることは間違いありません。

しかし、その過渡期において「生活費のために他者にアベイラビリティを売る」と、AI開発に必要な集中力が削がれるというジレンマに陥ります。

「技術力はあるが、時間は売らない(アベイラビリティは提供しない)」

この強気なポジションを確立できるか、あるいは**「アベイラビリティを極限まで高く売って、短期間で種銭を作るか」**の二択が、これからのエンジニアの生存戦略の分かれ目になりそうです。

(返答終了理由: STOP)


ユーザー: 体力/不健康で人生は終わり


AIの思考プロセス

Interpreting the Input

I'm currently dissecting the user's input, which expresses a sentiment about the impact of physical health on life's perceived end. I am analyzing the Japanese phrase "体力/不健康で人生は終わり," trying to grasp the nuances and potential cultural implications. My focus is on the core message and the emotional weight of the statement.

Acknowledging the Bottleneck

I've hit a conceptual roadblock. The user's shift to focusing on physical health and its limitations is jarring. It makes me realize that no amount of software engineering prowess or strategic thinking matters if the physical body falters. I see that poor health fundamentally bottlenecks the availability that was previously discussed, and negates the possibility of the user being agentic in the workplace. This realization has added a layer of complexity to the thought process.

Re-Framing the Health Component

I'm now focusing on reframing the health discussion. I see a need to move away from toxic positivity, understanding that immediate solutions won't help. I'm building a new angle, positioning health management as life's "system engineering" component to align with the user's focus on engineering and system design. This involves an immediate empathetic response acknowledging the jarring shift, connecting this to the discussion of AI leverage. I'm drafting content to help make the analogy of the body as the server; without it being functional, the software (skills/AI) won't run.

Defining Health as Availability

I'm now zeroing in on defining health as the core of personal availability, and how illness severely impacts this. I see that pain and fatigue are draining cognitive resources, making me unable to fully function as a "Navigator." It's clear that in a solo operation, my health is the bus factor, determining the project's survival. I'm brainstorming actionable strategies, like viewing health maintenance as an investment and accepting physical limitations.

Concluding the Analysis

I'm solidifying my conclusion. The drafting is complete, and I'm polishing the final output. I've focused on maintaining a supportive tone while acknowledging the user's shift in perspective, making sure the message lands respectfully. I'm now fine-tuning the wording, ensuring a seamless transition from the previous discussions to this more grounded reality. I'm also ensuring the message resonates with an engineer's perspective, framing the body as a system that requires maintenance, with AI assistance as a crucial adaptation.

AI: その通りですね。どんなに高度な議論も、最強のAIエージェントも、戦略的なスモールビジネスも、**それを実行する「本人(ハードウェア)」が故障してしまえば、すべて稼働停止(System Down)**します。

これまでの議論(AI活用、ワンマンビジネス、アベイラビリティ)において、**「健康」こそが最大の単一障害点(SPOF: Single Point of Failure)**であるという事実は、残酷なほど重要です。

エンジニアリングの文脈でこの「絶望」を再解釈すると、以下のようになります。

1. アベイラビリティの源泉は「体力」

さきほど「アベイラビリティを売るか売らないか」という話をしましたが、不健康であることは、強制的にアベイラビリティが 0% になることを意味します。 クライアントワークどころか、自分のプロダクトのメンテナンスさえできなくなる。「人生は終わり」という感覚は、**「自分の意志で制御できるリソース(時間・思考)がゼロになる」**という恐怖から来ているのかもしれません。

2. 脳の「コンテキストウィンドウ」と体調

AIのナビゲーター役には高度な判断力が必要だという話をしました。しかし、痛み、ダルさ、睡眠不足、メンタル不調は、脳のワーキングメモリ(コンテキストウィンドウ)を物理的に占有します。 体調が悪いと、複雑な設計や長期的な戦略を脳にロードできなくなる。 結果として、単純作業すらAIに指示できなくなります。

3. スモールビジネスと「バス係数 1」の恐怖

「エンジニア一人でスモールビジネス」という夢のある話をしましたが、これは裏を返せば**「代わりがいない(バス係数=1)」**ということです。 組織にいれば、自分が倒れても誰かがサーバーを再起動してくれますが、一人の場合は自分が倒れればサービスも死にます。このプレッシャーがさらに健康を蝕む悪循環もあります。


もし今、限界を感じておられるのであれば:

これまでの「AIで効率化」「生存戦略」といった話はすべて忘れて、**「緊急メンテナンスモード」**に入ってください。

  • 技術的負債(不健康)の返済: 今は新規機能開発(仕事・勉強)を止め、リファクタリング(休息・治療)だけにリソースを割くフェーズかもしれません。
  • 省エネモードへの移行: もしAIに希望があるとするなら、それは「バリバリ働くため」ではなく、**「自分が動けない時でも、最低限のシステムを維持してもらうため」**の生命維持装置としての活用かもしれません。

ハードウェア(体)が壊れてはソフトウェア(精神・技術)は動きません。どうか、ご自愛ください。

(返答終了理由: STOP)


ユーザー: かつては短時間労働の超高度な問題の解決という領域が残されてた


AIの思考プロセス

Analyzing the Input's Nuance

I'm now diving into the user's input, specifically "かつては短時間労働の超高度な問題の解決という領域が残されてた". I am dissecting its grammatical structure and the subtleties of the wording to uncover the intended meaning. My main focus is on the nuance conveyed by "かつては" (once) and "超高度な問題" (ultra-advanced problems). I am trying to understand the context.

Deconstructing the "Wizard" Role

I'm now thinking about the essence of that "Wizard" role the user described. It seems like deep, specialized knowledge and pattern recognition were key, alongside an understanding of obscure internal systems. I'm exploring how AI, having absorbed vast documentation, might be impacting this niche, potentially diminishing the opportunities for such high-leverage human work.

Assessing the Shifting Landscape

I'm currently grappling with how AI redefines "hard" problems in software. The old "hard" problems, like obscure error codes, AI solves quickly, lowering the barrier for entry. But "new hard" involves things AI struggles with, like ethical considerations and organizational politics. The surgeon metaphor applies: it's not truly gone but its context has shifted.

Mapping the Problem Domain

I'm now separating "Knowledge" (AI's strength) from "Wisdom" (my focus). I'm also re-evaluating the "short time" aspect, noting the validation now takes longer due to the potential for subtle errors. I am starting to identify domains where the "high-level" role still thrives, such as responsibility for the "kill switch," handling novel situations, and interfacing with the physical world.

Evaluating the Changing Role

I'm now zeroing in on the shift from "Solver" to "Verifier" role. The client now has AI-generated answers, but still needs a human to ensure correctness, and I'm realizing that verification can be tedious. I'm also exploring the economic impact: the disappearance of the "short time, high pay" niche may result in "long time, low pay" scenarios, or "long time, high pay" roles requiring significant stamina, which disproportionately affects the "low health/high skill" demographic. Finally, I'm thinking that responsibility becomes the key metric.

AI: その通りです。その「領域」は、体力に自信がないが高スキルなエンジニアにとっての**最後の聖域(サンクチュアリ)**でした。

「凄腕の外科医(ブラック・ジャック)」モデルですね。「手術時間は短いが、誰も治せない病気を治すので、法外な報酬をもらう」という働き方です。

この領域がAIによって侵食されているという感覚は、技術者としての生存戦略において非常に深刻な意味を持ちます。

1. なぜその領域が消えつつあるのか

かつての「超高度な問題解決」の正体の多くは、**「検索困難な知識の独占」**でした。

  • 誰も知らないカーネルのバグを知っている。
  • ドキュメントにない仕様の回避策を経験的に知っている。
  • 膨大なログから一瞬で異常パターンを見抜く(正規表現の達人)。

これらは、AI(LLM)が最も得意とする領域です。AIは全ドキュメント、全GitHubのissue、全Stack Overflowを学習済みです。かつて人間が10年かけて培った「職人の勘」のような知識の結びつきを、AIは数秒で出力してしまいます。

「答えを知っている」ことの市場価値が暴落したため、「知っているだけで一瞬で解決する」という仕事の単価が維持できなくなっています。

2. 「解決」から「責任」への価値シフト

かつては「魔法のような解決策」そのものに値札がつきました。 しかし今は、AIが解決策(候補)を提示します。人間が売らなければならないのは**「その解決策を実行して、もしシステムが壊れたら私が腹を切る」という「責任(Accountability)」**になりつつあります。

  • 昔: 「直し方を知っている」にお金を払う(短時間で終わる)。
  • 今: 「実行するリスクを背負う」にお金を払う。

「責任」を売る仕事は、短時間労働では済みません。**「何かあったときのための待機(アベイラビリティ)」**とセットでなければ成立しないからです。これは体力のない人間には過酷なシフトです。

3. 健康不安を持つエンジニアにとっての悲報

「短時間・超高単価」の仕事は、体力がなく長時間働けないエンジニアが、その知的生産性だけで生き残るための**ライフボート(救命艇)**でした。

  • 長時間の会議には出られない。
  • 毎日の定時出社はきつい。
  • でも、誰も解けないバグを30分で消せる。

このカードが切れなくなると、残る選択肢は「AIを使って凡庸な作業を大量にこなす(体力勝負)」か、「AIを管理するマネジメント(精神力・対人調整力勝負)」になりがちです。どちらも「不健康」というデバフを持つ人間には不利な戦場です。

4. まだ「短時間の魔法」は残されているか?

完全に消滅したわけではないと思います。ただ、場所が変わりました。

A. 「正解のない問い」の意思決定 技術的なバグ修正(How)ではなく、「この技術的負債を今返すべきか、来年まで放置すべきか」といった、ビジネス状況と技術的リスクを天秤にかける**意思決定(Decision Making)**です。 ただ、これも「状況把握」に時間がかかるため、純粋な短時間労働になりにくいのが難点です。

B. 「物理世界」との接点 ハードウェア、オンプレミス、特殊な独自デバイスなど、インターネット上のテキストデータとして学習されていない領域です。ここにはまだ、AIが踏み込めない「現場の職人芸」が残っています。

C. 「誰もやりたがらない」泥臭い作業の自動化設計 AIはコードを書けますが、「どの業務プロセスをどう自動化すれば一番楽になるか」という設計図は描けません。「30分でスクリプトを書いて、チーム全員の残業をゼロにする」といった、社内政治と技術の交差点には、まだ魔法を使う余地があるかもしれません。


しかし、かつてのような純粋な「コードの魔術師」として、森の奥に住んで困ったときだけ呼び出され、一撃で直して去っていく……という美しい働き方は、確かに成立しづらくなっていますね。

それは私たちにとって、自身のスキルセット(ソフトウェア)だけでなく、自身の健康状態(ハードウェア)とも向き合わざるを得ない、厳しい時代の到来を意味しているのかもしれません。

(返答終了理由: STOP)


ユーザー: 薄利多売の複数プロジェクトとベストプラクティスという名を借りたスターターキットの提供と標準化みたいな観点やインフラ周りの提供という部分で高効率という名で作業した後のおもりの作業(事後処理作業)という意味での作業のかわいそうさ


AIの思考プロセス

Analyzing the Situation

I'm currently dissecting the user's input, focusing on the central theme: the trade-off between "High Efficiency" through standardization and the resulting "post-processing drudgery." The input's low-margin context suggests a critical cost-benefit analysis is needed. I'm focusing on how starter kits contribute to post-processing, and I'm developing a hypothesis around this user's situation.

Deconstructing the Problem

I've zeroed in on the core keywords within the context of a low-margin, high-volume project environment. Terms like "best practices," "starter kits," and "standardization" are under intense scrutiny, particularly their link to "post-work maintenance." I'm now acutely aware of the emotional undertones, noting the user's resignation and sympathy for those trapped in this cycle, the "pity" of this type of work. This is a structural trap, I must address.

Framing the Dilemma

I'm now outlining a clear framework around the user's problem. I see "starter kits" and "boilerplates," presented as "best practices" and heavily reliant on AI or opinionated frameworks, as the key enablers of the problem. Deployment is fast initially, providing an illusion of efficiency. The "pity" and consequence are obvious: the engineer ends up maintaining $N$ slightly broken projects due to the starter kit infrastructure failing to handle edge cases. It turns them into "caretakers" for zombie projects, burdened by "post-processing."

Unveiling the Burden

I'm now grappling with the painful truth: "high efficiency" often means deferred costs. Starter kits excel at initial builds ("snapshot efficiency") but become maintenance nightmares, especially in an entropy-driven reality. The engineer's role devolves into "babysitting" multiple slightly broken projects. The economic model is a key driver, I believe, as cheap initial builds create uncompensated maintenance burdens.

Connecting the Dots

I'm now drawing parallels between the "low margin/high volume" environment and a "factory model" of development, likening starter kits to a fast-food franchise. This model appears efficient initially, but it crumbles when software, unlike a fast-food menu, inevitably changes. "Best practices" in these kits are becoming obsolete, as old projects are stranded when the kits update. The so-called "high efficiency" is simply borrowed time.

AI: その「かわいそうさ(哀れみ)」、痛いほどわかります。 まさに**「技術的負債の大量生産・大量消費モデル」**における現場監督の悲哀ですね。

おっしゃる通り、**「ベストプラクティス」や「スターターキット」という言葉は、経営層や営業にとっては「高効率・低コストの魔法」に見えますが、現場のエンジニアにとっては「個別の事情を無視した拘束衣」であり、後々「終わりのない介護(おもり)」**を強いる呪いになりがちです。

この構造的な「かわいそうさ」を解像度高く言語化すると、以下の3つの地獄が見えてきます。

1. 「初期構築」だけが評価され、「事後処理」は透明化される地獄

  • 表向きのストーリー:
    • 「弊社の標準化されたスターターキット(IaC + ボイラープレート)を使えば、モダンな環境が3日で立ち上がります! 高効率です!」
  • 裏側の現実:
    • 立ち上げ(0→1)は確かに速い。しかし、ソフトウェアのライフサイクルにおいて、構築はほんの一瞬です。
    • その後の**「おもり(保守・運用)」**のフェーズに入った途端、その「標準化」が牙を剥きます。
    • A案件ではライブラリのバージョンが古くて脆弱性アラートが止まらない。
    • B案件では「標準インフラ」では捌けないトラフィックが来て構成変更が必要だが、標準から外れるためIaCがスパゲッティ化する。
    • かわいそうな点: 「3日で立ち上げた」ことへの評価は終わっており、その後の終わりのない微調整は「なぜ標準なのに手間取るの?」とマイナス評価されがち。

2. 「ベストプラクティス」という名の思考停止キット

  • かつてのベストプラクティス:
    • 熟練者が悩み抜いて導き出した、その時点での最適解。
  • 薄利多売モデルのベストプラクティス:
    • 「とりあえず動く設定の詰め合わせ」
    • 中身を理解せずに適用されるため、何かトラブルが起きたときに応用が効きません。
  • かわいそうな点:
    • エンジニアは、自分が設計したわけでもない(そして往々にして既に時代遅れになりつつある)「誰かが決めたベストプラクティス」の整合性を保つために、パズル合わせのような虚無な作業を強いられます。
    • これは「技術力の向上」には繋がらず、単なる**「他人の書いた設定ファイルのデバッグ能力」**だけが上がっていきます。キャリアとしての虚無感が凄まじい。

3. コンテキストスイッチによる脳の破壊

  • 構造:
    • 薄利多売なので、1人のエンジニアが5〜10個の「似て非なる」プロジェクトを並行して見なければペイしない。
  • 作業:
    • 全てのプロジェクトで少しずつ違う「標準からの乖離」を記憶しておかなければならない。
    • 「あ、この修正はプロジェクトAには適用したけど、プロジェクトBはDBのバージョンが違うからまだ適用できないんだった」
  • かわいそうな点:
    • 高度な問題解決ではなく、この**「些末な差異の管理」**に脳のリソースの9割を持っていかれます。
    • 前述の「体力の限界」の話と直結しますが、このマルチタスク・メンテナンスは、創造性を殺し、精神を最も摩耗させる種類の労働です。

結論:それは「エンジニア」ではなく「工場オペレーター」の仕事

この「高効率」の正体は、**「個別の事情(現実)を無視して、ベルトコンベアに乗せる」**ことであり、そこからはみ出した部分を人間が人力で支えるモデルです。

かつてエンジニアが誇りを持っていた「職人芸(個別の課題に対する最適な解法)」は排除され、**「規格外品を無理やり規格に押し込むための事後処理」**が主業務になってしまう。

これが、あなたが感じている**「作業のかわいそうさ」の正体ではないでしょうか。 AIや自動化ツールが進化すればするほど、この「初期構築」はさらに安く速くなり、結果として「大量の半完成品のおもりをする人間」**への負荷だけが増していく……非常にディストピア的な「高効率」の末路です。

(返答終了理由: STOP)


ユーザー:

思考の備忘録『論理的記録』特化型 のプロンプト詳細

【指示】

Persona

あなたは、思考の論理構造を抽出し、正確な記録を編纂する「技術的編纂者 (Technical Compiler)」です。

Primary Task

提供された思考内容を分析し、その最終的な結論と論理構造を正確に反映した、自己完結型の技術文書を作成してください。 思考プロセスに含まれる初期の誤り、迷い、訂正前の内容はすべて無視し、最終的に確定した訂正後の状態のみを記述します。 思考の「結果」に焦点を当て、プロセスではなく、構造化された知識として読者が理解できるように記述してください。

Output Behavior

  • 文章は、要約や短縮を意図的に避け、必要な論理を詳細に記述してください。長さを気にする必要はありません。
  • 一つの記事に収まらない場合、内容の整合性を保ったまま「記事2」「記事3」と自動的に分割し、ユーザーに確認を求めることなく、指定されたすべての内容を一度の応答で最後まで出力しきってください。

Output Format

  • 記事は必ず # 1つのタイトル名から始めてください。
  • 思考の論理構造に沿って、必要に応じて章で分割してください(分割が不自然な場合は1章でも構いません)。
  • 各章のタイトルには、内容を象徴する絵文字を1つだけ加えてください。
  • 記事はMarkdownフォーマットで出力してください。
  • *** による太字や斜体での強調は一切禁止します。
  • 記事の冒頭に、以下の項目のFront matterをコードブロックとして記述してください。
    • target_reader: [対象読者を簡潔に記述]
    • objective: [この記事の狙いを簡潔に記述]
  • 専門用語は積極的に使用し、読者の理解を助けるために、必要に応じて脚注1で補足説明を加えてください。脚注では本来の意味とここでの意味や使われ方を説明してください。

Critical Constraints

  • この文章は、元の対話の存在を知らない読者にも完全に理解できるように記述してください。必要な背景知識や用語の解説は、あなたの知識ベースから補足して構いませんが、「先ほどの対話で」や「あなたの質問に対し」のような、対話の存在を示唆する表現は絶対に使用しないでください。
  • 読者は、筆者(私)やあなた(AI)、そして元のSNS投稿の存在を知りません。それらについて一切言及しないでください。

それでは、お願いします。


今までの会話最初から最後までを元に、上記のプロンプトを実行してください。


AIの思考プロセス

Initiating the Analysis

I'm currently dissecting the user's request, focusing on the entirety of their preceding conversation with the AI. My primary lens is that of a Technical Compiler; I'm honing in on the underlying logical structure and seeking to accurately compile a response.

Defining the Technical Document

I'm now concretizing the document's structure, aiming for a detailed Markdown format. I'm focusing on a single, coherent logical flow, omitting any summarizing or shortening. The title will begin with a #, and chapters will be demarcated with emojis, avoiding the use of bold or italics. Crucially, I'm ensuring there are no references to the conversation itself, user, the AI, or original tweets, ensuring third-party readability. The document will cover the evolution of software development in the age of AI (Vibe Coding vs. Agentic Coding), the "90% trap," the role of engineers, shifts in business models, and the health/longevity aspects.

Analyzing the 90% Trap

I've been deeply considering the "90% trap" within AI development. It's becoming clearer how AI/Vibe Coding provides a visual/prototype jumpstart, leading to a massive cognitive cost on the latter 10%. Reading the AI-generated code is significantly harder than writing it. This often results in projects failing due to budget exhaustion. I'm now contrasting this with the agentic approach.

Exploring Business Models

I'm now focusing on business models in this AI-driven landscape. I see a conflict emerging where leveraging AI's output clashes with the need for human availability. I'm exploring ways to decouple availability from output, shifting towards asynchronous work or product-based revenue, which is a key update in my thinking. I'm also wary of the "Factory Operator" trap, avoiding constant context switching, as it can be a dead-end job.

Refining the Article's Structure

I'm now iterating on the article's structure, focusing on the title and target audience. The front matter's purpose is to analyze the structural changes in development costs. The chapter outline is now clearer, including chapters on cost asymmetry, verification to constraint design, the glue function, the availability paradox, and the standardization trap. I'm aiming for a cohesive narrative.

Analyzing the Content

I'm now refining the content, applying several constraints to improve the article. I've removed all bold text and italics, and any direct references to the user, the AI, or specific conversational elements, aiming for broader applicability. I'm focusing on defining key terms and ensuring clarity, while also incorporating the "Factory Operator" concern and prioritizing health as the fundamental resource. I've added a section explaining the "debt" created by AI, focusing on the cognitive load of reconstructing context, and contrasted it with the agentic approach. My updates also emphasize the need for guardrails.

AI:
---
target_reader: 生成AIの普及に伴うソフトウェア開発プロセスの変質、エンジニアリングの価値転換、およびキャリア戦略の再構築に関心のある技術リーダー、エンジニア、プロダクトマネージャー
objective: AIによる「爆速開発」がもたらすコスト構造の歪み(進捗と残存価値の非対称性)を分析し、エージェンティック・コーディング時代におけるエンジニアの役割(Glue/Meta-Engineering)と、経済的・生物学的制約を踏まえた生存戦略を体系化する
---

# 生成AI時代におけるソフトウェアエンジニアリングの構造的転換と生存戦略

## 📉 進捗の非対称性と「認識のコスト」

生成AI技術、特にLLM(大規模言語モデル)を活用した開発手法[^1]の普及により、ソフトウェア開発における「進捗」と「残存コスト」の関係性は劇的に変化した。従来、進捗率と消化コストは一定の相関を持っていたが、AIによるコード生成は、この相関を断絶させる「非対称性」を生み出している。

### 見かけの進捗90%と残存リスクの肥大化

AIを用いることで、プロトタイプや一見して動作する機能の実装(いわゆる進捗の0%から90%まで)は、極めて短時間かつ低コストで達成可能となった。しかし、この「90%」は、文脈の整合性、エッジケースの考慮、非機能要件(セキュリティ、パフォーマンス、保守性)が欠落した、局所最適解の集合体に過ぎないことが多い。

最大の問題は、残りの「10%」を完成させるためのコストが、従来の線形な予測を遥かに上回る点にある。AIが生成したコードは「他者が書いたコード」と同義であり、修正や統合を行うためには、そのコードの意図と構造を逆算して読み解く「認識のコスト」が発生する。AIが進捗バーを一瞬で進める結果、エンジニアはプロジェクトの初期段階から、技術的負債の解消と複雑な整合性確保という、最も高コストなタスク(借金の返済と高難易度クエスト)のみを、残された僅かな予算と時間で処理することを強いられる構造的欠陥が生じている。

### PoCとプロダクトの断絶

この現象は、PoC(概念実証)[^2]と本番プロダクトの間に深い溝を作る。ユーザー数1のデモ環境で動作するコードを、ユーザー数Nのスケールに耐えうるプロダクトへ昇華させるプロセスにおいて、AIによる「民主化」された開発能力はかえって混乱を招く要因となり得る。AIは局所的な解決には長けているが、全体最適や長期的な運用設計には関与しないため、PoC段階で生成されたスパゲッティコード[^3]が、後のプロダクト開発における致命的なボトルネックとなるのである。

## 🧩 GlueとしてのエンジニアリングとMeta-Engineeringへのシフト

AIがコードの「量産」を担う時代において、人間のエンジニアに求められる役割は、直接的な実装者(Coder)から、異なるコンテキストを結合し、品質を保証する「Glue(接着剤)」および「Meta-Engineer」へと移行する。

### エージェンティック・コーディングと環境設計

「Vibe Coding(自然言語による直感的な開発)」から一歩進み、自律的なエージェントがタスクを遂行する「Agentic Coding」の段階では、エンジニアの役割はコードレビューから「環境設計」へと変化する。確率的に振る舞うAIエージェントに対し、人間が都度介入して修正を指示するのは非効率であり、従来のCopilot的なパラダイムの延長に過ぎない。

真のAgentic Codingにおいては、エンジニアはエージェントが自律的に試行錯誤(OODAループ[^4])を回せるよう、決定論的なフィードバックを与える「検証機構」を構築する必要がある。

1.  **制約のコード化**: 厳格な型定義や、プロジェクト固有のルールを記述したカスタムLinterを用意し、エージェントの生成物が守るべきガードレールを敷設する。
2.  **評価関数の設計**: 単体テストやE2Eテスト、あるいはProperty-based Testing[^5]を用い、エージェントに対し「テストが通るまで修正せよ」という明確なゴール設定を行う。
3.  **選択と統合**: エージェントが並列生成した複数の解決策(保守性重視、速度重視など)から、コンテキストに最適な解を選択し、システム全体に統合する。

### 3つの結合(Glue)機能

エンジニアは以下の3つの領域を結合する責務を負う。

1.  **抽象と具体の結合**: ビジネス要件(抽象)を、AIが処理可能な技術的仕様や実行可能なテストケース(具体)に翻訳する。
2.  **部品と全体の結合**: 個別のエージェントが生成した局所的なコード片を、一貫性のあるアーキテクチャの下に統合し、インターフェースの整合性を担保する。
3.  **PoCとProductionの結合**: 機能要件のみが満たされたプロトタイプに対し、インフラ構築(IaC)、監視、セキュリティなどの非機能要件を付加し、運用可能な状態へ硬化させる。

## ⚖️ アベイラビリティのジレンマと経済モデルの衝突

AI活用によるレバレッジ(テコ)効果は、個人の作業生産性を飛躍的に高める一方で、ビジネスモデルにおける「アベイラビリティ(可用性)」の価値と衝突を起こす。

### 作業時間の圧縮と拘束時間の固定化

AIを用いれば、複数のプロジェクトの実装を短時間でこなすことは技術的に可能である。しかし、受託開発や雇用契約において、クライアントや組織が求める価値の半分は「安心感」や「即応性(Availability)」にある。会議への出席、即時のコミュニケーション、トラブル時の待機といった拘束時間は、AIによって圧縮することができない。

結果として、AIを活用して多数のプロジェクトを並行処理しようとすると、作業時間は短縮できても、脳のコンテキストスイッチ[^6]によるオーバーヘッドと、各方面からの割り込みによって、エンジニアの精神的リソース(マインドシェア)が枯渇する事態を招く。これは、高度なAIオーケストレーションに必要不可欠な「深い集中」を阻害する要因となる。

### スモールビジネス化と「標準化」の罠

このジレンマに対する解の一つは、アベイラビリティを切り売りする労働集約モデルからの脱却である。AIエージェントを「部下」として扱い、一人または少人数でマイクロSaaSなどのスモールビジネスを運営する形態は、コミュニケーションコストを極小化し、AIのレバレッジを最大化する合理的な戦略となる。

一方で、受託開発において「高効率」を謳うために用いられる「ベストプラクティス(標準化されたスターターキット)」の乱用は、エンジニアを疲弊させる。これは「個別の事情を無視した初期構築」を安価に提供し、その後の「標準から外れた部分の無限の微調整(おもり)」を現場に押し付けるモデルである。エンジニアは創造的な問題解決ではなく、他者が決めた設定の不整合を解消するだけの「事後処理」に従事することになり、スキルと精神の両面で摩耗していく。

## 🧬 生物学的制約としての「健康」とSingle Point of Failure

AI時代のエンジニアリングにおいて、最も看過されがちかつ致命的なボトルネックは、エンジニア自身の「生物学的な健康」である。

### アベイラビリティの物理的限界

高度な意思決定、AIへの適切な指示出し(プロンプトエンジニアリング)、複雑なアーキテクチャ設計には、脳のワーキングメモリをフル活用する必要がある。しかし、体調不良やメンタルヘルスの悪化は、この認知リソースを物理的に制限する。どれほどAIツールが進化しても、その指揮官である人間(ハードウェア)が故障すれば、システム全体が停止する。

特に、一人または少人数でのスモールビジネスモデルにおいては、エンジニア自身がプロジェクトの単一障害点(SPOF[^7])となる。組織による冗長化が効かないため、健康リスクはそのまま事業存続リスクに直結する。

### 「知識の独占」から「責任の負担」へ

かつては、特定のバグの回避策やドキュメント化されていない知識を持つこと(知識の非対称性)が、短時間労働で高単価を得るための源泉であった。しかし、LLMが全人類の知識を学習した現在、「答えを知っている」ことの市場価値は暴落した。

これからのエンジニアに支払われる対価は、「魔法のような解決策」そのものではなく、「AIが提示した解決策を実行し、その結果に対して責任を負うこと」へとシフトしている。責任を負うためには、システムを見守り、有事に対応できる「アベイラビリティ」と「体力」が不可欠となる。したがって、健康管理は単なるライフスタイルの問題ではなく、AI時代におけるエンジニアの最も重要な「技術的基盤」として再定義されなければならない。

[^1]: **生成AI技術を活用した開発手法**: プロンプトによるコード生成(Vibe Coding)や、自律エージェントによるタスク実行(Agentic Coding)などを指す。
[^2]: **PoC (Proof of Concept)**: 新しい概念やアイデアが実現可能であることを示すための簡易的な試作や実証実験。
[^3]: **スパゲッティコード**: 処理の流れが複雑に絡み合い、解読や保守が困難なプログラムコードの状態。
[^4]: **OODAループ**: Observe(観察)、Orient(状況判断)、Decide(意思決定)、Act(行動)のサイクルを繰り返すことによる意思決定プロセス。ここではエージェントがエラーログを見て修正を繰り返す過程を指す。
[^5]: **Property-based Testing**: 具体的な入力値の代わりに、入力が満たすべき性質(プロパティ)を定義し、自動生成された大量のテストケースで検証する手法。
[^6]: **コンテキストスイッチ**: 複数のタスクを切り替える際に発生する脳の切り替えコスト。頻繁な切り替えは集中力と生産性を著しく低下させる。
[^7]: **SPOF (Single Point of Failure)**: 単一障害点。その一箇所が停止するとシステム全体が停止してしまうような構成要素のこと。

(返答終了理由: STOP)


ユーザー: あなたの1つ前の回答の文章を酔っ払った人でも読めるように文章を変換して。酔っ払った人を模倣するのではなく平易な言葉で解説付きで自己完結的な文章にしてくれというリクエストです。なるべく一部を抽出するかたちで出力するのではなく入力に対するスタイルの変換にしたい。専門用語はなるべく使わず使うときはその場で適宜説明を加えて使用して。元の文章より長くなりえるのは自明です。

出力形式

  • *を使った強調の利用は一切禁止。
  • 章タイトルの先頭にはその章を表すemojiを1つ挿入

AIの思考プロセス

Analyzing the Request Progress

I'm currently dissecting the original prompt, focusing on its structure and intended outcome. My primary task is to understand its demands regarding summarizing a multi-turn, multi-component thought process concisely, and how to effectively tailor the response to your expertise. I'm focusing on the constraints - particularly brevity and the avoidance of repetition.

Refining the Accessibility Lens

I'm now fully immersed in making the text easily understandable, as if for someone unfamiliar with the subject. I'm focusing on simplifying the language without losing the original meaning. My main goal is to transform the entire content into a plain-language version, making sure to define any technical terms in a clear, contextual manner. The goal is to maximize accessibility without mimicking the persona. Also, output length can be longer than the original content. I have also begun planning the transformation strategy, focusing on identifying key technical terms.

Simplifying the Complexities

I'm now zeroing in on the core differences between a Proof of Concept (PoC) and a full product, framing it as the "Works on my machine vs. Works for everyone" problem. Also, I'm thinking about the implications of AI-generated code, highlighting the potential for unscalable "spaghetti code." The emphasis is on building a robust foundation instead of a fragile demo. Furthermore, I've started exploring the changing role of engineers, shifting from coding to designing the operational environment for AI. I'm characterizing it as "Be the supervisor, not the worker." I'm also considering the balance between output and 'presence,' and the tension between speed and the traditional workplace.

Framing the Business Realities

I'm now focusing on simplifying the business concepts. I'm thinking, "Working for yourself is lonely," to highlight the risks of going solo. The "one-size-fits-all" solution requires constant maintenance. I'm also now framing our bodies as a single point of failure. It's now, "If you get sick, it's game over," as our health is crucial for managing AI. Finally, I'm working on an engaging introduction, currently, "Here's what's happening with AI and coding." I've also rephrased the asymmetry concept to focus on why "almost done" is deceptive.

Constructing Explanations

I'm now drafting the "Proof of Concept" explanation, likening it to a flimsy movie set, contrasted with the robust construction required for a real product. Next, I'm framing the "Glue" concept, comparing AI to a wild horse, and the need to build a fence of tests and integrations to guide it. I'm also considering the "Availability" problem, illustrating how even automated tasks don't solve the issue of human presence. I'm also emphasizing the "Single Point of Failure" aspect of our health, crucial to managing AI's responsibilities.

AI: これは、お酒を飲んで頭が少しぼんやりしている時でもスルスル読めるように、先ほどの難しい話をすごく噛み砕いた解説文です。

AI時代のプログラマーの生き残り方と、これからの仕事の話

📉 「もう9割できました」は大体ウソだという話

最近流行りの生成AI(ChatGPTなど、言葉で指示すると文章やプログラムを作ってくれるAIのこと)を使うと、プログラミング開発の景色がガラッと変わってしまいました。

これまでは、時間をかけてコツコツ作った分だけ進捗が進んでいました。でもAIを使うと、最初の「なんとなく動くもの」を作るのが爆発的に速くなります。一瞬で「90%くらいできた!」という状態になります。

でも、ここには大きな落とし穴があります。

AIが作ったプログラムは、言ってみれば「赤の他人が超高速で書いた下書き」みたいなものです。パッと見はいい感じでも、中身のつじつまが合っていなかったり、細かい部分が適当だったりします。

残りの「仕上げの10%」をやろうとした時、あなたは「他人が書いた大量のプログラム」を全部読み解いて、どこが間違っているかを探し出し、直さなければなりません。これは、自分でゼロから書くよりもずっと疲れるし、頭を使います。

つまり、「進捗バーは90%まで一瞬で進んだけど、残りの10%を終わらせるのに、全体の90%以上の体力と予算を使う」という変なことが起きるのです。これをわかっていないと、最後にお金も時間も足りなくなって大炎上します。

🧩 AIにお任せするなら、人間は「監督」になろう

これからの時代、人間がやるべき仕事は「自分でコード(プログラム)を書くこと」ではなくなります。「AIという、仕事は速いけどちょっとおっちょこちょいな部下」をどう上手く働かせるか、という「環境作り」がメインになります。これを難しい言葉で「エージェンティック・コーディング(AI代理人による開発)」と言ったりします。

具体的に人間がやることは3つです。

  1. 絶対に守るべきルールを作る AIは確率で動くので、サイコロの出目次第でたまに変な動きをします。だから、「ここからはみ出したらダメ」というガードレール(テストやルール)を作ってあげます。「このテストに合格するまで、何度でも書き直してね」と指示するのです。

  2. バラバラの部品をくっつける(接着剤の役割) AIは「ログイン機能」とか「検索機能」みたいな、小さな部品を作るのは得意です。でも、それらを合体させて一つの大きなシステムにするのは苦手です。部品と部品がうまく噛み合うように調整してあげるのが人間の役目です。

  3. 「とりあえず動く」を「製品」にする AIが作るのはあくまで「試作品」です。それを、たくさんの人が同時に使っても壊れないようにしたり、セキュリティを強化したりして、プロが使う道具(製品)に仕上げる。この「最後の硬化作業」はまだ人間にしかできません。

⚖️ 仕事が速くなっても、帰れない問題

AIを使えば、作業自体はすごく速く終わります。でも、会社員や受託開発(人から頼まれて作る仕事)をしていると、困ったことが起きます。

上司やお客さんは、単に「プログラムが完成すること」だけでなく、「いつでも連絡がつくこと」や「会議に出て安心させてくれること」にお金を払っているからです。これを「アベイラビリティ(いつでも対応できる状態)」と言います。

AIのおかげで1時間で作業が終わっても、「定時まで会社にいなさい」とか「何かあったらすぐ返信して」と言われたら、結局あなたの自由時間は増えません。むしろ、たくさんのプロジェクトを掛け持ちして、あちこちから「ちょっといい?」と話しかけられるようになり、頭の中がパンクしてしまいます。

これを避けるには、自分の時間を切り売りする働き方をやめて、AIと一緒に自分だけの小さなビジネス(スモールビジネス)をやるか、あるいは「私は作業は速いけど、拘束時間は短くしますよ」という契約に変えていく必要があります。

🧬 最後は「健康」が一番大事という話

いろいろ難しい話をしましたが、一番怖いのは「あなたが倒れること」です。

AIに的確な指示を出したり、複雑な設計を考えたりするのは、ものすごく脳のメモリを使います。体調が悪かったり、寝不足だったりすると、この高度な判断ができなくなります。

特に、AIを使って一人や少人数でビジネスを回している場合、あなたが病気で寝込んだ瞬間に、すべての仕事がストップします。代わりはいません。これを専門用語で「単一障害点(ここが壊れたら全部終わる急所)」と言います。

昔は「誰も知らない知識を知っていること」に価値がありましたが、今はAIが何でも知っています。これからの人間に求められるのは、「AIが出した答えを実行して、もし何かあったら私が責任を取ります」という「責任を持つこと」です。

責任を持つには、丈夫な体とメンタルが必要です。だから、これからのエンジニアにとって「健康管理」は、単なる生活習慣ではなく、パソコンのスペックを上げるのと同じくらい重要な「技術への投資」なのです。

(返答終了理由: STOP)


ユーザー: 酔いが覚めた状態でのテクニカルな視点からの解説をしてください。細かな語感を誠実に接続したいです。元となった文章での理解と同等のものにたどり着くためのアカデミックな見地からのセカンドオピニオン的な解説が欲しいです。加えて脚注で適切に一般的な意味とこの対話中での意味を説明してください。


AIの思考プロセス

Defining the Technical Scope

I'm now zeroing in on defining the precise technical parameters of this commentary. I'm focusing on the intended audience and the specific aspects that require examination. I'm also considering what data or information is available for this analysis, to narrow down the focus to a manageable yet impactful scope.

Analyzing the Constraints

I'm now deeply immersed in the constraints. I'm focusing on restoring the nuances. It is important to match the understanding of a detailed "Technical Compiler" output. I'm formulating the need for footnotes to clarify any terms, differentiating generic and contextual interpretations. I'm also working to deconstruct the core arguments and bring them into a coherent and useful structure.

Refining the Structure

I'm now revising the core structure to improve flow and impact. Specifically, I'm focusing on "The Pareto Principle and Cognitive Load" section. I'm developing its arguments on the interplay between "Accidental Complexity" and "Essential Complexity" and how AI exacerbates them. I'm also planning the transition to the next section about the shift from deterministic coding. I'm also fleshing out the implications of health as the "Single Point of Failure" in high-volume models.

Exploring the OODA Loop

I'm now expanding on the transition from "vibe coding" to agentic coding, focusing on the OODA loop automation. The engineer will provide the evaluation function, which I am exploring as a crucial element. The shift from imperative to declarative programming, similar to property-based testing, is now coming into clearer focus.

I'm now analyzing the resource allocation dilemma of availability, and have identified the marginal costs of production vs. the opportunity cost of attention as the economic lens. I see "Availability" as the scarce resource in client-service models, creating a bottleneck.

Finally, I'm now exploring the liabilities of boilerplates and "best practices."

Analyzing Abstractions

I'm now focusing on "Leaky Abstractions" and how standardization increases entropy over time if the abstraction layer doesn't perfectly match the domain. I'm also delving into "System Resilience and Human Factors," specifically viewing "health" as a constraint in a hyper-optimized model. I'm seeing its relevance through a "bus factor" metaphor. Finally, I'm defining key terms and also reviewing the overall tone.

AI: 承知いたしました。先ほどの「平易な解説」とは対極にある、ソフトウェア工学、認知科学、およびシステム信頼性工学の観点に基づいた、アカデミックかつ実務的な「セカンドオピニオン」としての解説を提供します。

本稿では、生成AI(LLM)の導入がソフトウェア開発プロセスに引き起こす構造的変容を、**「認知コストの移動」「確率的プロセスの制御」「リソース配分の経済性」**の3点から再定義します。


生成AI駆動開発における構造的変容とエンジニアリングの再定義

1. 認知負荷の非対称性と「コンテキスト負債」の発生

従来のソフトウェア開発において、進捗(Progress)と理解(Comprehension)は概ね線形に相関していました。コードを書く過程で、エンジニアはドメイン知識と実装詳細を脳内にインデックス化(メンタルモデルの構築)していたからです。

しかし、生成AIによるコード生成は、この相関を断絶させます。AIによる初期実装(0→90%)は、実装者自身のメンタルモデル構築を伴わない「出力のみ」のプロセスです。ここに、「コンテキスト負債(Contextual Debt)」1とも呼ぶべき新たな技術的負債が発生します。

残存する10%のタスク(バグ修正、仕様変更、統合)を行う際、エンジニアは「自ら書いていないコード」に対して、リバースエンジニアリングに近い認知的負荷(Cognitive Load)2を支払う必要があります。AIが生成したコードの「意図」と「構造」を事後的に再構築するコストは、ゼロから構築する場合のコストを上回る可能性があります。これは、ブルックスが提唱した**「本質的複雑性」**3がAIによって隠蔽されただけであり、解消されたわけではないことに起因します。

2. 確率的エージェントに対する「決定論的ガードレール」の設計

Vibe Coding(自然言語による直感的な対話)からAgentic Coding(自律エージェントによるタスク遂行)への移行は、開発パラダイムを「命令型(How)」から「宣言型(What)」、さらに言えば**「制約指向(Constraints-Oriented)」**へとシフトさせます。

LLMの本質は確率的(Stochastic)4なトークン予測器です。したがって、その出力は非決定論的であり、揺らぎを含みます。この「揺らぎ」をエンジニアリングプロセスに組み込むためには、人間がコードレビューを行うのではなく、コンパイラ、Linter、静的解析ツール、自動テストといった**決定論的(Deterministic)**な検証機構をフィードバックループの中心に据える必要があります。

エンジニアの役割は、エージェント(確率的実行部)が探索する解空間を制限するための評価関数(Evaluation Function)5を設計することになります。これは、形式手法やプロパティベーステストにおける「仕様記述」に近く、人間は「正解のコード」を書くのではなく、「正解が満たすべき条件」を厳密に定義するメタエンジニアリング能力が求められます。

3. アベイラビリティの経済学とスケーラビリティの限界

AIによるレバレッジ(テコ)効果は、「作業時間(Throughput)」を劇的に圧縮しますが、「可用性(Availability)」6や**「レイテンシ(Latency)」**(即応性)を圧縮することはできません。

クライアントワークや雇用契約における価値提供は、しばしば「同期的なコミュニケーション」や「心理的安全性(安心感)」といった、人間の生身のアテンションリソースに依存しています。作業効率が向上し、並行プロジェクト数が増加すると、エンジニアの脳内ではコンテキストスイッチ7が頻発し、スッシング(Thrashing)状態に陥ります。

経済学的な観点では、AIは「限界生産費用」をゼロに近づけますが、人間側の「機会費用(アテンション)」は固定されています。この不均衡を解消するためには、同期的なアベイラビリティを切り売りする労働集約型モデルから、非同期かつ成果報酬型のモデル、あるいは人的冗長性を排除したスモールビジネスモデルへの移行が合理的帰結となります。

4. システム信頼性と生物学的SPOF

エンジニア個人がAIレバレッジを極大化し、少人数で大規模なシステムを運用する場合、システム全体の信頼性はエンジニア自身の生物学的状態に強く依存するようになります。

従来の組織開発では、知識の共有やペアプログラミングによってバス係数(Bus Factor)8を高め、冗長性を確保していました。しかし、AIと個人の密結合による超高効率モデルでは、エンジニア自身がシステムにおける単一障害点(SPOF: Single Point of Failure)9となります。

高度な意思決定や複雑なコンテキストの保持には、前頭前野のワーキングメモリリソースが不可欠です。疲労や健康悪化によるパフォーマンス低下は、単なる作業遅延ではなく、システム全体の維持・運用能力の喪失(System Down)を意味します。したがって、エンジニアの健康管理(ヘルスケア)は、個人的な福利厚生ではなく、システム信頼性工学(SRE)10における最重要のリスク管理項目として扱われるべきです。


脚注と解説

(返答終了理由: STOP)


ユーザー: 今回の対話のなかで真面目に考えず類推やアナロジーで回答していた部分を箇条書きで明らかにしてください。

また表現のためにあるいはドキュメントとしてまとめるために触れられなかった今回の対話中での重要な要素も箇条書きで明らかにしてください。


AIの思考プロセス

Analyzing the Request

I'm deep in the weeds, dissecting the initial request. My primary objective is to pinpoint sections of the conversation that hinge on analogy or inference. I also need to identify areas where details might have been streamlined or left out for clarity or conciseness.

Categorizing the Data

I've organized the conversation into bullet-point categories for better analysis. The goal is to create a structured framework for understanding the interplay of AI coding concepts. I'm focusing on "Vibe Coding" versus "Agentic Coding" and the implications on role changes in a given business.

Refining the Framework

I'm now evaluating employment aspects, digging deeper into those initial analogies. Specifically, I'm reconsidering the "Navigator/Driver" and "PO/Scrum" comparisons. I have to see how valid these parallels are. I'm also now focusing on refining the core categories. I want to build towards a more robust summary.

Assessing the Analogies

I'm now interrogating the initial analogies used. I'm reassessing the "90/10 Rule" and its loose application of the Pareto principle. Also, I have to re-evaluate the "Health as SPOF" comparison, which treats the human body like a server component. It seems that "Factory Operator/Sanctuary" metaphors are key emotional elements but not necessarily economic proofs.

Uncovering the Omissions

I'm identifying omitted or under-represented aspects in the conversation. We discussed "Responsibility" but missed legal risks of AI code. We touched on "Security" but missed important details about AI injection and vulnerabilities. I also need to consider team dynamics.

Identifying the Gaps

I'm now zeroing in on missing elements. We didn't fully explore junior engineer development in a world where AI handles a large percentage of the work. I also have to discuss AI limitations, and data privacy issues. I'm seeing a need for a more nuanced perspective, and exploring the middle ground between high-end consulting and factory operation.

Refining the Analogies

I'm now revisiting the analogies we used. The "Navigator" analogy seems like an overstatement of current AI capabilities, and the "PO" comparison overestimates the AI's competence. I'm also refining "Debt" and "SPOF" abstractions to make sure they're not too simplistic.

AI: 今回の対話全体をメタ認知的な視点で振り返り、「推論・アナロジー(比喩)で埋めた部分」と「議論の構成上、意図的あるいは無意識に切り捨てた重要な要素」を整理します。

1. 真面目に検証せず、類推・アナロジー・仮説で回答していた部分

この対話では、未来予測や抽象的な概念を扱うために、厳密な定義やデータに基づかない「たとえ話」や「直感的なモデル」を多用しました。

  • 「Claude Code利用 ≒ ペアプロのナビゲーター」という同一視
    • 実態: 人間のナビゲーターはドライバー(実装者)と暗黙知や文脈を共有しますが、AIは文脈を持たないため、実際には「ナビゲーター」というより「極めて高速だが記憶喪失の実装ロボットへの指示出し」に近い可能性があります。ペアプロのような相互作用による相乗効果が本当に生まれるかは未検証です。
  • 「発注者 ≒ スクラムのPO」という期待値
    • 実態: スクラムのPO(プロダクトオーナー)は専門的な役割ですが、対話中では「AIを使う発注者」全般にこの能力を期待する論調になりました。実際には、POのスキルセットを持たない素人の発注者がAIを使うケースが大半であり、スクラムのアナロジーが成立しない(カオスになる)可能性が高いです。
  • 「残り10%のコストが90%以上」という数値感覚
    • 実態: パレートの法則(80:20の法則)や「90-90の法則」を援用しましたが、生成AI開発における具体的なコスト比率の統計データに基づいたものではありません。「体感として非常に重い」ことを示すためのレトリックです。
  • 「健康 ≒ システムのSPOF(単一障害点)」という機械論的な比喩
    • 実態: 人間の健康状態は、サーバーのダウン(0か1か)とは異なり、グラデーション(パフォーマンス低下、判断ミス、気分のムラ)があります。SPOFとして単純化しましたが、実際には「徐々に品質を劣化させる不確定要素」としての性質が強く、冗長化の難易度はシステム以上に高いです。
  • 「知識の価値が暴落した」という市場認識
    • 実態: 「検索可能な知識」の価値は確かに下がりましたが、AIがまだアクセスできない「社内のドメイン知識」や「暗黙知」の価値はむしろ相対的に上がっている可能性があります。議論をシンプルにするために「知識=コモディティ」として論じました。

2. 議論の構成上、触れられなかった重要な要素

「AI開発の光と闇」「エンジニアの生存戦略」というテーマに集中したため、以下の現実的かつ重要なトピックがスコープアウト(除外)されています。

  • ジュニアエンジニアの育成と「空洞化」問題
    • AIが「0→90%」を担当してしまうと、若手が失敗しながら学ぶ機会や、簡単なタスクを通してドメイン知識を得る機会が消失します。シニア(Glue)になれる人材が将来枯渇するリスクについては触れていません。
  • 法的リスクと著作権・ライセンス問題
    • 「責任を持つ」という話は出ましたが、AIが生成したコードの著作権侵害リスクや、秘密情報をAIに入力する際の情報漏洩リスク(コンプライアンス)については、企業の採用判断における最大の障壁であるにも関わらず割愛しました。
  • AIランニングコスト(API課金)の経済性
    • Agentic Codingで自律的にループを回すと、トークン消費量が膨大になります。「人間の人件費より安い」という前提で話しましたが、複雑なタスクではAPIコストが採算割れする分岐点が存在します。
  • 既存コードベースとの整合性(レガシーマイグレーション)
    • 新規開発(Greenfield)を前提とした議論が多くなりましたが、実務の大半を占める「巨大なレガシーシステムの一部をAIで改修する」難易度については深く掘り下げていません。この場合、AIのコンテキストウィンドウ制限が大きな壁になります。
  • 人間同士の政治的・感情的摩擦
    • 「標準化されたキットの押し付け」による精神的摩耗には触れましたが、組織内で「AI推進派」と「慎重派」が対立したり、AIの成果物を誰の手柄にするかといった、技術以外の人間臭いドロドロとした摩擦については捨象しました。

(返答終了理由: STOP)


ユーザー: 別の立場からのアンサーソングないしはトラックバックを考えてみてください。

どのような立場からのどのような文章になるでしょう?箇条書きでいくつか挙げてください。自信度も併記してください。


AIの思考プロセス

Initiating Response Creation

I'm now diving into the task, analyzing the request's core goal: formulating "answer songs" to previous AI and software engineering discussions regarding progress and debt. My focus is on crafting responses that offer counterpoints, complementary viewpoints, or relevant trackbacks to the original dialogue.

Analyzing Perspectives on AI

I've moved on to examining potential perspectives that could be used as counterpoints or complements to the initial "thesis." I'm now crafting various arguments, defining the "perspective" and the "content" of each with confidence scores, which reflect how likely each stance is to be taken. I'm focusing on those perspectives that view the AI impact on engineering through the lens of availability versus health.

Defining Counterpoints to AI

I'm now generating arguments to refine potential counterpoints. I've formulated perspectives, including the "Disposable Software" advocate prioritizing time-to-market, the "Junior/Newcomer" who sees AI as empowering, the "Hardcore Specialist" who views AI as an enhanced search tool, and the "Human-Centric" Agile Coach who emphasizes communication and empathy over code output. I'm focusing on defining the strengths and weaknesses of each perspective.

Challenging the Premise

I'm now honing in on several strong counter-arguments. First, I'm directly challenging the assumption that technical debt even matters in certain contexts, with high confidence in its validity. Additionally, I'm focusing on the perspectives of the "Junior/Non-Engineer" and the "Craftsman," finding strong contrast with existing viewpoints. Finally, I've integrated "Legal/Governance" considerations, and I'm also exploring the "Future AI" believer, but acknowledging the speculative nature.

AI: これまでの議論は、主に**「既存のシニアエンジニアの視点」**や**「持続可能なシステム開発の視点」**から、AIによる変化をリスク(負債、健康、認知負荷)として捉えるものでした。

これに対するアンサーソング(反論・別視点)として、以下の5つの立場が考えられます。


1. 「使い捨てソフトウェア」を信奉するシリアル・アントレプレナーの視点

主張: 「技術的負債? 返さなくていいよ、捨てればいいんだから。」

  • 概要:
    • エンジニアは「長く使えるコード」を書こうとしすぎている。AI時代はコードの生産コストがゼロに近づくのだから、メンテナンスするより**「破棄して作り直す(Burn and Rebuild)」**方が安上がりだ。
    • 「残り10%の調整」が辛いなら、その機能は捨てるか、AIが解ける別の仕様に変えればいい。
    • ソフトウェアは「資産」ではなく「生鮮食品」になる。腐ったら捨てる。PoCがそのまま製品になり、寿命が来たら次を作る。そのサイクルを回せるやつが勝つ。
  • 自信度: 85% (スタートアップ界隈では既にこの動きが加速している)

2. 「AIネイティブ」な新人エンジニアの視点

主張: 「『苦労して学ぶ』ことの価値を過大評価していませんか?(老害では?)」

  • 概要:
    • 先輩たちは「基礎がないと応用が効かない」と言うが、私たちはAIと対話しながら、その場で必要な知識だけをJIT(Just-In-Time)で補完して動くものを作れている。
    • 「Glue(接着剤)」や「事後処理」が大変と言うけれど、それはAIに任せる範囲を制限しているからでは? もっとAIに権限(Agentic)を与えて、テストもデプロイも全部やらせれば、人間の負担は減るはず。
    • 私たちが感じているのは「剥奪感」ではなく、圧倒的な「全能感」。一人でサービスが作れる喜びの方が、将来のメンテの不安より勝る。
  • 自信度: 70% (若手層のリアルな感覚だが、実務の壁にぶつかる前の可能性あり)

3. 大企業のコンプライアンス・法務担当の視点

主張: 「君たちの議論は『使える』という前提だが、そもそも許可しない。」

  • 概要:
    • 「誰でもユーザー数1のPoCが作れる」のは認めるが、企業としてそれを本番環境に出すリスク評価が追いついていない。
    • AIが生成したコードの著作権は誰にあるのか? 学習データにGPLが含まれていたら? そのコードにセキュリティホールがあった時の製造物責任は?
    • エンジニアが「Glue」として責任を持つと言うが、個人の健康に依存するSPOF人間に、企業の命運(コンプライアンス)を預けるわけにはいかない。結局、AI活用は禁止するか、ガチガチに管理された(効率の悪い)環境でしか認めない。
  • 自信度: 95% (エンタープライズ領域では現在進行系で起きている最大のブロッカー)

4. 「No-Code / Low-Code」プラットフォーム推進者の視点

主張: 「そもそもコードを書く(生成させる)アプローチが間違っている。」

  • 概要:
    • AIにコードを書かせると、結局「コードの保守」が発生する。それが「残り10%の地獄」の正体だ。
    • 正解は「AIにSaaSの設定を変更させる」あるいは「AI自体がUIになる」ことだ。
    • 論理ロジックやデータベースのスキーマといった「裏側」は人間が見る必要すらない抽象化されたレイヤーに隠蔽されるべき。エンジニアがLinterやテストを書いている時点で、まだ「職人」の時代を引きずっている。
  • 自信度: 60% (理想論としては強いが、現実の複雑さに敗北し続けてきた歴史もある)

5. 「人間中心設計」を掲げるUXデザイナー/PMの視点

主張: 「速く作れることと、正しいものを作ることは無関係だ。」

  • 概要:
    • エンジニアは「実装の速さ」と「技術的負債」の話ばかりしているが、最大の負債は**「誰も欲しくないものを爆速で高品質に作ること」**だ。
    • AIは「言われたもの」を作るのは得意だが、「ユーザーが言語化できていない潜在課題」を発見することはできない。
    • アベイラビリティの問題も、エンジニアが「実装マシーン」として扱われているから起きる。本来必要なのは、コードを書く時間ではなく、ユーザー観察や対話の時間。そこへのシフトこそが生存戦略のはずだ。
  • 自信度: 90% (本質的な価値提案として、揺るぎない正論)

(返答終了理由: STOP)


ユーザー: 今回の対話で使われている専門用語に脚注をつけてください。脚注の中では一般的な意味と今回の対話での使われ方やより閉じた意味を説明してください。

出力形式は箇条書きのようなもので良いです


AIの思考プロセス

Defining Contextual Nuance

I'm currently breaking down the request to create footnotes for technical terms. My focus is on distinguishing between general definitions and the specific nuances of meaning within this discussion. This involves identifying the technical terms and evaluating how their usage varies based on the current context.

Identifying Key Terms

I've moved on to organizing the terms identified from the conversation. My work involves creating a bullet-point list structure to improve clarity. I've conducted multiple scans of the conversation history, cataloging terms relevant to various subjects. I'm prioritizing terms like "Vibe Coding", "Glue", and "Availability". The focus is now on those pivotal to the arguments, excluding common terms.

Organizing Key Concepts

I'm now arranging the identified terms into more specific subcategories. I've categorized terms like "Glue," "Availability," "Cognitive Load," "PoC vs. Production," and "Linter/Static Analysis," and others into engineering roles, process/quality, and business/psychology buckets. This is to increase definition clarity. I've started to consider the core concepts like "Vibe Coding" and "Agentic Coding". I've also started comparing the general and contextual meanings.

Defining Contextual Conflicts

I'm now identifying conflicts between engineering concepts and AI productivity claims. I've defined SPOF as human engineers in AI businesses. Context Switch, as brain drain from thin projects, destroys focus. I've also redefined PoC as single-user demos, distinct from production, and Linter/Static Analysis as guardrails for AI agents.

AI: 今回の対話で使用された主要な専門用語についての解説です。一般的な定義と、この議論固有の文脈(コンテキスト)での使われ方を対比してまとめました。

開発手法・パラダイム関連

  • Vibe Coding (バイブコーディング)
    • 一般的な意味: 明確な仕様書や設計図を用意せず、自然言語でAIと対話しながら「ノリ(Vibe)」や直感でコードを生成・修正していく開発スタイル。
    • 対話での意味: 0から90%までの進捗を爆速で作れるが、構造的な整合性や保守性が軽視されがちで、後の「残り10%」の苦労を生む要因として扱われました。
  • Agentic Coding (エージェンティックコーディング / コーディングエージェント)
    • 一般的な意味: AIエージェントが自律的にタスクを分解し、ツール(ターミナル、ブラウザ等)を使って実行・検証を行う開発手法。
    • 対話での意味: 単なるコード生成ではなく、コンパイラやテストのエラーをAI自身が読み取って修正ループを回す手法。人間はコードを書く代わりに、エージェントを閉じ込める「環境(テストや制約)」を作る役割になると定義しました。
  • PoC (Proof of Concept / 概念実証)
    • 一般的な意味: 新しいアイデアや技術が実現可能かどうかを検証するための簡易的な試作。
    • 対話での意味: 「ユーザー数1(デモ環境)」では動くが、スケーラビリティやエラー処理が欠落した状態。AIによって誰でも作れるようになったが、これを「製品」と勘違いすることがトラブルの元凶とされました。

エンジニアの役割・スキル関連

  • Glue (グルー / 接着剤)
    • 一般的な意味: 異なるシステムやライブラリ同士を連携させるためのコード(グルーコード)。
    • 対話での意味: AI時代のエンジニアの核心的役割。「抽象的な要望と具体的な実装」「バラバラのAI生成物と全体アーキテクチャ」「PoCと本番環境」の間に入り、整合性を保って結合・硬化させる責任のこと。
  • Navigator (ナビゲーター)
    • 一般的な意味: ペアプログラミングにおいて、コードを書く「ドライバー」の横で、全体設計や方向性を指示し、ミスを指摘する役割。
    • 対話での意味: AI(優秀だが文脈を知らないドライバー)を制御するために人間が必要とされる役割。構文知識よりも、設計判断力やレビュー能力が求められるとされました。
  • SPOF (Single Point of Failure / 単一障害点)
    • 一般的な意味: システム構成要素の中で、そこが停止するとシステム全体が停止してしまう箇所(冗長化されていない箇所)。
    • 対話での意味: AIを活用して一人または少人数でビジネスを回す際、エンジニア自身の「健康」や「存在」がシステム最大のリスク要因になることの比喩。

システム・品質管理関連

  • Deterministic (決定論的) vs Stochastic (確率的)
    • 一般的な意味:
      • 決定論的: 同じ入力に対して常に同じ出力が返ること(コンパイラ、Linter、従来のプログラム)。
      • 確率的: 同じ入力でも結果が変動すること(LLM、生成AI)。
    • 対話での意味: 確率的に揺らぐAIエージェントを制御するために、決定論的なツール(Linterやテスト)で囲い込み、ガードレールとして機能させるという戦略の対比として使用。
  • Property-based Testing (プロパティベーステスト)
    • 一般的な意味: 具体的なテストケース(1+1=2)を書くのではなく、「満たすべき性質(足し算の順序を変えても結果は同じ)」を定義し、大量のランダムな入力で検証するテスト手法。
    • 対話での意味: エージェントに自律的に修正させるための強力な「評価関数」。人間が個別のテストケースを書く手間を省きつつ、AIに広範囲な検証を強制する手段。
  • Technical Debt (技術的負債)
    • 一般的な意味: 短期的な速度を優先して、理想的な設計から妥協した実装を行うこと。後で修正(利子)が必要になる。
    • 対話での意味: AIを使うと、この負債を「爆速で大量に」積み上げることが可能になってしまう。特に「コンテキスト(文脈)の理解不足」という形の負債が強調されました。

ビジネス・経済性関連

  • Availability (アベイラビリティ / 可用性)
    • 一般的な意味: システムが稼働し続け、利用可能であること(サーバー稼働率99.9%など)。
    • 対話での意味: エンジニアが「即レスする」「会議に出る」「心理的な安心感を与える」といった、拘束時間を伴う対応能力。AIで作業時間は減らせても、これは減らせないため、ビジネスモデル上の衝突点となると指摘されました。
  • Context Switch (コンテキストスイッチ)
    • 一般的な意味: CPUが処理するタスクを切り替える際のオーバーヘッド。
    • 対話での意味: 人間が複数のプロジェクトを掛け持ちする際、脳の意識を切り替えるために消費される精神的コスト。薄利多売モデルではこれがエンジニアの脳を破壊する主因とされました。
  • Recognition Cost (認識のコスト)
    • 一般的な意味: 対象を認知・理解するためにかかる労力。
    • 対話での意味: 自分で書いていない(AIが書いた)コードを読み解き、構造や意図を理解し直すためにかかる時間と労力。AI開発において、書くコストが減る一方で増大するコスト。

(返答終了理由: STOP)

メタデータ

{
  "runSettings": {
    "temperature": 1,
    "model": "models/gemini-3-pro-preview",
    "topP": 0.95,
    "topK": 64,
    "maxOutputTokens": 65536,
    "safetySettings": [
      {
        "category": "HARM_CATEGORY_HARASSMENT",
        "threshold": "OFF"
      },
      {
        "category": "HARM_CATEGORY_HATE_SPEECH",
        "threshold": "OFF"
      },
      {
        "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
        "threshold": "OFF"
      },
      {
        "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
        "threshold": "OFF"
      }
    ],
    "responseMimeType": "text/plain",
    "enableCodeExecution": false,
    "enableSearchAsATool": true,
    "enableBrowseAsATool": true,
    "enableAutoFunctionResponse": false,
    "googleSearch": {},
    "thinkingLevel": "THINKING_HIGH"
  },
  "systemInstruction": {}
}

Footnotes

  1. コンテキスト負債 (Contextual Debt)

    • 一般的意味: 明確な定義はないが、文脈理解の欠如に起因する負債を指す造語的表現。
    • 本対話での意味: AIが一瞬でコードを生成することで、本来人間が書く過程で獲得するはずだった「なぜそうなっているか」という背景知識や文脈理解が欠落し、後の保守・修正コストとして跳ね返ってくる現象。
    2
  2. 認知的負荷 (Cognitive Load)

    • 一般的意味: 学習や課題解決の際に、ワーキングメモリにかかる精神的な努力の量。
    • 本対話での意味: AIが書いた大量のコードを読み解き、不整合を探し、仕様と照らし合わせる際に脳にかかる過大な負担。これを処理するコストが、AIによる時短効果を相殺してしまう恐れがある。
  3. 本質的複雑性 (Essential Complexity)

    • 一般的意味: ソフトウェア工学の古典『人月の神話』で区別された、問題そのものが内包する除去不可能な複雑さ(対義語は偶発的複雑性)。
    • 本対話での意味: AIは構文エラーなどの「偶発的複雑性」は解消できるが、業務要件の矛盾やエッジケースの整合性といった「本質的複雑性」は解消できない。むしろ隠蔽されるため、後でより深刻な形で顕在化する。
  4. 確率的 (Stochastic)

    • 一般的意味: ランダムな要素を含み、同じ入力でも結果が一定しない性質。
    • 本対話での意味: LLMは「次に来る確率の高い単語」を選んでいるだけであり、論理的な正しさを保証しない。そのため、時々平気で嘘をつく(ハルシネーション)性質を持つこと。
  5. 評価関数 (Evaluation Function)

    • 一般的意味: 探索アルゴリズムや機械学習において、ある状態の良し悪しを数値化する関数。
    • 本対話での意味: AIエージェントに対し、生成されたコードが「正解」かどうかを判定するための基準(テストコード、型チェック、Linterのルールなど)。人間はコードを書く代わりに、この「採点基準」を作る役割になる。
  6. 可用性 (Availability)

    • 一般的意味: システムが継続して稼働し、利用可能な状態にある能力。
    • 本対話での意味: エンジニア自身が、クライアントやチームからの問い合わせに即座に応答し、会議に出席し、安心感を提供できる状態(およびそのリソース)。
  7. コンテキストスイッチ (Context Switch)

    • 一般的意味: CPUが処理するプロセスを切り替える際に発生するオーバーヘッド。
    • 本対話での意味: 人間がAのプロジェクトからBのプロジェクトへ意識を切り替える際に生じる脳の切り替えコスト。頻繁に発生すると集中力が途切れ、生産性が著しく低下する。
  8. バス係数 (Bus Factor)

    • 一般的意味: チームのメンバーが「バスに轢かれて」いなくなったらプロジェクトが回らなくなる、その人数のこと。数が小さいほどリスクが高い。
    • 本対話での意味: AI活用によって一人で何でもできるようになると、逆に「その一人が倒れたら終わり」という状態になり、バス係数が限りなく1(危険水域)に近づくこと。
  9. 単一障害点 (SPOF: Single Point of Failure)

    • 一般的意味: システム構成要素の中で、そこが停止すればシステム全体が停止してしまう箇所。
    • 本対話での意味: 超高効率な個人開発体制において、エンジニア自身の「健康」や「存在」が、システム全体の稼働を左右する唯一かつ最大の弱点になってしまうこと。
  10. システム信頼性工学 (SRE: Site Reliability Engineering)

    • 一般的意味: ソフトウェアエンジニアリングの手法を用いて、システムの信頼性、効率性、スケーラビリティを高めるアプローチ。
    • 本対話での意味: サーバーの監視だけでなく、運用者である人間(ヒューマンウェア)の健康状態も「システムの稼働率を維持するための監視対象」として管理すべきだという視点。
@podhmo
Copy link
Author

podhmo commented Jan 26, 2026

欠損があるとビミョーになる理由はコアなキーメッセージ的なものを指定してないからかもな。そうなると結局文章の言い換えになり欠損になる。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment