← ブログ一覧へ

2026年6月2日

夜勤0時間、残業0時間、遅刻13時間——建設会社の勤怠アプリのバグを直した話

私たちは、土木・建築・設備の3業種、約110名の建設会社を経営しています。建設業は20年以上やってきて、この1年で、社内で使うAIツールを8本内製して運用してきました。

勤怠や日報をまとめるアプリも、その中のひとつです。作った時よりも、社員が毎日使うようになってからの方が、細かいところがかなり気になるようになりました。

今回は、その勤怠アプリで見つけたバグの話です。夜勤明けの社員ひとりの一ヶ月を追ってみたら、画面は普通に動いているのに、数字の奥でいくつかおかしなことが起きていました。

ある社員の夜勤が、0時間になっていました

その社員は、夜21時に出勤して、翌朝6時に退勤していました。画面には出勤時刻も退勤時刻も出ていて、日報も普通に残っています。

ところが、勤務時間を見ると0時間になっていました。打刻が消えたわけでも、エラーが出たわけでもなく、集計された数字だけが0になっていたんですよね。

原因は、日を跨ぐ勤務の扱いでした。アプリから見ると、朝6時は夜21時より前なので、そのまま引き算するとおかしな値になります。そこで「この勤務は成立していない」と判断して、0時間として数えていました。

直し方としては、日を跨いだ場合に24時間を足して計算する補正を入れました。ただ、ここで一か所だけ直して終わりにはできませんでした。

このアプリには、LINE、管理画面、メールという3つの打刻の入口があります。どこから打刻しても同じ計算になるように、3つすべてに補正を入れ、朝6時を「29時」と書く現場の流儀にも対応しました。

その社員の一ヶ月をもう一度出してみると、夜勤の日にも勤務時間が入るようになりました。ここまでは、比較的わかりやすい修正でした。

直したあとに、残業0時間が見つかりました

で、夜勤の修正が終わったと思ったんですが、別の修正内容を確認している時に、残業時間の表示が気になりました。ある設定になっている社員たちだけ、1日8時間を超えた分が、数ヶ月のあいだ0時間のまま記録されていたんです。

こちらも画面は普通でした。出勤も退勤も見えていて、月次の一覧も開けますし、何かが壊れているようには見えません。

だから、誰も気づきませんでした。アプリが止まるバグならすぐにわかるんですが、数字だけが静かに消えると、意外とそのまま通ってしまいます。

修正後は、月ごとに勤務時間と残業時間を「再計算」できるようにしました。ただし、すでに締めて確定した月まで、システム側が勝手に書き換えることはしません。

給与計算が終わった数字には、その時点の根拠があります。計算式を直したからといって、過去の確定値まで自動で変わると、今度は別の混乱が起きます。

なので、未確定の月は再計算できるようにしながら、確定済みの月は守る設計にしました。直せることと、勝手に直していいことは、ここでは分けて考えています。

3つある入口のうち、1つだけ遅刻13時間

同じ一ヶ月の点検をきっかけに、LINE、管理画面、メールの入口も順番に確認しました。そこで、勤務スケジュールを登録していない場合に、ひとつの経路から打刻した時だけ「遅刻13時間」が付くことも見つかりました。

原因はかなり単純で、その経路にだけ必要な設定を渡し忘れていました。他の2つでは正常なので、普段使っている入口だけを見ていると見つかりません。

入口が3つあると、修正した時も3つの経路を確認する必要があります。ひとつ直して安心すると、別の入口に「直したつもり」が残るんですよね。

この件も、3つの入口で同じ条件を通し、同じ結果になるように直しました。機能を増やしたというより、入口ごとの差をなくす作業でした。

月次を確定したら、そこから先は勝手に動かさない

今回の修正とあわせて、月次のロックも入れました。月次を確定したあとは数字を勝手に直せないようにし、承認を通さないと次へ進めない形にしています。

勤怠の仕組みを見せると、「あとから直せてしまうんですか?」というところは気になると思います。私たち自身、バグを直す中で、計算が合うことだけでは足りないなあ、という感じがありました。

未確定なら、間違いを直して再計算する。確定したあとは、数字をそのまま守る。今回は、この2つを分けて入れました。

この1年でAIツールを8本内製してきましたが、作ったあとに会社の中で回し続けると、こういう確認がじわじわ増えていきます。今回も、新しい機能を足したというより、すでに動いている数字をひとつずつ確かめて直した話でした。

作ったものが開くかではなく、夜勤明けのひとりの一ヶ月が本当に合っているか。そこまで見て、ようやく勤怠として使えるなあ、という感じです。

まず、先月の夜勤をひとり分だけ手計算してみる

勤怠アプリや集計表を使っている会社なら、まず先月のデータから、夜勤や日跨ぎ勤務の社員をひとりだけ選んでみてください。Excelでも電卓でもいいので、出勤から退勤までを手で計算し、表示されている勤務時間と突き合わせます。

全部の社員を見る必要はありません。ひとりの一ヶ月を追うだけでも、日跨ぎの計算や残業の出方を確認できます。

画面が普通に動いていると、数字も合っているように見えます。私たちのアプリもそうでした。

「うちの勤怠は大丈夫か」と少し気になったら、まずは夜勤明けのひとりから見てみる。今回の修正を通して、私たちはそこから確認するようになりました。

よくある質問

Q. 夜勤対応と書かれている勤怠アプリでも、手計算した方がいいですか?

A. 一度は、ひとり分だけでも突き合わせた方が安心です。日を跨ぐ計算だけでなく、「29時」の入力や、LINE・管理画面・メールなど入口ごとの処理で結果が変わることがあるためです。

Q. バグを直したら、過去の勤怠も自動で再計算すべきですか?

A. 未確定の月は再計算できるようにしつつ、すでに締めて確定した月は勝手に書き換えない形にしました。給与計算が終わった数字を守りながら、必要な月だけ確認して直せるようにしています。

Q. 打刻の入口が複数ある場合、何を確認すればいいですか?

A. 同じ社員、同じ勤務条件で、それぞれの入口から打刻し、勤務時間、残業、遅刻の結果が同じになるかを見ます。ひとつの入口だけ設定が抜けていても、他が正常だと気づきにくいためです。


建設会社の勤怠・日報の運用や、社内ツールの見直しについて、無料相談を受け付けています。

AUTHOR

ARCFEELGROUP株式会社

ARCFEELGROUP株式会社。土木・建築・設備の建設グループ(110名・3業種)で、 建設業のIT/DXとAI活用ツールの内製を担っています。評論ではなく、当事者としての実装記録を書いています。

ARCFEEL × AI について

続きは、実画面でどうぞ。

AIで会社がどう変わったか、私たち自身の実画面を30分でお見せする無料説明会を月2回開催しています(Zoom・顔出し不要・建設業を営む会社さま限定)。 相談まではまだ、という方には3分の経営課題チェックも(登録不要・無料)。

新着記事のお知らせはメルマガ(不定期)でも受け取れます。