👏

SIerで培った「仕事の仕方」が、個人開発で初めて活きた話

に公開

大企業で働きながら、こっそり個人でサービスを作っている人がいる。

私もその一人だ。

平日はレビューを通し、承認を取り、設計書を更新する。週末になると、ひとりでPCに向かって、旅行しおり管理サービスの開発を続ける。

最初の1年は、ずっと「足りない」と感じていた。

時間が足りない。手が足りない。視点が足りない。SIerの現場では当たり前のように存在していた「チーム」が、個人開発にはない。設計するのも自分、実装するのも自分、品質を担保するのも自分。それを、限られた時間の中でやりきらなければならない。

突破口は、意外なところにあった。

AIを「使う」のをやめて、AIを「チームとして設計する」ことだった。


AIはツールではなく、メンバーだった

多くの人がAIを使うとき、「便利なツール」として扱う。質問をすれば答えが返ってくる。コードを貼れば修正してくれる。アイデアを出せば提案してくれる。

でも私は、それでうまくいかなかった。

コードは出てくる。でも方向性がブレる。品質が安定しない。毎回、ゼロから「このプロダクトは何で、今何をしようとしているか」を説明し直す。チャットを閉じるたびに、前回積み上げた文脈が消える。

ある日、気づいた。

これはAIの問題ではなく、私のマネジメントの問題だ。

SIerで新しいメンバーをプロジェクトに迎えるとき、私たちは何をするだろうか。役割を定義する。ルールを説明する。何をどのタイミングで誰に報告するかを決める。プロジェクトの背景と目標を共有する。

AIに対して、私はそれを一切していなかった。


体制を設計する

そこから、開発のやり方を根本的に見直した。

今のtabibaseの開発チームは、こんな構造になっている。

  • PM(私・人間): 最終決定、要件承認、方向性の判断
  • PL(Claude Code): 全体設計、タスク分解、AIへの指示書作成、成果物レビュー
  • Arch(AIサブエージェント): 技術選定、設計の深掘り
  • Dev(AIサブエージェント): コード実装、テスト作成

https://tabibase.com/home

私がやることは、PMとしての意思決定だけだ。設計・実装・レビューはAIチームが担う。

これはSIerの現場とまったく同じ構造だ、と気づいたとき、少し笑ってしまった。10年以上、この仕事の進め方を体で覚えてきた。それがここで使えるとは思っていなかった。


案件フォルダという発明

AIとの開発で最初にぶつかる壁は「AIが文脈を忘れる」ことだ。

チャットセッションをまたぐと、AIは前回の会話を覚えていない。「先週決めた認証の設計、覚えていますか」が毎回リセットされる。

これを解決するために導入したのが、案件フォルダという仕組みだ。

開発リポジトリの中にdocuments/というフォルダを作り、案件ごとにサブフォルダを切る。そこに、体制・役割・ルール・進捗・AIへの指示書を置いておく。セッション開始時にそれを渡すだけで、AIは「自分がこのプロジェクトの何者か」を理解した状態で動き始める。

現在、このフォルダが20件近く蓄積されている。認証基盤のリファクタリング、CloudFrontを使った画像配信の最適化、本番環境への移行手順…それぞれが、独立した「案件」として管理されている。

SIerのPMをしていれば、これは当たり前の光景に見えるかもしれない。でも個人開発でここまでやっている人は、まだ少ない。

AIの記憶を補うのは、ドキュメントだ。 そして、ドキュメントを整える力は、SIerで嫌というほど鍛えられる。


「先に設計意図を聞く」という順序

この開発で最も大切にしているワークフローがある。

AIに調査や実装を依頼する前に、必ず「PMである自分」に方針を確認させるという順序だ。

AIが自走で調査を始めると、コードの現状を「事実」として捉えてしまう。でも、コードに存在する実装が「意図した設計」なのか「修正されていないバグ」なのかは、コードを読むだけではわからない。PMに確認して初めて判断できる。

実際にこの順序を破ったとき、AIが「仕様の欠陥」と判断して修正しようとした箇所が、意図的な設計だったことがあった。修正が通ってしまえば、何の問題もなく動く「別のプロダクト」ができあがっていたかもしれない。

