manna

売上管理アプリを10日で作った、プログラミング経験ゼロのまま

AI導入ストーリー

暗い岩の裂け目を抜けた先に、緑の谷と川が光の中に広がっている。出口へ向かう構図

前回、Claude をメインにしていったけれど、最後までコピペがだるかった、という話を書きました。今回はその続きです。そのコピペを片付けるために、私は Claude Code という道具にたどり着き、自分の会社の売上管理アプリを、自分の手で作ることになります。

1. その前に、小さいアプリを2本作っていた

ここで少し時間を巻き戻します。実は、売上管理アプリが最初の一本ではありませんでした。

その前に、ちょっとしたアプリを2本ほど作っていたんです。1本目は、社員7人のスケジュールが一覧で見えるカレンダー。Google カレンダーだと、7人分の予定はどうにも見比べづらいんです。全員の1週間の動きが一目で分かるものが欲しくて作りました。2本目は、出ていくお金を記録する出金伝票をデジタルにするアプリ。手書きをやめたかった、それだけです。

どちらも、Claude でも Claude Code でもありません。1本目のカレンダーは Gemini です。「こういうのが欲しい」と言うと、コードを書いてくれる。それを貼り付けて動かす。2本目の出金伝票は AppSheet で組みました。どちらにしても、コードは一行も自分で書いていません。

この2本で、ひとつの感触をつかんでいました。アプリって、AI に聞きながらやれば、けっこう簡単に作れてしまうんだな、と。本格的な開発なんて大げさな話じゃない。「何が作りたいか」を言葉にできれば、それで十分なんだ、と。この感触が、売上管理アプリにつながっていきます。

2. 社員さんの一言で、作るものが変わった

次に何を作ろうか、と考えていました。

最初に考えていたのは、取引先から届く請求書のPDFを自動で取り込むアプリです。会社ごとにフォーマットは違うけれど、書いてある情報は同じ。金額、日付、品名、数量。フォルダにPDFを入れておけば AI が読み取ってくれる。そんなイメージでした。

その話を、社員さんにしたんです。「最初に、請求書を自動で取り込むアプリを作ろうと思うんだけど」と。そうしたら、こう返ってきました。

「いや、それよりも、こっちのほうが大変なんですけど」

うちは得意先ごとに単価が違います。しかも、数量によっても変わる。当時の販売管理ソフトはこの単価設定に対応していないので、社員さんは注文が来るたびに、単価表と目で突き合わせていました。手作業で。当然、間違いも起きる。単価を間違えたまま受注して、納品して、月末の締めで初めて気づく。そういうミスが、何度かありました。

聞いていて、はっとしました。そうだよな、と。請求書の自動取り込みより、この単価ミスを仕組みで防ぐほうが、現場にとってずっと切実だ。これは社員さんのせいじゃありません。仕組みを用意できていなかった、私の責任です。

じゃあ、この単価の仕組みを何とかしよう。そう思って、まずは売上管理のソフトを探しました。買えるものがあるなら、そのほうが早い。当時使っていたのはPCにインストールするタイプで、得意先ごとの単価設定ができないし、複数人で同時に使うのも不便。乗り換えたかったんです。

でも、いくら探しても、合うものが見つからない。会計ソフトなら世の中にいくらでもあります。会計のルールは法律で決まっていて、どこも同じだから、汎用品で回る。でも販売管理は、会社ごとにやり方が違いすぎる。だから、ぴったり合うものが市場にない。全部入りの統合システムも検討しましたが、見積もりを見て諦めました。高すぎたんです。

買えるものがないなら、自分で作るしかない。こうして、売上管理アプリを自分で作ることになりました。

3. 要件定義をなめていて、心が折れかけた

実は、この売上管理アプリが、私が Claude Code を本格的に使い始めた最初のタイミングでした。

カレンダーや出金伝票は、Gemini に聞きながら作れた。でも今回は規模が違う。得意先ごとの単価、数量による値引き、消費税の端数処理、出荷日の計算。チャットだけでは回らないのは、さすがに分かっていました。

