Sansan Builders Box

Sansanのものづくりを支える技術やデザイン、プロダクトマネジメントの情報を発信

勤怠を転記したい!「勤怠つけ太郎」誕生秘話

Eight 事業部ビジネスサポートチームの山本です。社内では七瀬と呼ばれています。
業務企画と呼ばれる、事業部の総務をエンジニアの視点でサポートしています。

今回は昨年制作した「勤怠つけ太郎」についてご紹介します。


勤怠における課題

Workplace に投稿された勤怠連絡を、Google スプレッドシートへ転記したい。

これが勤怠つけ太郎における最初の目的でした。
一見してとても些細な要件に思えますが、その効果は絶大でした。

f:id:nanase_sansan:20190503080421j:plain

Eight 事業部では、社員の勤怠に関する連絡を Workplace へ投稿しており、主に他メンバーへの周知やリマインドのために使っています。
その一方で、個々人が実際の出退勤時刻の記録のために TeamSpirit を併用しています。

日々の勤怠連絡は Workplace に投稿され、その数は月に200件を超えます。
業務企画チームでは以前から、Workplace 上の勤怠連絡と、TeamSpirit とを人力で見比べ、事前の共有どおりに正しく出退勤記録がつけられているかを確認していました。
そのため、どの勤怠連絡までを確認したのかを把握するために、スプレッドシートでチェックリストを作り、一行ずつ人力で転記していました。

この転記とは、Workplace に投稿された内容、日付、投稿者名、勤怠種別(全休、遅刻、午前休 など)をスプレッドシートにコピーし、リストを作る作業のことです。
勤怠情報の確認作業は必ず人間がチェックする必要がありますが、転記は機械的で面倒な作業のため、これを自動化することが課題となりました。

勤怠つけ太郎とは

この自動転記スクリプトにつけられた名前こそが「勤怠つけ太郎」です。

このスクリプトはエンジニア以外の社員が主に使用します。
そのため、わかりやすく、シンプルで、かつ印象に残りやすい名称を 3 秒程度で考え「勤怠つけ太郎」と命名しました。この転記スクリプトを通して、勤怠をつけるモチベーションを向上させてほしいという思いを込めました。

開発

f:id:nanase_sansan:20190503080048j:plain

転記を行うには Workplace の Graph API を呼び出し、未だ転記されていない報告を判定してスプレッドシートに追記していかねばなりません。

スプレッドシートに導入できる JavaScript は ES6 以降に対応しておらず、モダンな開発を進めるにはトランスパイルが必要になります。無論、Google Action Script の編集画面に直接、ES5 としてコーディングも可能ですが、メンテナンス性やレビュー難易度を考え、ES6 からトランスパイルする方針となりました。

転記するだけでなく...

補助的機能として、連絡内容本文から勤怠種別を大まかに推測し、自動入力させることにしました。
勤怠連絡に使われる文章には法則が存在し、それを正規表現によるパターンマッチで種別を判定、推測します。

f:id:nanase_sansan:20190503080108j:plain

キーとなる文字列をマッチした結果、複数の勤怠種別が推測できる場合は機械的に判断がつかないため、不明とします。
例外として忌引があり、複数の勤怠種別と判断されても忌引であると推測します。

また、遅刻時の出社時刻の自動入力に対応しました。
遅刻の勤怠連絡では出社後、実際の出社時刻をコメントで報告するルールがあり、これも業務企画メンバーが人力で各々の投稿をチェックしていました。
勤怠つけ太郎では、勤怠種別が遅刻と判定された場合に投稿のコメントを取得し、出社時刻の抽出を試みます。

導入結果

勤怠つけ太郎を Eight 事業部に導入後、「人力作業が減り、漏れの心配もないので心理的に解放された」という声をいただきました。
また、転記にかける工数も減り、他の作業に集中できるようになったという声もありました。

他事業部でも勤怠つけ太郎を導入したいという声が上がり、さらに、各事業部が行っていた勤怠確認を、勤怠つけ太郎を使って全社的に集約することとなりました。
当初は Eight 事業部だけで使われるだろうと想定していた勤怠つけ太郎が私の手を離れ、今では社員全員の勤怠を支える一部となっています。

ところで、勤怠つけ太郎のベースとなっている「Workplace の投稿内容をスプレッドシートに転記する」という処理は、勤怠以外にも応用できます。
既に Eight 事業部ではこの転記処理をフィードバックグループなどで利用しており、「どこまでのフィードバックについて対処したか?」といったタスク管理のような位置づけで使われています。

勤怠つけ太郎が教えてくれたもの

f:id:nanase_sansan:20190425183849j:plain

勤怠つけ太郎の開発は、Eight というサービスに関わるエンジニアとしては新たな始まりでした。

  1. Eight というサービスではなく、Eight 事業部そのもののためになる
  2. 自身の成果が、組織全員の業務に影響を与える
  3. 既存の作業を止めずに、業務効率向上を図る

成果のフィードバックが自身に直接届くことも印象的でした。ポジティブ・ネガティブ、そのどちらの意見も組織全体にコミットし続ける原動力となりました。

アプリやWebなど、外部にリリースされ広まっていくサービスとは対照的に、勤怠つけ太郎は社内に閉じた地味な成果だと思います。
それでも、どんな組織においても決して無視できない勤怠管理という業務の効率向上に貢献できたこと、結果的に組織全員に影響を与える成果を挙げられたことは非常に有意義なことだと考えています。

そして、業務効率向上で組織全体に良い影響を与えられるよう、エンジニアとして、さらに改善を続けていくことが、私の役割なのです。

© Sansan, Inc.