建設業の出面管理をAIでアプリ化。
職人と経理の「二重チェック」をあえて残した理由
建設会社では、現場作業とは別に、職人の出面管理という事務作業が毎月発生します。StoneMileでは今回、自社の出面管理をAIを使ってアプリ化しました。そこで一番重要だったのは、AIでアプリが作れるということより、何をなくし、何を残すべきかを見極めることでした。
この記事の要点
・職人側と経理側の出面をあえて分けて残し、差額と内容のズレを可視化する仕組みにしました
・便利にしすぎて確認の役割まで消してしまわないよう、二重チェックの意味を先に整理しました
・AIが実装するのはあくまで機能で、何を残し何を変えるかという業務判断は人が行う必要があります
建設会社では、現場での作業とは別に、毎月必ず発生する事務作業があります。
その一つが、職人の出面管理です。
誰が、いつ、どの現場に入り、何日働いたのか。残業はあったのか。単価はいくらなのか。
こうした情報をもとに、職人への支払額や、元請けへの請求額を確認していきます。
StoneMileでもこれまで、職人側が自分の出面や請求内容を作り、経理側でも別に出面を管理し、月末に両方を照らし合わせていました。
職人側ではExcel。社内ではGoogleスプレッドシートとApps Script。
それぞれ役割はありましたが、スマートフォンでExcelを操作したり、複数の帳票を見比べたりと、日々の入力や月末の確認には手間がかかります。
そこで今回、StoneMileでは自社の建設業務に合わせた「出面帳アプリ」を作ることにしました。開発にはAIを使いました。
ただ、実際に作ってみて一番大きかったのは、「AIを使えばアプリが作れる」ということではありません。
むしろ、業務を効率化するとき、何をなくしてよくて、何を残さなければいけないのか。そこを考えることの方が重要でした。
Excelをそのままアプリにしたかったわけではない
今回作ったのは、ブラウザから利用するWebアプリです。
職人はスマートフォンから、自分の出面を入力します。管理者や経理はPCから、職人の登録、単価管理、経理側の出面入力、請求内容の確認などを行います。
もともと使っていたExcelやスプレッドシートには、実際の業務で使っている情報やルールが入っていました。
・元請け
・現場
・職人
・単価
・残業
・各種手当
・請求ルール
ただ、既存のExcelの見た目まで、そのまま再現したかったわけではありません。
引き継ぎたかったのは、表の形ではなく、「この会社では、どう仕事を処理しているのか」という業務ルールです。
データや計算方法は活かしながら、スマートフォンやPCで使いやすい画面に作り直す。そこを意識しました。
実際に触ってみると、小さな面倒が見えてくる
最初にAIが作った画面では、入力したい日付を一度開き、そこから出面を入力する流れになっていました。
ただ、実際に使うことを想像すると少し面倒です。
一回だけなら大した違いではありません。しかし、職人が毎日使い、それを毎月繰り返すとなれば、一つの画面移動でも積み重なります。
そこで、日付を横にスクロールしながら、その場で入力できる形に変更しました。
現在の仕様では、「1日」「半日」「休み」「前回と同じ」といった操作を使いながら入力できます。保存後は、そのまま翌日の入力へ進めます。
元請けや現場も、毎回文字を打ち込むのではなく、選択式にしました。
これも大きな機能ではありません。ただ、業務システムではこうした小さな使いにくさが、毎日の負担になります。
要件書を読んでいるだけでは見えなかった不便が、実際に触ることで初めて見えたという例でした。
AI活用の工夫、無料ルームで情報交換しませんか
自社ツール開発の裏側や失敗談も、現場交差点の無料ルームで共有しています。
一番大きな修正は「便利にしすぎない」ことだった
職人が入力した出面を、そのまま経理側でも利用できるようにすれば、一見すると非常に効率的です。入力は一回で済みます。二重入力もなくなります。
システム化としては、その方が正しいようにも見えます。ただ、StoneMileの既存業務を考えると、それでは問題がありました。
これまでStoneMileでは、職人が申告する出面と、会社側が把握している出面を別々に持っていました。
一見すると「同じことを二回入力している」ように見えます。しかし、この二つの記録には役割がありました。
職人側と会社側の記録を照らし合わせることで、1日勤務のはずが半日になっている、現場が違う、残業時間が違う、手当が違う、といった食い違いを見つけることができます。
つまり、この二重入力は単なる無駄ではなく、確認の仕組みでもありました。
もし職人の入力をそのまま経理側に反映してしまえば、その確認機能までなくなります。
そこで今回のシステムでは、職人側と経理側の記録を、あえて分けて残すことにしました。
「違う」だけではなく、「いくら違うか」まで見る
二つの記録を残すだけでは、経理の確認作業はあまり楽になりません。そこで、職人側の提出額と、経理側で計算した金額を並べ、差額まで見えるようにしました。
たとえば、説明用として単価20,000円の職人がいたとします。職人側では「1日」と入力。経理側では「半日」と入力。すると次のように確認できます。
| 記録 | 工数 | 計算額 |
|---|---|---|
| 職人側 | 1日 | 20,000円 |
| 経理側 | 半日 | 10,000円 |
| 差額 | ― | +10,000円 |
これなら、単に「何かが違う」だけではなく、どの日に、いくら差があるのかまで分かります。
さらに、金額が一致していても安心とは限りません。たとえば、同じ単価の別現場を選んでいた場合、合計金額は一致することがあります。
そこで今回は、現場・工数・残業・手当・金額など、内容自体も比較するようにしました。
つまり、差額0円でも内容が違えば確認対象になる、という考え方です。
ただし、このアプリが「どちらの入力が正しいか」を判断するわけではありません。実際にどの現場で、どれだけ働いたかという事実は、人が確認する必要があります。
システムの役割は、正解を決めることではなく、確認すべき場所を見つけやすくすることです。
「二重入力=無駄」とは限らない
今回の開発で改めて感じたのは、同じ情報を二回入力しているからといって、必ずしも無駄とは限らないということです。
業務改善では、入力を一回にする、自動化する、人の作業をなくす、という方向へ進みがちです。もちろん、それ自体は間違いではありません。
ただ、その作業がなぜ存在しているのかを理解しないまま消してしまうと、本来そこで行われていた確認まで消してしまうことがあります。
今回の出面管理も同じでした。StoneMileでは、職人と経理が別々に記録することで、相互確認ができていました。
そこで今回のシステムでは、入力の負担は減らす。ただし、確認の仕組みは残す。という形にしました。
効率化とは、すべてを一つにまとめることではありません。必要な確認を残しながら、無駄な部分だけを減らすこと。これも業務改善の一つだと考えています。
会社独自のルールは、システムを作るときに初めて見える
実際にシステムを作っていると、一般的な勤怠管理だけでは処理しにくいルールも出てきます。
StoneMileには、特定の条件で加算する「面倒見手当」という社内ルールがあります。たとえば対象者と同じ日・同じ現場に他の職人が入っている場合、その人数に応じて手当を計算する仕組みです。
さらに、職人への支払には加算するが、元請けへの請求には加算しない、という条件もあります。
こうしたルールは、一般的な勤怠管理だけではそのまま処理しにくい部分です。今回の開発では、こうした独自ルールも整理し、システム上の計算へ落とし込みました。
自社システムを作る価値は、「好きなデザインにできる」ことだけではありません。むしろ、自社独自の仕事のやり方を、そのまま仕組みにできることの方が大きいと感じています。
人が増える、辞める、単価が変わる。そこまで考えて初めて業務システムになる
システムを作り始めると、どうしても入力画面や計算機能に目が行きます。ただ、実際の会社では人も条件も変わります。
新しい職人が入る。スポットで来ていた人が来なくなる。単価が変わる。パスワードを忘れる。こうしたことは、普通に起こります。
・職人の追加
・稼働期間の管理
・利用停止・再開
・単価変更
・仮パスワード発行
・パスワード再発行
そこで今回、これらも管理できるようにしました。単価についても、現在の単価を変更したことで過去の出面金額まで変わってしまわないようにしています。
こうした機能は目立ちません。しかし、業務システムではかなり重要です。なぜなら、作る瞬間より、使い続ける時間の方が圧倒的に長いからです。
AIに任せたのは「実装」。業務判断は人間がした
今回の開発では、AIと対話しながら機能を作っていきました。
AIは、画面、ログイン、権限管理、金額計算、データ保存、照合処理、管理画面などを実装していきます。
ただし、「職人と経理の記録は分けた方がいい」「職人自身には単価を変更させない」「この操作は毎日やるには面倒」「この手当はこの条件で計算する」といった判断は、AIが最初から知っているわけではありません。
現場の仕事を知っている側が、何が不便なのか、何を残すべきなのか、誰にどこまで権限を持たせるのかを伝える必要があります。
今回も、「建設会社向けの出面アプリを作って」と一言頼んで完成したわけではありません。AIが作ったものを見ながら、「うちの業務では違う」「ここはこうしたい」と何度も修正しました。
AIを使った開発では、プログラミングの知識以上に、自社の業務を言葉にできることが重要になる場面があります。
「前回と同じ」も、便利だからこそ注意する
今回のシステムには、「前回と同じ」という入力機能もあります。同じ現場が続く場合などには便利です。
ただし、現在の仕様では、前回の残業や手当なども含めてコピーされるため、保存前の確認が必要です。
こうした機能も、「自動だから安心」ではありません。便利な機能ほど、どこまで自動化するのか、最後に誰が確認するのかを決める必要があります。
これは今回の出面管理だけでなく、業務システム全般に言えることだと思います。
画面が完成しても、業務システムは完成ではない
もう一つ、実際に作って分かったことがあります。それは、画面を作ることと、会社で使える状態にすることは別ということです。
今回も、サーバーへの設置、ドメイン設定、SSL、ログイン、アクセス権限、データ保存、バックアップなど、画面制作以外の作業が発生しました。
PCの中だけで動かすのであれば、それほど意識しなくてもいい部分があります。しかし、職人が現場からスマートフォンでアクセスするなら、社外から利用するシステムになります。
そうなると、誰がどのデータを見られるのかまで考えなければいけません。今回も、職人本人の画面からは他人の出面や単価を取得できないよう、サーバー側で権限を確認する構成にしています。
「AIで画面を作れた」だけでは、まだ業務システムとして完成とは言えません。
今回作った出面帳でできること
現在のシステムでは、職人側から日々の出面を入力し、その内容をもとに自分の請求見込みを確認できます。
管理者側では、職人とは別に経理側の出面を入力し、両者を比較します。
・職人への支払見込み
・元請けへの請求見込み
・職人申告額と経理計算額の差額
・未提出・再提出・要確認・承認・月次確定
請求書についても、入力内容をもとに表示し、印刷やPDF保存ができる形にしています。
一方で、銀行振込、元請けへの請求書送信、会社全体の会計処理、勤務実態そのものの自動判定までを自動化しているわけではありません。
また、「月末業務が何時間減ったのか」「入力ミスが何件減ったのか」といった効果についても、現時点では実測していません。この部分は、実際の運用を重ねながら確認していく必要があります。
AIで業務システムを作る前に整理したいこと
今回の経験から、社内システムを作る前に最低限整理しておいた方がいいと感じたのは、次のような部分です。
・誰が入力するのか
・誰が確認するのか
・誰が変更してよいのか
・間違えたとき、誰が気づくのか
・過去のデータをどう扱うのか
・人が増減したとき、誰が設定するのか
・会社独自のルールは何か
特に重要なのは、「今やっている作業は、なぜ存在しているのか」を考えることです。
Excelや紙で行われている作業には、一見無駄に見えても、確認や責任分担として意味を持っているものがあります。
そこを理解せずに自動化すると、便利になった代わりに、間違いに気づけなくなるということも起こり得ます。
業務改善で最初に考えるべきなのは「何を自動化するか」ではない
今回、自社の出面管理をシステム化して感じたのは、「AIで何が作れるか」から考えると、業務改善を間違える可能性があるということです。
先に考えるべきなのは、誰が入力するのか。誰が確認するのか。その作業はなぜ存在しているのか。間違えたとき、誰が気づくのか。という、業務そのものです。
Excelや紙には、単なる数字や文字だけでなく、長年続けてきた会社の仕事のやり方が埋まっています。
そこを理解せずに全部自動化すると、便利にはなっても、それまで機能していた確認まで消してしまうことがあります。
今回の出面帳では、入力する手間は減らす。ただし、確認する仕組みは残す。という形にしました。
AIを使うことで、小さな建設会社でも、自社専用の業務システムを作るという選択肢は以前より現実的になっています。
ただ、そのときに一番重要なのは、AIに何を作らせるかではなく、自社の仕事のどこを変えて、どこを残すのかを決めること。今回の開発で、一番大きかったのはそこでした。
