カテゴリ: AI開発

つくる速度を、何倍にもする。

  • 生成AIで開発が破綻する場所

    「AI でコードを書かせたのに、3 回作り直しになった」。
    ある製造業の DX 推進室から聞いた話です。

    Cursor を導入し、エンジニアにプロトタイプを依頼した。
    1 週間後、画面は動いている。
    ただ、業務フローと合っていない。
    修正を依頼すると、また別の箇所で齟齬が出る。結局、従来の開発より時間がかかった。

    原因は、生成AI の性能ではない。
    要件が、最初から固まっていなかった。

    「在庫を一覧で見たい」という要望だけで作り始めると、
    AI は画面を出力する。
    だが、誰がどのタイミングで見るのか、どの項目を優先するのか、更新頻度はどうか。そこが決まっていなければ、何度作っても「違う」と言われる。

    コードを書く速度が上がったことで、曖昧さが形になるまでの時間も短くなった。
    つまり、要件の甘さが、より早く露呈するようになった。

    生成AI で開発するなら、ディレクターが要る

    以前は、エンジニアが実装しながら要件を補完していました。
    コードを書く工数が大きかったため、
    その過程で「ここはどうしますか」と確認する余地があった。

    いまは違う。ai 生成でコードはすぐ出る。
    確認の余地が生まれる前に、形ができてしまう。

    だからこそ、実装に入る前の要件定義の精度が、そのまま成果を左右する。
    誰が使うのか、どの業務のどこに組み込むのか、
    どの情報を優先するのか。
    ここを言語化し、構造として整える役割が、明確に必要になる。

    その役割を担うのが、ディレクターであり PM です。
    エンジニアではなく、業務と技術をつなぐ人。
    AzRun の開発でも、プロトタイプに入る前の 90 分のヒアリングと、そこから書く仕様メモに、最も時間を使います。

    要件が固まっていれば、Cursor や Claude Code は期待通りに動く。
    曖昧なままなら、どれだけ速く書いても手戻りになる。
    開発の決め手は、AI の性能ではなく、要件定義の精度です。

    「誰が要件を決めるのか」
    が、組織の課題になる

    では、その要件を誰が決めるのか。
    ここで多くの組織が止まります。

    現場は業務を知っているが、システムの構造は分からない。
    エンジニアはコードを書けるが、業務の優先順位は判断できない。DX 推進室は全体を見ているが、実装までは担えない。

    結果、「とりあえず作ってみて」となり、手戻りが発生する。
    大手ベンダーに丸投げして、現場と合わないシステムが納品される。

    この間を埋めるのが、ディレクター職の役割です。
    業務をヒアリングし、構造を整理し、エンジニアに渡す仕様をメモとして残す。コードは書かないが、何を作るかを決める人。

    生成AI の時代では、この職種が重宝されます。
    なぜなら、AI はコードを書くが、要件は決められないからです。

    AzRun では、案件の初日にディレクターと開発担当が同席し、ヒアリングから仕様メモ作成までを一緒に進めます。
    その日のうちに方向を固め、翌日から実装に入る。
    仕様が明確なら、あとは Claude Code に渡すだけで大部分が動く。

    逆に、要件が曖昧なまま進めると、どれだけ AI を使っても形にならない。

    小さく試すなら、要件も小さく区切る

    もうひとつ、実装前にやっていることがあります。
    要件を、1 画面ごとに区切ることです。

    「在庫管理をしたい」という話を、そのまま実装に渡さない。
    まず「どの担当者が、いつ、何を確認するのか」
    を具体化し、その場面を 1 画面として切り出す。
    その画面だけを先に作り、動かして、業務フローに載せてみる。

    うまくいけば次の画面に進む。
    違和感があれば、その場で修正する。
    この繰り返しで、手戻りを最小化します。

    生成AI があるからこそ、小さく試せる。
    ただし、試す単位を決めるのは人です。
    その単位を決める精度が、開発の成否を分けます。

    AzRun では、初回ヒアリングで必ず「最初に確かめたいこと」を 1 つに絞ります。
    全部作ってから検証するのではなく、確かめたいことだけを形にして、翌日には触ってもらう。
    そのサイクルを回すことで、要件のズレを早期に修正できます。

    ディレクターの仕事は、そのサイクルを設計することです。
    何を、どの順で、どこまで作るか。
    その判断が、開発全体の工数を左右します。

  • Codex を使う前に整えた3つの環境

    Codex は、渡された情報しか使わない

    「Codexに良いコードを書かせたい」と考えたとき、
    多くの人はプロンプトを工夫します。
    長い指示、詳細な要件、参考 URL の列挙。

    間違いではない。ただ、それ以前に見るべきものがある。

    Codex が参照するのは、あなたが渡したファイル、コメント、関数名、フォルダ構造です。その情報が散らかっていれば、
    どれだけ丁寧に指示しても、出力は曖昧になる。
    逆に、情報が整っていれば、指示は「この関数を拡張して」の一行で済む。

    私たちが実際に見てきた現場では、Codex を導入してすぐ「使えない」と判断したチームと、初日から工数を削減できたチームがいました。違いは、環境の整え方にあった。

    整えたのは、この3つ

    最初に手を入れたのは、ディレクトリ構成です。
    機能ごとにフォルダを分け、命名を統一し、役割が一目で分かる階層にする。Codex は、ファイル名とパスから「このコードが何をするか」を推測します。
    `utils/old/backup_20231105.ts` のような名前では、推測が働かない。

    次に、命名規則を揃えました。
    関数名、変数名、型定義。チーム内で表記ルールを決め、既存コードをリファクタリングする。
    Codex は、一貫性のある名前から文脈を読み取る。`fetchUserData` と `getUserInfo` が混在していると、どちらを参考にすべきか判断できず、新しいコードで第三のパターンを生成してしまう。

    そして、既存コードの密度を上げる。
    コメントではなく、型とテストで意図を伝える。TypeScript の型定義を丁寧に書き、Jest のテストケースを増やす。Codex は、型とテストから仕様を理解します。ドキュメントを書く時間があるなら、型を書いたほうが効く。

    この3つを整えた後、プロンプトの文字数は平均で40%減りました。指示が短くなっても、出力の精度は上がった。

    実際の変化は、修正工数に出る

    ある受託案件で、管理画面の Codex 機能を Codex に生成させたとき、環境を整える前と後で比較しました。

    整える前は、生成されたコードをそのまま使えることは稀で、手作業で変数名を直し、型エラーを潰し、既存の API 呼び出しパターンに合わせる必要がありました。
    生成に3分、修正に20分。

    整えた後は、生成されたコードがそのままマージできるか、軽微な調整で済むようになった。
    生成に3分、修正に5分。1ファイルあたり15分の差です。10ファイル書けば、150分。丸1営業日が浮く計算になります。

    工数が減ると、単価交渉の余地が生まれる。
    「納期を半分にできます」ではなく、「同じ納期で、仕様の詰めに時間を使えます」と提案できるようになる。
    クライアントが求めているのは速さではなく、期待を超える精度です。

    環境整備は、営業ツールになる

    フリーランスとして案件を取るとき、「Codexを使っています」と言っても差別化にはなりません。
    誰でも使えるからです。

    一方で、「Codexが最大限活きるリポジトリ構成を最初に設計します」と伝えると、話が変わる。クライアントは、納品後の保守性を気にしています。コードが整っていれば、引き継ぎが楽になる。追加開発のコストが下がる。

    私たちが見てきた中で、リピート受注率が高いエンジニアは、コードそのものよりも、リポジトリの可読性と拡張性に時間を使っていました。Codex は、その設計思想を加速する道具として機能します。

    環境を整えることは、自分の工数を減らすだけでなく、クライアントへの提案力を上げる投資になる。

  • Cursor + Claude Code で、1 営業日プロトタイプ。

    「1 営業日でプロトタイプ」という言葉だけ聞くと、雑に作っているように聞こえます。
    違います。設計の手抜きをしないまま、形にするまでを短くしている、ということです。

    どんなツール構成で、どんな順序で、何を判断軸にしているか。
    実際の流れを書いておきます。

    ツール構成は、最小限

    現在の AzRun の開発ベースは、こうです。

    • Cursor — エディタとして、コードの大部分を AI と書く
    • Claude Code — リポジトリ全体を理解した上で、長めの編集や検証を任せる
    • MCP / サブエージェント — 仕様の調査、検索、外部 API 呼び出しを切り出す

    ここに、必要に応じて Playwright、ドキュメント連携、社内ナレッジ MCP を足します。
    やっていることは、AI が触れる足場を整える、ということです。

    1 営業日の中身

    実際の流れは、おおむね次のようになります。

    午前 9 時 — ヒアリングと前提整理

    経営者か事業責任者の方と、その場で 60〜90 分話します。何を確かめたいのか、誰がどう使うのか、どこに違和感があるのか。話の途中で、すぐに簡単な図やフローを共有する。書類は後回しにします。

    午前 11 時 — 仕様メモを書く

    話を踏まえて、構造のメモを書きます。データのかたち、画面の数、業務との接続。フォーマットはマークダウンで構いません。完璧でなくていい。AI に渡せる粒度なら、それで十分です。

    午後 1 時 — プロト構築の指示出し

    メモを渡して、Claude Code に骨組みを書かせます。ファイル構成、データモデル、画面遷移。手が早いのは AI ですが、判断は人がやる。

    午後 5 時 — 触れる状態に揃える

    つながらない部分をつなぎ、最低限のサンプルデータを入れ、URL を発行できる状態にする。ここまでが「1 営業日」の中身です。

    なぜ、これが成り立つのか

    AI を使えば速い、というだけの話ではありません。
    鍵は、商談・設計・実装を、一人が見ていることです。

    会議のたびに引き継ぐと、思い出しと共有に時間が消える。
    決めたことをコードに落とすまでに、また誰かを挟む。
    AzRun はその構造を持っていません。
    だから、午前に話したことが、夕方には動いている。

    プロトに、見栄を張らない

    最後にひとつ。
    私たちは、プロトをきれいに見せようとしません。
    色やレイアウトは後で整えればいい。
    最初に確かめるのは、業務のかたちと、データの流れ。
    判断するために十分なものを、最短で出す。それが目的です。