yo-log

@yo-iidaのlog

フリーランスの稼働管理・集計の自動化(Slackワークフロー+GAS)

6末に前職を辞めて、7月からフリーランスとして新しい仕事をしていたのですが早くも1ヶ月が過ぎてしまいました。

いわゆる退職エントリ的なものは前職のエンジニアブログに書かせてもらったのでもしよければどうぞ

この記事では初めてフリーランスになってみて日々のオペレーションで一工夫したことについて紹介できればと思います。

稼働管理や稼働報告をどうやるか?

会社員だった頃は何らかの勤怠管理システムがあったのでそれに入力してあとは会社の給与計算に任せていたのですが、フリーランスになると自分の稼働管理は自分でやらなくてはいけません。

なんらかの案件マッチングサービスを利用している場合は稼働管理周りのサポートがついていることもありますが、私の場合は自前でやる必要があったので以下のような仕組みを考えて運用してみています。

timesに打刻ワークフローを設定する

今は現場の仕事を2社で行なっており、それぞれslackで日々のコミュニケーションを行なっています。

いずれもtimesチャンネルを作ってもらい、作業の過程やちょっとした雑談を垂れ流しています。

ここに以下のようなワークフローを設定し、稼働を始める時、終える時に打刻を行うようにしました。

f:id:yo-iida:20200803004316p:plain
slackワークフロー

f:id:yo-iida:20200803004349p:plain
slackワークフロー - オプション

送信するとこんなかんじになります。

f:id:yo-iida:20200803004448p:plain

ワークフローの結果を集計する

上記の運用を行うことでこれまで勤怠管理システムで行なっていた打刻をslackで代用できるようになります。

ワークフローは送信内容をCSVでダウンロードすることができこれを集計すれば稼働報告を作成することができます。

f:id:yo-iida:20200803004822p:plain
ワークフロービルダーからCSVダウンロード

これをスプレッドシートに取り込み、開始と終了の記録が交互になるように修正します。(打刻漏れや重複がある場合)

f:id:yo-iida:20200803005138p:plain
スプレッドシートで調整する

このデータをGASで集計します。利用したコード: 稼働報告作成.gs · GitHub 1

f:id:yo-iida:20200803010457p:plain
集計結果(サンプル)

このような形で稼働日、稼働時間、合計稼働時間が集計できるようにしました。

この手のやつはこれまでかなりめんどくさかったのですが、slackのワークフローとGASを組み合わせることでだいぶ楽に継続できるかんじになった感があります。

余談: コロナ下でのフリーランス状況など

現在、エンジニアとアドバイザ含めて3社と契約していますが、うち2社は完全リモートオンボーディングです。

今の所それぞれ順調にオンボーディングが進んでいると思っていますが、リモートだからこそtimesの活用は積極的にしていくべきだなと思いました。

オフィスなら雑談を介して人となりを知ってもらうことができますが、リモートだと能動的に動いていかなければ知ってもらう機会は作れません。

timesにやっていることだけでなく人となりやバックグラウンドがわかるようなネタを書いていったり、他の人のtimesに遊びに行ったり、わからないなりにPRにコメントしたり、とにかくインプレッションを高めていく活動がオンボーディング過程では大事かなと思いました。


  1. コードは当月データのみにしか対応していないので複数月跨いだ集計を行いたい場合はよしなに変えてください。