規模が大きなソフトウェアを同時に3本開発してみる〜AIアシスタントを使ったプログラミング

主にChatGPT-5をアシスタントとして利用し、規模の大きなソフトウェアを3本並行開発する実験を始めました。今日で実験2日目です。

この実験の目的は、機能的な限界、使用上の限界、規模的な限界を探ること。

1つ目は、Web上でスマートフォンアプリを開発するツールです。最終的な成果物は、今や懐かしいNeXTSTEPのInterface Builderのような使用感と機能を持ったソフトウェアで、React Nativeアプリを作り出すもの。GitHubとの連携やライブコーディングができる実用的なソフトウェアにしたいと思っています。

今日時点では、機能の洗い出しとプロトタイプを作ってPOC (Proof Of Concept)を進めている段階です。

2つ目はChatGPTのクローンのようなアプリケーションです。gpt-ossの性能の良さに感銘を受けたので、本家ChatGPTのWebサービスと機能的に等価なソフトウェアにしようと思っています。LLMはOllamaやvLLMなどを使ってローカルで走らせ、完全にローカルに閉じたシステムになります。

今日時点では、自動Web検索機能と履歴管理機能を持ったチャットアプリケーションになっています。最終的には、メールアドレス認証やOAuth認証の機能、データのデータベースへの保存、RAG機能、コード実行サンドボックス機能などを実装したフル装備のアプリケーションにする予定です。環境変数を自環境に合わせて設定してDocker Compose一発でサービスが起動するようになっています。

3つ目は20年来温めてきた巨大なソフトウェアで、私にとっては未踏の領域です。表計算の一種ですが、普通の表計算ではできない強烈な機能を持たせます。内容については現段階では秘密です。

今日の時点では、フロントエンドのモックアップがだいたいできたというところかな。

どれも基本コンセプト、自分の思想や哲学、採用すべき技術要素、機能要件を明確にして、AIと一緒に仕様書を作るところから始めます。最初からコードを書かせるとあまり上手く行きません。

大量のプログラムコードと仕様書を背景知識として与えて、徐々に機能を拡張するというスタイルでの開発ですが、背景知識がデカい=LLMの処理するコンテクスト情報がデカい、という条件がキツくて、プログラムコードの生成に時間がかかるだけでなく、AIがコードや仕様を理解しきれないという問題が起きるので、工夫が必要です。分割して開発する、小さなプロトタイプでテストしてから、要所要所を本物で差し替える、などの工夫をしてやっています。この開発手法もある程度確立できたらAIを使いこなすノウハウになると思っています。

以下、ここまでの感想です。

  • GPT-5が強烈なコードを生成するので、こちらの理解が追いつかないことがあって精神的にツラい。
  • GPT-5が余計な機能を付けたがる傾向にあるので、それを抑制するのが大変。
  • 早期に高機能化させようとしてくるので、抑え込まないと人間の方の理解が追いつかない。
  • デカい開発プロジェクトを3つ並行して1人でやれそう。
  • 自分で書ける内容でも、GPT-5にやらせる方が10倍以上は速い。
  • プロジェクト全体の進捗スピードは人間だけでやる場合の20倍から50倍にはなる感じ。

今すぐにではないですが、モノづくり塾ではAI学習環境の整備構想からガイドラインを作って、多くの塾生(できれば若者)の学びの場所と形を整えたいです。AI人材として活躍したいという方は是非塾へおいでください。