正直に言うと、大変でした。アプリ開発なんてやったことがないのに、いきなり大きいものから始めてしまった。最初は心が折れそうになりました。

何がまずかったかというと、要件定義が浅かったんです。一応、チャットの Claude と「こういうものを作りたい」と相談はして、始めました。でも、そのとき私の頭にあったのは「フォルダのPDFを読んで、単価表と照らし合わせてチェックする」くらいの範囲でした。本当はその裏に、もっとたくさんの条件がぶら下がっていたのに、そこまで見えていなかったんです。

ところが、作り始めたら、次から次へと出てきました。売上の日を確定するには、出荷日を確定しないといけない。出荷日を出すには、お客さんに届くまでの日数を計算しないといけない。それには会社の休業日を考えたカレンダーが必要になる。消費税の処理も得意先ごとに違う。全部つながっていて、後から「あれも要る」「これも要る」とシートが追加、追加、追加の連続でした。「これ、本当に終わるのか」と本気で思いました。

最初からちゃんと要件を詰めていれば、もっと早く終わったはずです。これは完全に私の段取りの甘さでした。ただ、逆に言えば、後から思いつくたびに足していけるのが Claude Code の強みでもありました。外注なら「追加でいくらです」という話になるところを、「これも足して」の一言で済む。心は折れかけましたが、進んではいたんです。

今になって思うのは、これは始め方の問題でもあった、ということです。あのときは、とにかく手探りで、走りながら要件を足していくやり方になってしまった。今なら、Claude Code のプランモードで、要件をじっくり固めてから着手します。そうすれば、もっとうまく、もっと早くできたはずです。

もう一つ、当時はモデル選びでも腰が引けていました。Claude を使い始めたばかりのころで、少し根を詰めて使うと、トークンを5時間で使い切ってしまった。それが怖くて、私はずっと Sonnet という軽いほうのモデルだけで通していました。もっと賢い Opus に切り替えたら、一気に使い切ってしまうんじゃないか、と。今思えば、コードを書くところは Sonnet でもよかったかもしれませんが、要件定義のような頭を使うところは、むしろ Opus でやったほうがよかった。いや、コードのほうも Opus にしておけば、後戻りが減って、もっと楽だったかもしれない。これは、ずいぶんあとから感じたことです。

4. チャットを23回、引き継ぎながら回した

アプリを作るやり方は、途中で変わっていきました。

いちばん最初は、チャットだけでやっていました。チャットに GAS のコードを書いてもらって、それを自分でスプレッドシートに貼り付ける。動かしてみて、おかしければまた聞いて、貼り直す。これをやっていたんですが、コードの量が増えるほど、この貼り付けがめちゃくちゃ時間を食う。途中で「これはやってられない」となって、やめました。

得意先ごとの単価を計算する売上管理アプリのコード

そこで、アプリ版の Claude Code を使うことにしました。チャットでプロンプトを作って、Claude Code に流し込む。実装はそっちに任せる。チャットと Claude Code を並べた、2画面のやり方です。これにしてから、ぐっと楽になりました。

それでも、楽な道のりではありませんでした。要件がどんどん変わって膨らんでいくので、チャットのやり取りは積み上がる一方です。コンテキストウィンドウがいっぱいになるたびに、次のチャットに引き継ぐ。その引き継ぎのために、毎回3つのものを用意していました。最新の要件定義。Google スプレッドシートをエクスポートしたデータ。そして「次のセッションへの引き渡し書」。この3点セットを次のチャットの最初に渡して、続きを始める。そうやって、ひとつのプロジェクトとして回していました。

このセッションの引き継ぎが、最終的に23回まで行きました。23回分、相当な量のやり取りを往復させたことになります。やりながらずっと「これ、もっと楽にならないかな」と思っていたのは確かで、その答えは、次に作ったアプリで見つかります。

5. それでも、10日でできた

