minne事業部のnissyiです。私は最近、運用・開発業務の時間を確保するために、便利なツールを導入したり、ちょっとしたプログラムを書いて自動化したりしています。今回は、日頃の業務の自動化を進めたことで得られたものについて書きます。
自動化を進めたことで得られたもの
早速本題ですが、自動化に取り組むことで以下のようなメリットや学びを得ました。
- 時間を生み出し、他の仕事に取り組む時間を確保できる
- 自動化の手段を知ることで、他の場面で応用できる
- 作業に対して「これは自動化できないか?」と考えるようになる
自動化を進めると、生み出した時間で新たな自動化に取り組めて、さらにそれで時間を生み出して…と複利のように効率化を進められます。
身近なところで自動化は可能
エンジニアの業務における自動化といえば、CI/CDフローの構築やスクリプトによる環境構築の自動化などが例として思い浮かびます。これらは、本来なら人間が繰り返し作業していたものをコンピュータに任せることで、ミスや作業時間を削減できるといったメリットがあります。 ですが、日々の業務では運用・開発以外の仕事もあります。それらについても自動化できるところはたくさんあります。例えば、以下のようなものです。
- Googleカレンダーに予定を登録しておき、予定を通知させる
- Slackのワークフローで、定例ミーティングのスレッドを定時に作るようにする
- Google Apps Script(以下、GAS)で、計算をさせたり定期的にプログラムを実行する
- Macに搭載されているAutomatorで画像を繰り返し変換させる
- Notionで毎日使う資料をテンプレート化し、定時に自動生成させる
同じ作業を何回か繰り返したら、自動化のチャンスです。しかし、わずかな回数を繰り返すなら、人間が作業した方が早いかもしれません。そこで、1つ例を出して損益分岐点について考えてみます。
自動化の損益分岐点
1日に1分かかっている作業があるとします。その場合、1日単位でみるととても僅かな時間です。でも、365日同じことを繰り返していたら365分…つまり約6時間もその作業に使ってしまうことになります。
「他の業務で忙しいし、こんな僅かな時間の作業のために自動化なんて取り組めない」と思うかもしれません。そこで、自動化の損益分岐点について計算してみます。この1分の作業を自動化するために1時間の開発時間が必要だとすると、その投資を回収するために必要な日数は次のように計算できます。
- 1時間(自動化の開発時間)= 60分 * 60秒 = 3600秒
- 1分(1日に削減できる作業時間)= 60秒
- 3600秒 / 60秒 = 60日
つまり、60日も経てば自動化にかけた時間は回収できます。
しかも、作業にかかっている時間はそれだけではありません。1分の作業に取り組むために、今まで取り組んでいたタスクを脳内から追い出して、作業を実施して、その後もとのタスクに戻るとしたら、スイッチングコストが発生します。作業単体でみると1分しかかかっていないのに、実際はもっと多くの時間が失われる可能性があります。
また、上記「得られたもの」でも書きましたが、一度自動化を行うと、他の自動化したい場面にも応用がきく場合があります。それに、一度取り組んでコツがわかれば次は1時間もかけずに自動化できるかもしれません。そうなれば、もっとお得に感じられるかもしれませんね。
メンテナンスと分かりやすさ
自動化したはいいものの、その自動化をずっと使い続けるとは限りません。通知する内容や実行日時を変更したり、動かしているものを廃止したり…将来的なことを考えると、自分一人でメンテナンスし続けるのは大変です。そこで、自分以外の仲間にも使ってもらうような自動化なら、「メンテナンス時に必要な情報を通知に加えること」と「他の誰かと協力してメンテナンスする」ことをおすすめします。
実際の例として、Google Sheetsでコンテンツを管理して平日10時にスピリットベンチャー宣言をランダムに通知するbotを紹介します。スピリットベンチャー宣言とは、GMOインターネットグループのパートナーが共有・徹底している社訓のようなものです。このbotは、スピリットベンチャー宣言がペパボのパートナーにより浸透することを目的として開発しました。
このbotの通知では、「メンテナンス時に必要な情報を通知に加えること」を実践しています。まず、通知の冒頭に送信元であるGASへのリンクを加えています。これにより、ファイルを探す手間を省くことができます。また、コンテンツ管理に使用しているGoogle Sheetsへのリンクも含んでいます。そして、メンテナンスの依頼先としてSVメイツへ連絡をしてもらうように情報を加えています。(SVメイツとは、スピリットベンチャー宣言が社内により浸透することを目的として活動している有志たちのことです。)
「他の誰かと協力してメンテナンスする」ことについては、自分と同じSVメイツであるSUZURIのエンジニアのほりゆうと取り組んでいます。こうすることで、属人化を防ぎ継続的なメンテナンスを可能にしています。
最後に
人類のアウトプットを増やすためには、人間は人間にしかできないことに集中し、コンピュータでもできることはどんどん任せて時間を作り出すことが大事です。また、日常の中に自動化の種はたくさん転がっています。これを読んだみなさんも、ぜひ自動化を進めていきましょう!