目次
サムザップでUnityエンジニアをやっている2020年新卒の飯田です。 新型コロナウイルスの脅威により、サムザップでは4月からリモートワークが始まりました。
それに合わせてサムザップで運用していた勤怠管理ツールをリモートワークに対応するなどの改修が必要になり、改修担当者が募集されていました。 自分は現在Unityエンジニアとして働いていますが、ゲーム開発に関わる様々な側面に興味があり、いずれサーバ側にも挑戦したいと考えていました。そのため、この機会は渡りに船であり、手を挙げたところ、改修担当をさせていただけることとなりました。
今回、この勤怠管理ツールの実装や改修内容などについてまとめましたのでここに記していこうと思います。 サムザップでは以前から"じんナビくん"という社員の勤怠状況管理と通知を行うシステムを運用していました。
"じんナビくん"は前営業日に条件に当てはまる社員に欠勤理由を問うSlackメッセージが飛び、人事側の管理スプレッドシートにその回答と共に欠勤情報が自動記入されるシステムです。 条件は以下の通りです。 ここで、今年初頭からの新型コロナウイルスの脅威により、サムザップでも4月からリモートワークが始まりました。
しかし、このシステムの「出社したデータ」ではオフィスへの入退室しか考慮されておらず、リモートワークのオンライン出勤簿には対応出来ていないなど、問題がありました。 そこで、この問題を解決するために勤怠管理ツールを改修することとなりました。
また、今回通知文言を修正するなど様々な改修が入ったため、この勤怠管理ツールは今回のアップデートをもって"おやすみかなちゃん"と名前を変えることとなりました。
(名前の由来は「昨日はおやすみかな?」と聞いてくれるからだそうです。) 今回改修する勤怠管理ツール、"じんナビくん"は以下より構成されます。 まず、上記構成要素の各役割を説明します。 人事システム側から以下の情報が毎朝9時ごろ更新されます。 GCP上のストレージの情報より、以下の情報を算出します。 以下二つの情報を保持します。 上記スプレッドシートに紐づけているGASから、毎日12時~13時ごろに以下の処理を行います。 GASからの指示に従い、DMにて、特定の社員に以下ような通知を送ります。
上記の"じんナビくん"を"おやすみかなちゃん"へアップデートするにあたって以下赤枠箇所の改修を行いました。
GCPのストレージに に加え、 がアップロードされるようになりました。 オンライン勤怠簿のデータを加味して、PHPプログラムを改修し、通知を送る条件を以下のように変更する対応を行いました。 これまでの"じんナビくん"では、国民の休日は毎年エンジニアが入力しなければならない、災害のなどの突発的な休みに対応できないなど、運用上の問題がありました。 そこで、"おやすみかなちゃん"にアップデートするにあたり、以下の変更を行いました。 サムザップはサイバーエージェントグループスマートフォンゲーム部門「SGE」の一社です。
こちらの勤怠管理ツールはサムザップだけではなく、SGE各社で運用しています。
また、SGEでは、Slack Enterprise Gridを利用しており、各社のワークスペースとSGE全体のワークスペース(SGE Slack)を使い分けています。 今回の改修に伴い、以下二つの変更を行いました。 サイバーエージェントグループ全体では、リモデイという週の特定の曜日をリモートワークとする取り組みを実施しています。
その上で、グループ全体でオンライン勤怠簿を付け忘れてしまう社員もおり、人事の負担が増加するなどの問題が発生していました。 今回、SGE内に関しては"じんナビくん"もとい"おやすみかなちゃん"を導入することで、勤怠情報付け忘れを社員にSlackから通知することで人事の方々の負担を減らすことに成功しました。
実際、サイバーエージェントグループ内他事業部と比較してかなり下がっているという話をサイバーエージェント人事統括の方からいただけました。 SGE内の勤怠管理ツールに対し、オンライン勤怠簿への対応など、リモートワーク対応を伴う改修を行いました。
また、その改修を行う上で、なるべく運用・管理がエンジニアの手から離れるように意識しました。 しかし、現状では送信する文言の変更など、管理・運用面でエンジニアの手が必要となる箇所が複数あります。
そこで、スプレッドシートなどを介して人事側から文言変更を行える仕組みを作ることなどが今後の課題として挙げられます。 最初述べたように、自分はUnityエンジニアではありますが、今回手を挙げたことでサーバ側に挑戦できました。サイバーエージェントグループ全体で言えることですが、やはり挑戦を推奨・応援する環境があることを実感しました。 また、今回のシステムはサムザップだけでなくSGE内全体に影響するものであったため、その分責任を感じると共に大きなやりがいを感じました。そして、既存システムの改修とはいえ、システムのほとんどに手をつけたため、それが正常に動き、実際に人事の方に喜んでいただけた達成感は大きかったです。 最後に、今回この改修を進めるにあたって、様々な人から挑戦の後押しをしていただけたり助けていただけたりしました。本当に感謝しています。
まだ少し課題は残っていますが、スケジュールを立てて進めていきたいと思います。はじめに
背景
構成
GCP上のストレージ
PHPサーバ
管理用Googleスプレッドシート
GAS
Slack App
システム改修
リモートワーク対応
メンテナンスフリー対応
SGE内での運用
結果
まとめ
所感