RAKSUL TechBlog

ラクスルグループのエンジニアが技術トピックを発信するブログです

Wi-Fi接続ログから通勤手当を自動申請:コーポレートエンジニアの取り組み

こんにちは。ラクスルのCorporate Application Developmentに所属している堂野です。 今回はWi-Fiの接続ログから通勤手当を自動申請する方法をご紹介するのですが、その前に、コーポレートエンジニアについて軽くお話しさせてください。

コーポレートエンジニアって何してるの?

「全社のコーポレート業務生産性を向上させる」ことを目指し、日々改善に取り組んでいます。

コーポレート業務とは、経理・会計、人事、総務、法務など、会社や企業の日々の運営や管理に関わる様々な業務活動を指します。これらの業務を効率化し、リソースを最大限に活用するため、様々なプロジェクトに取り組んでいます。

どんなプロダクトをつくっているか・・・

私が所属しているCorporate Application Developmentでは、「CORP DIR」というプロダクトを開発してます。これは、企業ディレクトリ(従業員、部署、資産のマスターデータ管理)やヘルプデスク、資産管理などを行い、企業リソースを効率的に使えるようにするものです。

その他、ITコストの予実管理や社内ナレッジBotの開発なども行い、全社のコーポレート業務生産性向上に努めております。

具体的には?

Wi-Fi接続ログから通勤手当を自動申請

あらまし

コロナを経験しハイブリッドワークに移行が進み、通勤手当の支給が定期代から毎月の申請へと変更となりました。それにより、通勤手当を従業員が毎月申請する手間と、労務が承認する手間、申請の確認に加え督促する手間が増加しました。

この手間を解消するため、Wi-Fi接続ログを活用することで、申請レス, 承認レスの新たな仕組みを構築しました。 新しい流れは、毎月1日にシステムから前月の出社日数が自動的に集計され、月初の2営業日までは必要に応じて修正ができる旨のSlack通知を行い、修正がなければそのまま処理されます。これにより、従業員は毎月の申請作業から解放されるだけでなく、労務部門も確認や督促の手間を大幅に軽減することができました。

課題

勤怠Wi-Fi打刻の仕組みが以前あったため、Wi-Fi接続のmacアドレス毎の接続ログは収集できることが分かっていました。しかし macアドレスに対応するユーザーの自動特定や、多拠点対応まではされておらず、その部分の仕組み構築の工数が効果に見合うかが一番の課題でした。

インフラ構成 課題図

費用対効果の試算

まず初めに費用対効果の試算を行いました。 仕組み構築にかかる費用が約30人日であるのに対し、削減効果は1ヶ月あたり約2人日であり、投資の回収見込期間は15ヶ月でした。 しかし、コロナ収束後に定期代支給へと再び見直される可能性を考慮すると、回収期間が長すぎて費用対効果として見合わないという試算でした。

当初の設計では、各オフィスのスイッチから Macアドレス毎の接続ログを収集し、Macアドレスに対応するユーザーは デバイス管理に導入しているjamf と Intune から取得することを考えていました。しかし費用対効果が合うか微妙であったため、対象とするオフィスを目黒オフィスのみに絞ることにしました。目黒オフィスは Wi-Fi に Mist AI を利用して認証しているのでMist AI の APIからユーザー毎の接続ログが取れるため、システム構成をシンプルにすることができることからそのような結論に至りました。その結果、回収見込期間は10ヶ月に短縮できました。目黒オフィスで対象従業員の80%強はカバーされており、その他オフィスはWeb上で容易に出社日を登録できる機能を提供することでカバーしました。

実装方法

Mist AI導入済みのためAPI経由で接続ログを取得することができます。APIで取得可能な情報には、接続アクセスポイント、接続日、メールアドレスが含まれており、接続ログから取得したメールアドレスにより、ユーザーの識別が可能です。

Mist AI の APIからのデータ収集は、日次のECS Task とし、保存先は CORP DIR が利用している RDS としました。性能的に問題となりそうであれば DynamoDB 等の利用も考えましたが、現時点では問題なさそうなので、RDSに保存しています。

また障害時のリカバリを容易にするため、日付指定で簡単にリランすることができるようにし、過去データを更新できる仕組みにしました。

本格開発する前に実現可能性を検証

Mist AI利用は初めてなので技術面やデータ精度に問題がないか検証ができるよう、簡易スクリプトでMist AI の1ヶ月のログを取得して判定した出勤日をGoogle スプレッドシートにまとめて、実際の出勤日があっているか各ユーザーに確認してもらいました。

そこで、以下のような課題が明らかになり、対応目処をつけてから本格開発しました。そのことにより、開発の手戻りもなく本番リリース後のトラブルもゼロにすることができました。

検証で検出した課題 対応
Guest Wi-Fi接続で出勤と判定されない Guest Wi-Fi接続にメールアドレスの入力を必須に
0時以降オフィスに残り誤判定 日替わり時刻を4時に設定して判定するように
同月内で貸与PC交換で利用者が変わり誤判定 接続日より前の最終認証ユーザーを取得して利用する
共用端末でのWi-Fi接続で誤判定 判定対象外の端末を画面登録できるように

まとめ

Wi-Fi接続ログを用いて通勤手当の自動申請を実現するために、以下の2点に焦点を当てて開発を進めました。

  • コスト意識を高く持ち、MVPを重視する

    完璧を目指すのではなく、最低限必要なものと費用対効果のバランスを重視しました。

  • 実現可能性を低コストで検証してから本格開発を行う

    開発に費用をかけたが品質が低い場合、ユーザに価値を届けることができず、その後の対応に余計なコストがかかり本末転倒となる可能性があります。

おわりに

今後は生成系AIの活用など、さらなる技術の導入も考えています。これらの取り組みを通じて、より効率的な企業運営を実現し、社員の皆さんがさらに働きやすくなるように貢献していきます。