Sho Shimauchi

@shiumachi.bsky.social

Solutions Architect at Databricks / Tokyo, Japan

ここ最近は、友人が作る個人アプリやゲームなどからインスピレーションを享けることが特に増えた気がする。「こういうデザインがあるのか!」とか「こういう割り切りありなのか!」みたいなのがすごく刺激になる。巷で話題になるようなメジャーなプロダクトや商用プロダクトはもちろんどれも洗練されていて完成度も高いが、当然ながら多数の人を対象にしたものばかりなので「まあここはそりゃこう作るよね」みたいな納得感はたくさんあってもそこに驚きを見いだせることが少なくなった。そんな中で尖った個人アプリに触れるというのが自分にとって鮮烈な新しい体験となっている

複数のデバイスから接続しつつ、きちんと同期をとってコンフリクトが発生しないようにしながら堅牢な構造にしてバックアップも確保する、みたいな自分用アプリを作ろうと思うと結局全体のアーキテクチャはAI任せにできず自分で設計するしかなくなってくるな

Claude Codeでゲームを作り続けて分かったが、何もしないタイミングを取るのがすごく難しい。いいゲームは「間」がうまいが、それはあまり言語化されておらず、また言語化するのが非常に難しい。

結局、作りたいものを絞ったりスコープを絞るというのはClaude Codeがあっても全然変わらない、というかむしろ下手にClaude Codeがあるおかげで中途半端にモノを作れてしまうので、より貴重なリソースである時間を浪費してしまいかねない

Vibe Codingで自分のためだけのゲームを作り続けていると、自分にとっての面白さとは何か?という問いだけに向き合い続けなければいけなくて、やってることは開発というよりむしろ座禅に近い

2025年初頭はまだ1年前のAIの知識、つまり2024年初頭の知識で語ってもギリギリ通じた気はするが、ここ最近は1年前の知識なんて話にならず、半年どころか下手すると3ヶ月前の知識ですら古いみたいな速度になりつつある気がする。1ヶ月前でもやや古いという感覚

自分専用のアプリを作る場合、多様なユーザーニーズを気にする必要がなくなる。例えば、自分にとって簡単な操作が一般の人にとっては面倒なこともあれば、多くの人にとってmustな機能が自分にとって煩わしいこともある。AIエージェント開発ならこういう自分だけの設計にすることが簡単になる

私を含めた友人達がAIエージェントを使って「自分だけのアプリ」を作って公開しているのを見ると、2000年代の個人ホームページブームの再来はある気がしてくる。AIエージェントでの開発は、大ヒット志向よりもむしろ自分専用あるいはスーパーニッチなこだわりアプリの方が夢があるのではと思う。

ドメイン知識が深いということは、「そのドメインについてAIが出力したときに、どれだけテストを思いつけるか」というところにつながる気がする。例えばコードに関するテストはいろいろと思いつけるが、法律や医療関連の出力に関するテストは私には思いつかない

AIを休まず使い続けるには長時間の思考に耐えられるスタミナが必要なので、AI時代のエンジニアの勝敗を分けるのは「よく寝てよく運動して健康的な生活を送ること」なんじゃないかという気がしてくる

Claude CodeでAskUserQuestionを活用したりplanモードを活用すると設計レベルも大体自動化できるようになってくるので、次は要件定義をどれだけ自動化するかだな。ふわっとした要件を高速かつ正確に要件定義できるようになればさらに開発速度を上げれる

問題検出の早期発見の原則から考えると、設計や要件定義のフェーズにOpusガンガン回して自己レビューさせまくる方が実装レビューに使うよりも多分トータルコストが減るんじゃないかと思ってる。この辺は全く未検証で、憶測レベルの仮説ではあるが

ゲームの中に入る系の創作だと開発者も知らない機能、キャラクター、アイテムが出てきたりして、こういうのはお話の世界だけで現実にはないと以前は思っていたが、いざ自分がAI任せでゲーム作らせてると知らないものが勝手にあれこれ作られてたりするので現実が創作に追いついた感はある

Claude CodeやCodexを使ってどんなに便利になっても、エンジニアはそれをさらに最適化・効率化するためにあれこれ検証して工夫するのでエンジニアリングの仕事は一生なくならないなとあらためて思う

ソフトウェアは人間がコードを書かなければいけない、という決まりはないので、AIアシスタントを使ってコードを生成して、それが許容できる振る舞いをして、リリースまでたどり着くのであれば、AIアシスタントのほうが人間より遥かに速い速度で開発をするので、人間の検査の速度が追いつかなくなり、それを「人間がボトルネックになる」と表現するのは至極真っ当。

Claude Codeにおける開発では人間が絡むところは軒並み全部ボトルネックになるので、人間がメンテする箇所は可能な限り順次AIに置き換えていくというのが基本戦略として重要と思う

去年までは下手にAI周りを追いかけることに必死になるより、思考力を鍛えたり基礎的な学問を学ぶ方が重要と思っていたが、昨年末にClaude Codeを触ってからひたすらClaude Codeだけ触り続けている。「今これを体験するのが一番重要な学びになる」というのが自分の直感

あるモデルによるバイブコーディングの限界サイズについて語るとき、Claude Code等のAIエージェント用ツールを使っているか、skillを作り込んでいるか、などで全然感覚変わってくる。これらのツール・技術の有無で限界と感じるコード行数は普通に1、2桁変わると思う

Sonnetの作業自体は完了したが途中で一つのエラーを無視していたので、それをOpusにレビューさせてスキルを改善させようとした。ところがOpusはそのレビューにおいて、発生したエラーを問題なしと判断していたため、私がそれをOpusに指摘して元のスキルを修正させた。さらに、「最初にレビュー依頼したときにエラーを問題なしと判断した理由は何かを考え、再発防止策を考案して作業ログレビュー用のスキルを改善して」と指示して改善させた。その結果、Opusは「批判的思考が欠如していた」という自己批判に至った。そうだ、それでいい

作業的なタスクをSonnetだけに任せられるようになると、Opusに実験的な機能追加や新規開発の計画を任せられるようになるな。シニアに手順書作らせたり検証ツールを作らせることでジュニアが自分でも作業をこなせるようになり、その分シニアの工数が空いて新しいことをシニアに任せられる

Claude CodeでOpusとSonnetを行き来するSkillのPDCAサイクルが安定してきたので、Opusによる検収作業を抽出して検証ツールに落とし込んだ。これでSonnet単体で作業検証ができるようになったのでOpusなしでも安定した出力になった

Claude CodeでOpusとSonnetを使ってskillのPDCAサイクルを回し続けている。Opusでskillを作る、そのskillを使ってSonnetに作業させる、作業ログをOpusにレビューさせてミスの再発防止などを盛り込んでskillを改善する、をひたすら繰り返している

Claude Max使い始めて1週間たつけど、ちょっとした便利ツールをほしいと思ったら作れるようになったので、これによって大幅な時間節約になるし、場合によってはお金の節約になる(そのような機能を提供する製品を買わなくて済む)から余裕で元取れるなって思った