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

スタッフエンジニアの「Claude Code」との旅

2025年9月3日原文(sanity.io)

概要

  • Sanity社内ワークショップ でのAI活用事例の紹介
  • AIを「学習しない新人開発者」 として扱う現実的なワークフロー
  • コード生成の80%をAIに委任 し、設計やレビューに集中
  • AI導入による課題と解決策 の具体的共有
  • AIは開発者を置き換えるのではなく、強化するツール であるという結論

サニティ社内AI活用ワークショップ報告

  • Sanity社のStaff Software Engineer であるVincent QuigleyによるAI活用事例の共有
  • 社内ワークショップ でのプレゼンテーション内容に基づく記事
  • 複数のAIエージェント を同時運用し、小規模な開発チームのように活用する手法
  • Claude CodeやCursor を用いたコード生成・レビュー体験の紹介
  • AIは「毎日記憶をリセットする新人開発者」 というメンタルモデルで運用

コーディングワークフローの変遷

  • 初期5年間: 書籍やSDKドキュメント を読み込みながら独学
  • 次の12年間: Google検索によるクラウドソース回答 の活用
  • 直近18ヶ月: CursorによるAI支援コーディング の導入
  • ここ6週間: Claude CodeによるAI完全委任 への移行
  • 技術進化のスピード加速 と、AI活用への適応力

現在のAI開発ワークフロー

  • AIは「考えるための相棒」 として活用、最終的なコード品質に責任を持つ
  • 一発で完璧なコード生成は期待しない、反復的な試行錯誤を前提とする
  • 得られた知見や結果をフィードバック し、次回に活かすプロセス重視
  • AIは前回の学習を保持しない ため、毎回ゼロから説明が必要
  • MCP連携 などでAIに文脈を与えることで、作業効率化

複数AIエージェント運用の実際

  • 複数のClaudeインスタンスを並行稼働、小規模開発チームのマネジメント感覚
  • コード生成だけでなく、コードレビューにもAIを活用
  • Sanity社の方針 :AI生成コードもエンジニアが責任を持つ
  • 自己のコードへの執着が薄れ、冷静なレビュー が可能に

エージェント自動化と今後の展望

  • Slack連携エージェント による単純作業の自動化実験
  • 将来的には、バックログの小チケットをAIが夜間処理 することも視野
  • 全社的にAI活用ノウハウを共有・検証中

コストとROI

  • Claude Code利用コスト はエンジニア月給の数%に相当
  • 月額$1,000~1,500の予算感 でフル活用を想定
  • AI活用に慣れることでコスト効率向上 も期待

AI開発の課題と対策

  • 学習問題 :AIは失敗から学ばないため、繰り返し説明・明示的な指示が必要
  • 自信過剰問題 :AIは誤ったコードも自信満々で生成するため、常に検証が不可欠
  • 文脈制限問題 :大規模コードベースではAIのコンテキストウィンドウが不足しやすい
  • コード所有感の喪失 :自分の手で書かないため、執着がなくなり客観的な評価が可能

技術リーダーへの提言

  • AIワークフローに適応したエンジニア は、複数エージェントを指揮する「オーケストレーター」へ進化
  • 小さな明確な機能を選び、AIに3回実装させ、レビューする というシンプルな導入法
  • 大規模な変革やプロセス変更は不要、段階的な導入が現実的

結論:AIと開発者の未来

  • AIが開発者を置き換えるのではなく、開発者の能力を拡張するツール であるという認識
  • より早く、より良いソリューション実現 のために、最良のツールを活用する姿勢
  • コードそのものではなく、解決すべき課題に価値を置く 開発観へのシフト

Hackerたちの意見

ゴミを防ぐには、エージェントの認知的限界を考慮するだけでいいんだ。例えば… 1) 大きな変更や複雑な変更を求めないこと。計画をお願いするけど、その計画を小さなステップで実行するように頼んで、次のステップに進む前に各ステップをテストするようにモデルにお願いする。 2) 本当に複雑なステップの場合は、問題と解決策を可視化するためのコードを書かせる。 3) モデルが特定のステップで失敗したら、コードにログを追加するように頼んで、ログを保存して、テストを実行し、ログを見直して何が間違ったのかを確認する。これを繰り返して、そのステップがうまくいくまで続ける。 4) モデルに既存のコードを見てもらって、タスクを実装するためにどのように設計されているかを判断させること。時々、モデルはすべての変更を1つのファイルにまとめるけど、あなたのコードはきれいなデザインになっていて、モデルはそれを考慮しないことがある。ほかの人が自分のコツやヒントについてブログに書いているのを見たことがある。ゴミの結果はまだ見かけるけど、95%ほどにはなってないよ。

