- 2023.07.10
- AzOneの勤怠管理
会社の勤怠管理システムなんですか?
こんにちは~、㉔です!
皆さんの会社はどんなシステムで勤怠を管理していますか?Az Oneはスプレッドシートに手動で記載して共有することで管理していました。(過去形)
私が加入した時点でAz Oneの社員数は
6人
でスプレッドシートによる管理でも何とかなってしまうところがありました。しかしながら会社の業績・社員数ともに堅調な成長をみせ、現在社員数は60人
を超えています。この規模になってくると流石に社員全員の勤怠をツール無しで管理するのは厳しくなってきます。お金で解決or自力で解決
お金で解決という方法を取るのであれば、既存システムを利用すれば勤怠管理の問題は解決するでしょう。ただ、弊社のツール選定のテーマの一つに
システムに無駄にお金をかけない
というものがあります。このテーマの意味するものは守銭奴ということではなく業務管理に高額な費用をかけるくらいなら社員へ還元する
という取締役の金言によるものです。(入社当初社員へ還元する
という言葉を聞いておぉっとなったのを覚えています)また、Az OneはSESが業務の多くを占めていることもあり
社員個人の勤務時間が異なるケースが多い
です。(9時-18時の人もいれば9時-17時半の人もいる)こういったイレギュラーをカバーするシステムもあるとは思いますが、今回は以下を理由に自力で解決する
という方法を選択しました。- 最初から高度な管理を目指さない
- 現状の作業量を半分以下に減らせて無理のない金額に収まるシステムを導入する
- Az One独自の休暇制度をカバーする
- Az Oneには労働基準法内の有給休暇以外にも複数の特別休暇があります
- Discordから利用できるシステム
- ChatOpsやってみたい(個人的な願望)
ChatOps is 何?
ChatOpsはチャットベースのコミュニケーションツール(Slack、Discord等)と、オペレーションや自動化プロセスを組み合わせた協調的なアプローチです。
要は開発、保守、業務などのオペレーションをチャットというリアルタイムの場で、各種ツールと連携して自動化させつつ生産性をあげていく取り組みです。
GitHubのエンジニアであるJesse Newland氏が、2013年にHubotというGitHub製のチャットbot開発FWと、それを用いた業務の自動化に関する講演でChatOpsというワードを解説したことが始まりです。当時の資料はここにありますが、資料は講演と合わせて読む前提なので詳しく知りたい方は以下の動画を参照して下さい。
www.youtube.com/watch?v=NST3u-GjjFw&ab_channel=Rubyfuza
ChatOpsと勤怠管理
Slack同様DiscordにもBotを追加可能です。今回はこのBotを独自開発し、勤怠管理ができるような機能を組み込みます。DiscordのBot開発はかなり丁寧な公式ドキュメントとチュートリアルがあるので気になる方は是非取り組んでみてください。
初めまして、きんたくんです
Az Oneの勤怠管理システムの名称はきんたくんです。社員の中で名称を募集しましたがダントツにいい感じでしたので採用しました。
きんたくんの構成
きんたくんの構成ではDBを使用せずに
Google Sheets
(スプレッドシート)でデータの永続化を実現しています。これはシステムの開発において以下の点でデメリット
となる選択です。- 一般的な開発手法と異なる
- ロールバックができない
- 一応Google Driveの履歴で以前の状態に戻せますが手動で実行する必要がある
- リクエスト過多によるアクセス制限がある
なぜこのような構成となったのかは理由があります。
管理側ファーストの構成
きんたくんは勤怠管理における
管理側のコストを下げる
ことを第一の目的としています。DBはクライアントソフトを使用すればある程度GUIで操作可能ですが、それでも複雑なデータの修正などはそこまで容易ではありません。その点スプレッドシートはエンジニア以外のメンバーも普段から利用しているツールであり、複雑なデータ操作なども
学習コストはほぼかかりません
。このメリットが開発コストを上げてでもGoogle Sheetsを採用した最大の理由です。きんたくんの費用
現状EC2の無料枠で稼働できてきているので
無料
です。ただより高いものはないと言いますが、IT界隈ではタダなのに良いものが結構ある気がします。Discord Botの開発
やっとエンジニアリングな話となりそうですが、今回はすでに色々紹介してしまったのでここで一旦終了です。Botの開発ではSapphireというFWを採用しています。これが中々に語れることがあるので次回をお楽しみに。
- 最初から高度な管理を目指さない