まだ誰もAIでどう構築すべきか分かっていない
(worksonmymachine.substack.com)- 現時点では AI開発の方法論 がまだ確立されておらず、誰もが 実験中 の状態である
- AI時代には 従来の専門家という概念 が意味を失い、誰もが 永遠の初心者 である
- 実際の開発プロセスは 即興的な文書の蓄積 と 反復的な試行錯誤 を通じて進んでいく
- AIと協業 すると、短い集中時間と最小限の入力だけでも 巨大な成果 が生み出される
- 自分なりの 文書システム も一時的なものであり、誰もが 使い捨ての実験 を続けている過程にある
The Great Experiment Nobody's Running the Same Way
- AI開発では、誰も 決まったやり方 を知らない状態である
- Malcolm Gladwellの1万時間理論のように、蓄積された 専門性 が無力化される環境である
- AIツール の進化速度が速すぎて、熟練を積み上げることが難しい
- AIペアプログラミング も経験値が2年未満で、誰もが常に 初心者 である
My Current Experiment (Subject to Change)
- 作業を始める前に参照する 4つの主要ドキュメント がある
pair_programming.mdproject_plan_{some extension}.mdtechnical_considerations.mdmcp-browser-architecture.md
- 文書体系も最初から設計したものではなく、即興的に積み上がった結果 である
- 最初は アーキテクチャ関連の文書 1つから始まり、繰り返し起きる問題や情報伝達の課題によって、徐々に文書が4つに増えていった
- 4つの文書を最適な結果として定めたわけではなく、これ以上追加しなくてもよいと感じたからである
- 「この文書がアーキテクチャだ」「このプロセスが公式(Official)だ」と、自分に対して ロールプレイ をしているような気分になることもある
- 実際にソフトウェアは動いており、こうした一時的な体系でも結果を生み出せること が重要である
- 各文書の役割は以下の通り
- Architecture Overview: READMEから出発し、「このソフトウェアは何をするものなのか」を記録する
- Technical Considerations: 繰り返される挫折や問題を文書化し、Claudeが混乱するたびに詳細を追加する
- Workflow Process: 繰り返してきた手順を文書化する。実際には公式ルールでも不可侵の文書でもなく、今回はたまたま効果があった方法の集まりにすぎない
- Story Breakdown: 15〜30分単位に分割した作業チャンク。Claudeはすぐに忘れてしまうため、会話履歴を頻繁にリフレッシュするためのもの
Time Dilation in the Age of AI - AI時代の時間の歪み
- 最近 Protocollieの開発 を進める中で、AIとの協業は 従来のソフトウェア開発における時間感覚を完全に揺さぶる体験 だった
- Claudeに特定機能の実装を指示したあと、その間に 私生活 を楽しみ、定期的に 確認と簡単なフィードバック を与える形でプロジェクトが進行した
- 実際に集中して「仕事」をした時間は 1日90分あまり だが、AIはその間にも素早く 数千行のコード を生み出した
- 入力に比べて成果物があまりに速く大量に出てくるため、従来の 投入と産出、努力と成果、時間と進捗 の公式が崩れてしまう
- ときにはこうした高速開発に罪悪感すら覚え、従来の開発パラダイムに当てはまらないことへの混乱から、時には ズルをしているような気分 にもなる
「スパゲッティ実験」段階
現在のAI開発環境は「スパゲッティ実験」段階だと表現される
- つまり、壁に試しにスパゲッティを投げつける過程 そのものに意味があり、何が貼りつくか、何が残るかは重要ではない。投げる行為そのものが実験 なのである
- 各種の手探り、実験の失敗、偶然うまくいった手順などは、集団的実験のデータポイントとして機能する
- 自分が使っている4文書システムも、いつでも無意味になる可能性があり、実験精神を持ち続けることが重要である
プログラミングとは何かの再定義 - What Even Is Programming Anymore?
コーディングの歴史を振り返ると、抽象化の発展とともに「自分が望むことを説明すれば、それが実装される」時代に入りつつあると認識する
- AI活用は単なる 新しい抽象化レイヤー を超え、まったく別の実体へと変化しつつある
- 今のプログラミングでは、構文知識、アルゴリズム理解、システム設計能力ではなく、具体的な想像力 や 正確な意図表現 といった新しい能力が求められる
- 「望むものを一貫して明確に説明できる能力」 が何より重要になっている
4文書システムの哲学的意味 - The Four-Document System as Accidental Philosophy
- この4文書体系は結局のところ 記憶と忘却、そして「もう二度と繰り返したくない経験の記録」である
- Architecture Overview: 「もし自分が記憶喪失になったなら知っておきたい内容」
- Technical Considerations: 「二度と繰り返したくない問題」
- Workflow Process: 「見落としたくないパターン」
- Story Breakdown: 「毎回ゼロから始まる状況で、どうやって進捗を出すか」
- すべての文書は結局 未来の自分へのメッセージ の役割を果たす
- 要するに、情報の欠落に備えて自分自身に送る案内文のようなものだ
不安定な高原と永遠の初心者 - The Uncomfortable Plateau
今は誰もが ジュニア開発者 になったかのように、永遠に 不安定な初心者状態 にある
- 従来のジュニアと違い、変化する技術の速度のせいで 熟練者になる時間すらない
- 絶えず変化する「物理法則」の中では、安定した熟練よりも適応と実験精神が重要になる
- この不確実性は コントロールへの執着 があるなら 恐ろしく 感じられるが、受け入れれば 解放感 も大きい
Where This All Goes
次に何を作るのか、どんなプロセスを使うのか、今回作った4つの文書を使い続けるのかも分からない状態である
- すべての開発者は同時に、自分のルーティンでは専門家 であり、新しい状況では 完全な初心者 でもある
- 4日間の作業が過去の数か月分に相当するほど、望むことを説明する能力 が決定的なスキルとして浮上している
- 自分の4文書も推奨事項やテンプレートではなく、集団的実験のひとつの痕跡 にすぎない
- 文書も、プロセスも、方法もすべて 一時的な産物 であり、他人のやり方が自分の答えになるとは限らない
結局のところ、私たちは皆、引き潮のときの 砂の城(ソフトウェア) を築いており、進歩という波がすぐにそれをまた洗い流していくことを認識している
やがて誰かが3文書システムや5文書システム、あるいはまったく別のアプローチを試すだろうし、そのやり方もまた有効かもしれない
結論
- AIとともに進める開発は 集団的実験 であり、創造的な試行錯誤 の連続である
- 1週間前のプロセスでさえ、すでに 過去の遺物 になってしまうほど変化が速い
- 誰かの足跡が役立つことはあっても、本当に重要なのは各自が自分自身の道を作ること である
最後に、自分が使っている4つの文書は 現在 GitHub で公開 されている
- これは絶対的な正解でもテンプレートでもなく、特定時点のひとつの実験例として見るべきものだ
- 他人の足跡を参考にしても、そのまま真似する必要はないことを強調している
- それぞれが自分の実験と方法論を育てていくこと が AI時代の新しい開発エコシステム である
4件のコメント
週末に翻訳して投稿してみようと思っていたのですが、GN+ に先を越されてしまいましたね 🥲
「ドキュメント体系も最初から設計したものではなく、即興的に積み上がった結果だ」という部分には、強く共感すると同時に思わず苦笑してしまいますね。はは
どこの誰が先生だとか言って、変なカルト野郎みたいなコメントしてるな
Hacker Newsの意見
この文章には本当に共感する。Kidlin’s Law、つまり「問題を明確に文章で書けるなら、すでに半分は解決している」という考え方を偶然知った。今のAI時代にはとても強力な原則だ。自然言語が技術とコミュニケーションする主要な手段になったことで、問題を明確に定義できればAIのポテンシャルも最大化できる。非同期的なコーディングのアプローチも本当に興味深い。個人的にRepl.itをとてもよく使っているが、問題解決に集中できるので驚くほどの変化だ。コーディングツールを使うと、マリオカートでスターやキノコを取ったような感覚になる。すごく楽しい一方で、AIが完全におかしな方向へ進むこともあり、その場合はリアルタイムで判断に介入する必要がある。1つのスタックを管理するだけでも大変だったのに、今は無限のスタックを相手にしている気分だ
私自身もソフトウェアエンジニアとして成長する過程で、自分のやりたいことを説明できるようにするため、ソフトウェアの世界の用語そのものを身につけるのに多くの時間を費やしたことをよく思い出す
Repl.itは本当に、うまくいけば数分で終わることが午後いっぱいかかることもある。でも、ときどきプロンプトボックスの下にあるおすすめを試してもまともに動かず、とてもがっかりする
実際のところ、問題を明確に述べるのは昔からずっと難しかったし、今も同じだ。明確な自然言語をコードに変えてくれるツールができたのは本当に素晴らしいことだが、AGIが登場しても明確な仕様を作るという作業自体は変わらないだろう。ツールのおかげでコーディングそのものと格闘する時間は減らせるだろうが、結局いちばん難しいのは本当に明確な仕様を書くことだ
この新しいプログラミングのやり方がとても気に入っている。これがどこへ向かうのかは分からないが、今のところ満足している。今でも普段なら休む時間にコードを書いているが、それがむしろ休息のように感じられる。長く働いてきたシニア開発者には特に向いている。最近は編集作業のほとんどが退屈だ。コードを見て悪いパターンを見つけると、新しいアイデアを試すために大きく書き換えなければならないが、昔ならStack Overflowを検索して悩んでいたことが、今ではCopilotのヒント一発、あるいはClaudeがそのまま全部解決してくれる。たとえば模擬株式取引所を作ったが、以前は実際の取引所に接続することが原因でよく先送りになっていた作業だった。今ではClaudeがHNを読んでいる間に全部作っておいてくれる。そこに戦略実装まで加えるとなると、実質的に退屈でしかなかった反復作業もすぐ片づく。タイプミスや依存関係の追加といったことで時間がかかっていたが、今はその必要もない。こうするとコードがぐちゃぐちゃになるのではと心配するかもしれないが、私はいつもClaudeと対話しながら変更点を批判的に見直している。経験が役に立つのは確かだが、AIが間違った方向に進むのもすぐ検知できる。だから自分のキャリアにとってちょうどいいタイミングでこうしたツールに出会えたわけだ。問題はジュニア開発者に残る。階段の消えた山頂へ一気に登るようなものなので、どう成長していけるのか気になる
ジュニア開発者の見通しについては同意する。もうすぐ50歳で、30年以上いろいろな分野でプログラミングしてきたが、自分の経験にもとづいてエージェントをうまく扱い、アーキテクチャを堅牢にする方法を知っている。経験なしにすべてがAIによって料理されて出てくるなら、後輩たちがどう成長するのか本当に気になる。時間が教えてくれる問題だ
私も大規模言語モデルを楽しく使っているが、ひたすらプロンプトを打ち続けるのは退屈でもあり不安でもある。プログラムがどう動いているのか正確に分かっていない気分になる。自分で何かを作るのは本当に楽しいし、すでにやったことのある反復作業や、あまり気にしていない仕事はLLMに任せる。Claudeでターミナルベースのsnakeゲームも作ってみたが、本当に不思議だった
以前の細々した作業にはもう戻れないと自分で気づいたのか気になる。LLMの登場のおかげで、作業中に外へ出たくなる気持ちが強くなった。昔のように12時間もモニターを見つめたまま、2つのブラックボックスをつなげられずに時間を無駄にする経験を、新人開発者はもうしなくていいのだと思うとうらやましくもある
実際に実装するとき、みんな最初から最後まで一気にやっているのか気になる。私はいつも反復的かつ段階的に書いて磨きながら実装する。絵にたとえるなら、全体を大まかに取り、そこから少しずつ細部を補っていく構造だ。各段階ごとに自分が何をしたいのかが少しずつ明確になり、最小の努力で最大の効果を出すやり方だ。コーディングはリファクタリング中心で、最小限に動くコードを作ってからTODOコメントを残し、反復的に改善していくスタイルだ
こういうツールが、昔から何千回もやってきた退屈な作業を代わりにやってくれるのは本当にわくわくする
私にとってのAIとは、インターネット上に存在するあらゆる情報を土台に会話できる次世代のGoogle検索だ。検索エンジンの普及によって新聞、電話帳、百科事典、旅行代理店などさまざまな業界で仕事が消えたように、AIもそうした変化を引き起こすだろう。ただ、これは人々が考えるほど存在論的な危機ではないと思う。AIは単なるツールだ。賢く創造的な人たちがこのツールを活用してすばらしいことをたくさん成し遂げるだろう。結局は使い手次第だ。検索はチャットになった。以前は自分で探していたが、今ではチャットすればAIが代わりに探してくれて、それ以上のこともしてくれる
チャット型LLMインターフェースが最適な形なのかはよく分からない。もう少しスマートなアプローチが必要そうだ
Googleの全盛期とは違って、今はシグナルに対してノイズが多くなり、データの出所も曖昧になっている
すでにGoogle検索結果は、使える情報よりもAIが大量に作ったゴミが先に出てくる感じがある
最新の検索エンジンは答えだけを返し、その答えに至る過程を示さないので、正しく情報を見つけて記録する人の役割が失われつつある。この部分が消えれば、結局みんな方向を見失うことになる。AIは既存情報を再利用するのだから、クリエイター、とくに優れたジャーナリズムの記者に収益を還元する方法が必要だ。そうでなければ民主社会の基盤が崩れる危険が大きい。ニュース産業はすでに何年も危機にあり、その結果として不信、分断、誤情報、外部からの操作などを経験している。AIが最後の致命傷を業界に与えるかもしれない。単なる雇用代替の問題ではなく、今私たちが進んでいる道は非常に暗い方向だ
検索以外のさまざまな分野でも、はっきりと有用だ
Claude CodeをスマホからクラウドVMで動かして、散歩や自転車ライドの最中にもフィードバックを返しながら作業を続けたい
https://vibetunnel.sh
入力と出力の比率が興味深い。私たちはたいていアウトプット量を最大化しようとするが、今は逆だ。私は最大量よりも、仕事のプロセスが具体的で検証可能な段階に分かれていてほしい。Cursorと一緒に要件を書くと最初はうまくいくが、うっかり計画から外れた大量のコードを生成してしまう問題がある。Markdownの見出しのあとに空行を入れられないとか、繰り返し伝えなければならない些細な点もある。反復プロセスと品質、一貫性をもう少し自分でコントロールできたらいいのにと感じる。テスト可能な閉じた問題に変えられるとき、AIは真価を発揮する。私が開いた問題を閉じた問題へ変換するのを助けてくれるツールが必要だ
「オフィスに入ってClaudeが作ったものをテストし、うまくいけばコミットしてプッシュする」こんな経験が何度も繰り返されるので、サイバーセキュリティコンサルタントとして今後かなり稼げそうな気がする
これはvibe codingではなく、まったく新しいものだと思う。私はこれを「flex coding」と呼んでいる。ある午後にアプリ全体を作り、しかも良い父親の役割まで果たせた。「じゃあサーバー接続UIを作って」と言えば、Claudeがコーディングし、私はまた日常に戻る。朝食も作り、息子と遊び、テレビも見て、その合間にClaudeがずっとコーディングしている。1〜2時間ごとに少し立ち寄ってテストし、フィードバックを返す感じだ
感情的には本当に魅力的で、多くの人が夢見るライフスタイルだろうが、Claudeのコードは本当に信頼できるレベルなのか。顧客に請求したり、自分の名誉をかける製品に使えるのか。私の答えは「ノー」だ。実際に使ってみると、参照エラー、既存の型をコピペして名前だけ変える、型エラーがまったくない状態を装う、といったことを頻繁に見かける。テストコードを書かせたら、失敗時に失敗するのではなく、結局は自己検証だけ通る奇妙なテストを作ることもあった。大切な時間を家族と過ごせるのはいいが、自分が作ったアプリを重要な場所で使うよう勧めはしない
こういう働き方をしている人に、なぜ給料を払う必要があるのかという疑問と、自分でもできるのに、なぜソフトウェアにお金を払うのかという考えが浮かぶ
念のため言っておくと、そのうちClaudeのほうが、お前も少しは働けと文句を言い始めるかもしれない
LLM活用ソフトウェアツールには限界を感じる。1つのグローバルなシステムプロンプトを、すべてのOpenRouter Keyベースのアプリに共通適用する方法もないし、あるアプリから別のアプリへ会話を移すのも難しい。すべてのアプリに同じMCPツールへのアクセス権すらきちんと与えられていない。Claude CodeのUXは今のところ最高だと思うが、Claudeのサブスクリプションに縛られたくはなく、自分のキー経由で好きなプロバイダーにつなぎたい
セキュリティ、国際化、ローカライゼーション、アクセシビリティ、ユーザビリティなどをうまくプロンプトした部分が抜け落ちている気がする。そういう品質要素がないまま「ソフトウェア制作者」を名乗るアマチュアが多すぎるのが問題だ。こうした側面が欠けていれば、商用ソフトウェアとしては絶対に成功できない。こういう部分も簡単にプロンプトで解決できると思っているなら、その分野で真剣な経験がないということだ
公平に言えば、実際の商用ソフトウェアでもこの部分がきちんと考慮されていないことは多い
私も懐疑的だが、リンク先の4つの文書のうち少なくともアクセシビリティとユーザビリティの文書は含まれている。国際化とローカライゼーションは見当たらなくても、本質的にはそこまで大きく違わないと思う。一方で、セキュリティの問題は本当に別物だと感じる
「自分の4文書システム? 結局はパターン化されたスパゲッティにすぎず、明日には全部崩れるかもしれない。またスパゲッティを投げるだけだ」こんなふうに開発がスケールすると信じている人が、まだたくさんいることに驚く
最近はモデルベース開発を実験的に試していて、記事の「プログラミングとは何か?」という部分に深く共感した。25年の経験とコンピュータサイエンスの知識を総動員しているが、手でコードを直接書く従来型のプログラミングではない気がする。今は何かを手作業で作るというより、ツールを操縦するパイロットのような気分だ。手作業を楽しむ人は、今後5年以内に業界を去る可能性が高いと思う。もちろん今後も手作業が必要な部分は残るだろうが、新しい方法論が開かれつつある。現時点では誰もがこの方法論に習熟しているわけではないが、これも業界の一部になっていくだろう