日時ベースでリソース管理をする必要がありました。具体的には、作業用の共有PCがあるのですが、それを利用する人がPCの台数よりも多いため、多すぎる場合は日程を調整しなければいけなかったのです。各自使いたい時間帯を宣言して、同じ時間帯でリソースが不足していたら別途調整する、ということをしていたのですがなかなか足りているか数えるのがメンドウでして、、、何かカレンダー的なものとかで管理できないかなと探してみたのですが、結局 GoogleDocs の SpreadSheet を共有して、それで管理することにしました。一番柔軟でニーズに対して簡単に対応できそうだったからです。

さらに良かったのがGAS(Google App Script)でした。GoogleDocs上のドキュメントには、GASというScriptを使って動作を自動化することができます。例えば、変更があったらグラフをRefreshするとか、通知を送るとかです。スケジュールを指定して、定期的に実行して結果をSpreadSheetに書き込むなんてこともできます。

例えば、これは変更時、領域に応じて変更日時をセルに書き込むというもの。このスクリプトを データが更新されたら、実行、といった感じで設定できます。

結局、私がやったのは、SpreadSheetでいわゆる予定表的な表を作り、各自が予定をUpdateして、結果、リソースが足りなくなっていたら、Slackにその旨Postしてお知らせする、ということです。SpreadSheetが入力・閲覧用のUIになっている、ということも面白いなと思いました。今回は使っていないですが、API(Post等)でデータを送信して、SpreadSheetにその内容を記録したり、取得したりすることも簡単に可能なようです。(Slackから Slack cmdを使ってSheetの情報を取得なんてこともうれしいかも)

Google Sheets

つまり、GoogleDoscは、WebAPIのInterfaceを持てるDatabaseであり、さらにFrontendのUIを兼ね備えた、ウェブサービスのSaaSだったのです。これだけ気軽に使えるといろいろな場面でちょっとした共有データを使った作業をhackできそうです。

改めてGoogleDocsとGASを使ってちょっと感動いたしました。