そんなふうにバタバタしながら、最初の売上管理アプリは、約10日で完成しました。

この10日間は、ほぼアプリ開発だけに張り付きました。もちろん社長業なので他の指示はチャット経由で出していましたが、頭の中はずっとこのアプリでした。

外注したらどうなっていたか。気になって、Claude に概算を出してもらいました。実際に見積もりを取ったわけではないので正確ではありませんが、要件定義から開発、AI連携、テストまで含めて、ざっと300〜500万円。納期は半年から9ヶ月。現実には要件のすり合わせで何往復もするので、1年近くかかることも珍しくない、と。

それが、私の場合は、作るところだけなら10日。実際に社員さんに使ってもらって、直して、データを移して、整えてまで含めても、トータルで2〜3ヶ月の見込みです。かかった費用は、Claude Code のサブスク代だけ。桁が、まるで違う。

外注した場合自分で作った場合
費用300〜500万円月100ドル(Claude Code)
納期(作るだけ)6〜9ヶ月約10日
修正追加費用あり追加費用なし

もちろん、10日間の社長の人件費はかかっています。でも、この10日はアプリを作っただけの10日ではありませんでした。「何を、どう伝えれば形になるのか」が分かった10日でもあった。これは、これからずっと使えるものです。この先、何でもアプリにできるようになった。差し引きで考えれば、得たもののほうがはるかに大きい。

6. 2本目は1日で終わった

売上管理で要領をつかんだので、次は仕入管理を作りました。仕入管理マスター、と呼んでいるものです。

この2本目を作る前に、環境を変えました。VS Code というエディターを入れて、その上で Claude Code を動かすようにしたんです。途中、Cursor という似たものも試しましたが、最終的に VS Code に落ち着きました。これで、1本目のようにチャットとアプリを2画面で行き来しなくてよくなった。ここでようやく、あのコピペが本当に消えました。

それと、今度はいきなり作り始めませんでした。1本目で痛い目を見た、あの要件定義のやり方を、ここで初めて変えたんです。Claude Code のプランモードで、先に要件を相談して固めてから着手しました。

モデルも変えました。1本目は怖くて Sonnet のままでしたが、2本目からは Opus に切り替えた。そうしたら、こちらの意図のくみ取り方が、はっきり違いました。説明が少なくても、やりたいことを正確に形にしてくれる。

結果、仕入管理は丸1日で完成しました。10日が、1日です。要件が売上管理より小さかったこともありますが、いちばんは、1本目で「何をどう伝えればいいか」を身体で覚えていたこと。それに、環境とモデルを変えたこと。このあと在庫管理、見積管理と続けましたが、もういつ作ったか覚えていないくらい、片手間にできてしまいました。

ここで、一つだけ大事なことを書いておきます。

私がやったのは、プログラミングではありません。「何を管理したいか」「何が正しい数字か」「どういう例外があるか」を決めたこと。それだけです。得意先ごとの単価をどうするか、数量値引きのルールをどうするか、月末の締めをどう回すか。これを自分の頭で判断できたのは、長年その実務をやってきたからです。

AI に「いい感じに売上管理して」と丸投げしても、何も出てきません。判断するのは人間で、形にするのが AI。この順番は、どこまでいっても変わらないと思います。逆に言えば、自分の会社の業務を分かっている人なら、プログラミングを覚えなくても、アプリは作れる。足りなかったのは、技術ではなく「手足」のほうだったんです。

7. おわりに

プログラミング経験ゼロの社長が、市場に合うものがなかった売上管理アプリを、自分で作った。10日かかって、心も折れかけた。でも、できた。そして2本目は1日でできた。

特別な才能は要りませんでした。必要だったのは、長年の実務の経験と、ちょっとの好奇心。それと、初めての道具に、とりあえず触ってみる軽さだけです。

次回は、バラバラに散らばっていた作業フォルダを、ある日ひとつにまとめたら、世界がガラッと変わった話を書きます。