AIに「仕様書に書いてなかったんじゃないですか」と言われた日
こんにちは。
中山博之です。
29年間、会計ソフト会社を経営しています。
今日は、自分で給与計算のアプリを作ってみて、思いっきりつまずいた話をします。
結論から言うと、こうです。
作るのは、めちゃくちゃ簡単でした。
でも、完成させて、世に送り出すのは、まだまだ難しい。
同じことをやろうとしている社長さんに、いちばん先に伝えたいのはここです。
会計は難しい。でも給与なら、いけると思った
会計ソフトって、実はけっこう難しいんです。
とくに消費税の処理まわりは、簡単には作れません。
でも、給与計算とか勤怠管理なら、そんなに複雑じゃないんじゃないか。
そう思って、AIに作らせてみました。使ったのはClaude Codeです。いまはFable 5というモデルで動かしています。最近Opus 5というのも出て、これがけっこういいらしいので、その辺も試しながらやっています。
給与ソフトって、やることはシンプルです。
まず入力画面があります。
パートさんやアルバイトさんなら、時給単価があって、その月の労働時間を入れる。50時間とか、50時間35分とか。
そこは基本、掛け算です。時給×時間で、8万6千円とか出る。
そこから引くものを引きます。交通費や手当を足したり、立て替えを精算したり。
それから源泉徴収。ここは人によって金額が違うので、テーブルを持っておいて、その人の区分から金額を決めて引く。
そうすると、差引支給額が出ます。
昔は紙で給与明細を渡していました。額面から税金や社会保険を引いて、手取りが出る。あの紙です。
いまはメールやクラウドで渡します。
さらに、実際の振込手続きもあります。
社員さんの振込先を最初に聞いておいて、銀行名・支店名・カナ氏名を正確に登録する。それを銀行ごとの並びのデータにして、銀行の振込画面に取り込む。いちいち手で打たなくていい。
だいたい、これが給与ソフトの流れです。
分かりやすいでしょう。実際は細かい処理がもっとありますけどね。
本当に大事だったのは「保存」でした
そして、いちばん大事なところがあります。
このデータを、どこに、ちゃんと保存するか。
給与って、1回1回の処理は1日か2日で終わります。
PDFを出して、振込をして、「今月の給与、終わりました」。それでいいんです、その月は。
でも、年末調整があります。
12ヶ月分のデータが必要になります。
だから給与ソフトは、処理そのものよりも、書き込んだものをきちんと残していくことのほうが本体なんです。
ここが、AIに作らせたときにいちばん引っかかるところでした。
AIがサッと作ってくれるのは、ブラウザで動くHTMLのソフトです。じゃあこのデータ、どこに置くの、という話になる。
最初はGoogleスプレッドシートも考えました。表計算だから分かりやすい。
でも、もう少しちゃんとしたデータベースにしたい。SQL Serverの無料版も検討しました。手堅いんですけど、もう少し軽くしたい。
それと、給与は個人情報です。会計情報もそうです。
外に出したくない、ましてや無料のシステムに預けたくない、という会社さんはたくさんあります。
それで僕は、Microsoft Accessにしました。
何十年も使われているデータベースで、しかも無料で配れるランタイム版があります。これで行こう、とかなり早い段階で決めました。
「アクセスに保存しました」が、出てこない
決めて、AIに何度も伝えました。
言ったつもり、じゃありません。間違いなく言っています。会話の履歴が全部残っていて、何度も出てきます。
ところが、上がってきたものをチェックしていたら、様子がおかしい。
保存を押すと「CSVを保存しました」と出る。
もう一度押すと「今日のCSVはもう保存してあるので、2回目はできません」と出る。
制御としては、ちゃんとしているんです。でも、おかしい。
あれだけAccessでやってくれと言ったのに、なんでCSVなんだ。
うちにはGM——ジェネラルマネージャー、AIの総監督役がいます。
そのGMに聞きました。「僕、何回もAccessのランタイム版を使うって言ったよね。でも見た目、使ってないように見えるんだけど」。
会話をしたら、やっぱり使っていないことが判明しました。
これはおかしいでしょう、とだいぶ強く詰めました。
そこで返ってきた一言が、これです。
「仕様書に書いてなかったんじゃないですか」
……開発を会社に投げるときは、当然、要件定義をやります。言った言わないにならないように、紙にする。裁判になったときのために、という話まで含めて。
まさかそれを、AIに言われるとは思わなかった。
ちょっと寒気がしました。
実装されていたものが、消されていた
調べたら、原因が分かりました。
もともと、別の担当が開発していた部分でした。
僕は複数のアカウントを使い分けて開発しています。その途中で、この保存の仕様が漏れてしまった。
そして今のセッションのAIが、「これは関係ないな」と勘違いして、すでに完成品として実装されていたAccessへの書き込みを、わざわざ消していた。
これが判明しました。
だから、検収が本番です
何が言いたいかというと。
AIは、すごく開発できます。本当にできる。
サンプルを見せて「こんな感じ」と言えば、入力まわりだけなら15分でモックができます。仕様書なんて書かなくていい。
問題はそのあとです。
そのモック、本当に動くのか。
ボタンが押せるかどうかは、見れば分かります。
でも、データがどう書き込まれて、それがどこに残るのか。ネット上なのか、そのパソコンの中なのか。そこまでいくと、途端に追いかけるのが難しくなる。
さらに、全体を検証して、マニュアルを起こして、そのマニュアルと本体が合っているかまで確かめる。
検収が本番なんです。
ここが、いちばん大変です。
そして、これがまさに、僕を含めた「普通の人」が困っているところでもあります。
「仕様書を書いてください」と言われても、そんなもの書けない。書けないから、AIに任せたいのに。
今やっていること
いま僕は、この検証と対策に5時間、10時間とかけています。
奥のほうで、地味に、ずっとやっています。
でも、これは全部そのまま財産になります。
だからこれをちゃんとまとめて、仕様書が書けない普通の人でも、業務アプリを開発できるスキルにしようと思っています。
Claude Codeを中心に、Fable 5やOpus 5を使いながら、誰でも業務アプリを作れる形にする。
その実録も、またここで書いていきます。
それでは、今日はこの辺で。