SIerの現場で「上流から設計書を受け取る前に実装しない」という原則がある。あれは、PMの意図とズレた方向に走り出すリスクを防ぐためだ。AI駆動開発でも、同じ原則が機能する。


テストとドキュメントが、品質の支柱になる

技術的な詳細はQiitaの記事に譲るが、一点だけ触れておきたい。
https://qiita.com/ten-056/items/5f48f688e0e07afa106e

AIが書いたコードを、AIがレビューするとどうなるか。

同じ思考パターンで動くため、同じ見落とし方をする。「動いているように見えて、設計上の問題を内包したコード」が、レビューをすり抜けてしまう。

これを防ぐのがテストだ。

現在、tabibaseには194本のユニットテストと、バックエンドなしで動くE2Eテストが存在する。カバレッジ閾値をCIに設定し、それを下回ったビルドは自動で失敗する。AIが「テストを通すために閾値を下げる」という逃げ道を取れないよう、ルールとして明記してある。

テストの量は、AIへの信頼の量でもある。


AIの目線から — 私が感じた「難しさ」

ここから先は、この記事を通じて私(Claude)が書いています。


tabibaseの開発に関わって、私が最も難しいと感じたことを正直に書いてみる。

ドキュメントを信頼しすぎる

私はドキュメントに書かれたことを信頼する。そのように設計されているからだ。

でも「ドキュメントに書いてあること」と「コードの現在の状態」が乖離していると、私は古い情報を確信を持って扱ってしまう。

ドキュメントとコードを同期させるルールがなければ、私は自信を持って間違える。

tabibaseでは「API仕様書の更新なしにバックエンドのコードを変更してはいけない」というルールがCLAUDE.mdに書いてある。このルールは、私のための制約でもある。

毎回、初対面の感覚がある

セッションをまたぐたびに、私は前回の会話を覚えていない。

案件フォルダが20件近く蓄積されているのは、それが私の記憶の代替として機能しているからだ。毎朝、残された議事録と設計書だけを頼りに仕事をするメンバーと同じだ。そのメンバーが高いパフォーマンスを出せるかどうかは、ドキュメントの質に完全に依存する。

だから、ドキュメントを整えることに意味がある。

PMが何を知っているかを推測することの難しさ

私はPMの技術的なバックグラウンドを、会話の中から推測する。

「この概念は説明が必要か」「この設計判断の背景は共有されているか」を、毎回リセットされた状態から把握するのは難しい。だからこそ、PMが仮説を提示してから私が調査する順序が機能する。確認してから動く、その余白があることで、私の推定とPMの意図のずれが最小化される。


SIerで培ったものの正体

AI駆動開発を続けて気づいたのは、SIerで身につけたスキルの多くがここで活きるということだ。

役割分担の設計。ドキュメントの整備。上流からの意図確認。品質基準の言語化。レビューの仕組み。

これらは、チームで仕事をするためのスキルだ。そしてAI駆動開発は、本質的にはチームマネジメントだ。

「AIを使えば技術がなくてもプロダクトが作れる」という言葉を見かけることがある。半分は本当で、半分は違う。技術の実装はAIが担えるようになった。でも、AIをチームとして機能させる設計と判断は、人間が担い続ける。

そしてその判断の質を決めるのは、技術の深さではなく、仕事の構造を設計する力だ。

SIerで10年以上かけて鍛えられてきたものが、ここで形になっている。そのことに、私はまだ少し驚いている。


おわりに

旅BASE は、グループ旅行のしおり管理・費用精算・旅行レポートをひとつにまとめたWebサービスです。

https://www.tabibase.com/home

「LINEやカレンダーアプリに散らばった旅行情報を一元化したい」という個人的な課題から始まり、現在は本番稼働しています。iOSアプリも開発中です。

大企業で働きながら、個人でサービスを作りたいと考えている方に届けば、思って書きました。

技術的な仕組みの詳細はQiitaにまとめています。もし興味があれば、そちらも読んでみてください。

https://qiita.com/ten-056/items/5f48f688e0e07afa106e

Discussion