見出し画像

GoogleカレンダーとGASで工数管理を効率化!透明性と効率性を実現する方法

はじめに

チームメンバーの工数管理の重要性

私たちのチームはメーカー企業の情報システム部門に所属しており、そのタスクは多岐にわたります。例えば、社内設備であるネットワーク管理は会社全体に関わり、ECサイトの機能追加などは特定の事業部やプロジェクトに関わります。

弊社では、各事業部に工数を配賦しており、特に事業部やプロジェクトに関してはP/Lに影響するため、正確な報告が求められます。

従来の工数管理の課題

毎月の締め処理として工数配賦を行っていますが、タスク管理ツールを使ってプロジェクトごとの工数を集計しています。この方法はエンジニアチームにとっては十分ですが、経営層や人事担当者が確認するためにはそのツールを使いこなしたり、アカウントを作成する必要があります。

そのため、日々の日報も兼ねて、Googleカレンダーに工数を入力することでオープン化し、透明性を高める方法を採用しました。また、その日報はSlackのチャネルへ毎日通知されるようにしました。この方法により、チーム全員で確認でき、毎月の工数配賦にも活用できるため、「意味のある日報」となります。

GoogleカレンダーとGASを使った工数管理の仕組み

各メンバーがGoogleカレンダーに予定を入力

  • 別途工数管理用のカレンダーを作成します。
    (カレンダー名の例 : 氏名 + 実績)
    通常のカレンダーはMTGだったり予定使用済みなので用途を分けます。

  • チームメンバーや関係者にカレンダーを共有します。

  • カレンダーIDはGASに設定する必要があるため別途保存しておきます

  • イベントを下記のように登録します。

    • 場所 :プロジェクト名(UI上で視覚的に確認しやすくするため)

    • タイトル : 作業内容

    • 内容 : 作業の詳細等

自動的にカレンダーの予定を集計し、Google スプレッドシートに出力

  • 期間を絞り込める集計管理するシートを用意。

  • 各人のシートに指定した期間のカレンダーを抽出。トリガーで1日1回実行されるように設定しておきます。

  • 予め組んでおいて数式に工数割合が表示される

前日の工数を自動集計してSlackに通知

  • 前日のカレンダーイベントを取得

  • Webhookを使ってSlackの指定チャンネルに通知

  • 毎日10:30にトリガーを設定して自動実行

ソースコードについてGASのプロジェクトでCalendar APIを有効にして上記でメモしていたカレンダーIDを使って各人の昨日分のイベントを取得する形になります。

let calendar = CalendarApp.getCalendarById(calendarId);  
let events = calendar.getEvents(fromDate, toDate);

チャンネルにメンバー全員が入ってることで、スクラム以外のメンバーにも業務状況がシェアされることになり透明性が高まります。
また入力を忘れた場合はこれを見ることで前日分の工数を入力してもらうフローを取っています。

効果と展望

  • GoogleカレンダーとApps Scriptを組み合わせることで、効率的な工数管理が可能に

  • 別部署の非エンジニアのメンバーでも客観的に工数確認が可能

  • 期間を調整すれば1ヶ月単位以外でも工数抽出が可能で振り返り等に利用できる

  • 工数データの分析・活用により、組織のパフォーマンス向上につなげられる

将来的には予め想定していた工数とずれがあるかないかなど、その場合どのようなタスクが影響していたのかなどをAIを使って分析するようなことも考えています。そこから更にAIにヒアリングなどを行ってアドバイスをもらったり、マネージャーに相談する前の壁打ち相手なども出来るのではないかと検討中です。

もし具体的なスプレッドシートだったりGASの実装を参考されたい方はご連絡ください。
参考になれば幸いです。

この記事が気に入ったらサポートをしてみませんか?