同じアドバイスを投稿している人を見たことがあるし、確かに効果があると思うけど、そろそろこの一般的な戦略を吸収して、製品の一部として統合してもいいんじゃないかなって思う。

ちょっと真面目な質問なんだけど、「計画を小さなステップで実行するように頼む」ってどういう意味? 一つの選択肢は「この変更を小さなステップで実装してください」とほぼそのまま書くこと。もう一つは、ステップを考えてから「小さなステップでこれを解決してください。最初のステップは、私が興味のある最初の新しいXML要素を処理するためにパーサーにコードを追加することです。この変更Xを行ってください。YとZについては後でやります」と頼むこと。ほかにもいろいろな選択肢があると思うよ。

最近、いくつかの個人プロジェクトで「バイブコーディング」をやってるんだけど、テスト駆動開発がバイブコーディングとすごく相性がいいことに気づいたよ。君が言った通り、問題を小さくてテスト可能な部分に分けて、AIに最初にユニットテストを書かせてから、実際のコードを実装するって感じ。

追加したいことがあるんだけど、開発ドキュメントを何らかの形で保持して、アプリケーションやそのコンポーネントのパターンやアーキテクチャを詳しく説明することが大事だと思う。これをやるだけで信じられないほどの改善が見られたし、正確なプロンプトを使ってClaudeにフルサービスを実装させることができたよ、テストも含めてね。もちろん、後で手動で修正が必要だけど、機能の作業を始める前にClaudeに開発ドキュメントを確認させることで、ほとんどの幻覚を防げる(それと、外部ドキュメント用にContext7 MCPを使うように言うことも)。少なくとも私の経験ではね。これの欠点は、コンテキストウィンドウの30%がドキュメントで埋まっちゃうことだけど、まあ、APIメソッドの幻覚を見たり、再実装しちゃいけないことを完全に忘れたりすることはないから、いいんじゃないかな。私の意見だけど。

大きくて複雑なタスクに対して効果的な戦略は、「今はコードを書かないで。問題の各ステップをもっと詳しく説明するから」と伝えることだと思う。大まかな流れは、1) この入力を読む 2) これらの候補を生成する 3) 候補にスコアを付けるためにヒューリスティックを適用する 4) 候補を優先順位付けしてランク付けする 5) 出力を反映するデータ構造を考える 6) このスキーマでDBに出力を書き戻す、って感じ。そうすると、Claudeはコード内にTODOリストを書いてくれたり(/initを実行していればclaude.mdにも)、各ステージの詳細を尋ねてくれる。実際、これを1時間やったこともあって、「今は止めなきゃ。完成したステージのコードを生成して、コメントを書いておいて、次回はそこから再開できるようにして」とClaudeに言ったら、次回はほとんど手間なく再開できたよ。

その時点で、自分でコードを書けばいいんじゃない?

俺はこういうことを全部やってる気がするけど、大抵は使えないコードになっちゃう。使えるコードができたとしても、結局は手を加えないといけないことが多い。たまにうまくいくこともあって、その時は本当にクールなんだけど、俺の経験では効率が上がる感じはしないな。

いくつかのLLMやエージェントを使ってるけど、まだ有用な出力を得るのに苦労してる。無駄なことをさせないためには、自分で書くよりもプロンプトにエネルギーを使わなきゃいけないんだ。プロンプトの細かいところや言い回し、意図しない関連性に神経質になっちゃう。専門家の交換みたいなものに似すぎると、クソみたいなコードが出てくるんじゃないかって心配になる。ほんとに欲しいのは、LLMのプロンプト用のフロントエンドフレームワークみたいなもので、プロンプトの構造やコード内の何かを見つけるためのベストプラクティス、あるいは新機能の設計やテストを書くのに関する無駄を減らしてくれるものだよ。

個人的には、エージェントが成功基準を使うように強制するのをもっと簡単にするのが、最も大きな改善だと思う。今は、例えばClaude Codeにテストスイートが通るまで修正し続けるように促すのが簡単じゃない。いつも決まった量の作業をして、ほぼ終わったと感じたら止まっちゃうから、テストを通すように本当に言ってるって何度も言わなきゃいけないんだよね。

つまり、すでに高い給料の上に、さらに1,000ドルから1,500ドルも払わなきゃいけないってこと? それで、ちょっとした生産性の向上が得られるかもしれないって? うちの上司は絶対にそれには乗り気じゃないだろうな。

それを忘れないでね。これは補助金価格での話だから。

Hacker Newsで議論の続きを見る