ノンプログラマにGASを広めたい話

[Gaiax Group Advent Calendar 2018 \- Qiita](https://qiita.com/advent-calendar/2018/gaiax-group) の12/18の記事です。


# 背景

私はGaiaxのグループ会社である adish株式会社 で技術開発部に所属しており「業務効率化」も担当しています。

IT会社とはいえ、営業やバックオフィス系業務の中には「非効率な手作業」がたくさん存在します。(あっちからコピーしたものをこっちに貼り付けて、その結果をそっちで集計してメールする...とか)

弊社は G Suite を導入しているため、Googleサービスを使うことがとても多いです。スケジュールはGoogleカレンダーですし、メールはGmailですし、ファイル共有にはGoogle Driveですし、もちろんエクセルじゃなくてスプレッドシートです。

ノンプログラマの部門やメンバーから「これの自動化をお願いしたい」「こういうことってできるの？」という相談を受けることがあります。そこで Google Apps Script (GAS) を使って対応することが増えてきました。

何でもかんでも自動化できるものではありませんし、何でもかんでも自動化すればいいってものでも無いので、業務の流れや作業の目的をヒアリングして、自動化するのが適していれば行う、といった方針で進めています。

自動化リクエストは多くあるのですが、開発リソースが回らずにすぐに着手できないという問題があります。リクエストする側は今困っているので、すぐに助けてあげたいという気持ちと目の前の業務との板挟みになってううう。。ってなることが多いです。


# ノンプログラマにGASを広めたい

ここで思ったのが **困ってる本人が解決できるようになれば良いのでは？** ということでした。

- プログラム学習のハードルは10年前？と比べて下がってきている
- 「セキュアなWebアプリケーションを作るレベル」と比較したら「GASによる業務自動化に必要な知識は少なくていい」

というのを感じたので、だったら **社内GASレクチャー** をやってみて、GASを書ける人を増やしたら良いのではと。

# こんな目論見です

↓ 弊社では4拠点あります。

![c1.png](https://qiita-image-store.s3.amazonaws.com/0/8612/9ebedacd-c777-82db-ccb6-8e8b106e8cf3.png)


開発部は東京にしかありませんので、全拠点から自動化リクエストが来ることになります。

↓ 例えば各拠点に1人でもGASが使える人がいたら、改善効果は大きいのでは？

![c2.png](https://qiita-image-store.s3.amazonaws.com/0/8612/0044be3a-e813-f09f-523d-74561d72848b.png)


# 動機づけ

教える側(私)の思いだけがあってもダメです。内的動機づけとして「GASを身に着けたい！」と思ってくれる人が多いほうが効果も大きいはず。

ですので、レクチャー受講者を応募するときに「プログラミングできるようになるとどんないいことがあるのか？」を伝えました。

その内容は別記事: [プログラミングできるようになると何がいいのか？](https://qiita.com/sakaimo/items/3a598ca304e13ee3ccdd) にまとめました。 

# GASレクチャの軌跡

- 2017年末から構想、準備開始。資料作成開始する
- 2018年1月、社内にアナウンスして希望者の確認
- 2018年3月からトライアルレクチャ
- 2018年5月に第一期開始～終了(2時間×6回, あるいは休日に8時間+4時間)
- 2018年10月に第二期進行中

一期、二期あわせて、のべ30人くらいが受講してくれました。
テキストはスライド450ページ弱。
卒業課題として「今現在自分がやっている業務を自動化するGASを作成する」を与え、私の判断で合否を決めています。現時点で卒業生が7人出ました！

# どんなことができるようになるのか

一番多いのはスプレッドシートを使った作業です。スプレッドシートだけで完結している場合と、前作業として別ツールで行った処理の結果をスプレッドシートに書き出しておいて、それを処理する場合があります。

- 期日になってもチェックが入ってなかったらslackに通知してくれる君
- Gmailを受信して特定のメール本文を抽出し、スプレッドシートに書き出してくれる君
- 特定箇所に更新があったらslackに通知してくれる君
- 必要なデータをスプレッドシートから集めてきて集計して日報として自動送信する君

…というレベルのものは卒業生自ら作成できるようになりました。

中には

- 画像をアップロードするとOCRを通して文字起こししてくれる君

というのもありました。


# 副次的効果としては

例えばGASを知らない人にとっては、毎日Googleサービスを使って作業している中で「何が自動化できるのか」を知らないが故に自動化できることに気づかないでずっと手作業している、という非効率な事態になります。

自分で自動化できるかどうかは別として「自動化できるのでは？」という発想が生まれるし、その人を起点として周囲の人にも「なるほど。こういうのは自動化できるのね」と気づけるようになっていきそうだなと。

一方で、教える側の勉強にもなっています。GASやプログラミング自体についてだけでなく、「他人に教えること」自体のスキルも鍛えられている感じがします。「自分には理解できていることを理解できていない人に理解させる」って難しいですよね...

補足：
ちょうどこれを書いている時に流れてきた記事がぴったりだったので紹介します
[「何がわからないか、わからない」への寄り添い方について。](https://blog.tinect.jp/?p=54672)


# 次にやること

今はレクチャーを受けた人(あるいは受けてないけどGASを書ける人)が社内に増えてきている状態です。書けるようになると楽しいので、各々のメンバーがいろんなGASを書いている(と思う)のです。

次に想定される問題は「GASを書いた人がいなくなったら誰もメンテナンスできないのでは？」です。

これに対する対応として、

**より良いコードを書けるようになる**

実施したレクチャーの中では「何もない状態から、動くGASを書けるようになること」を主目的として教えてきましたが、次は継続してGASを書いていく人に向けて「メンテナンスしやすいコードを書けるようになる」に焦点をあてたレクチャーをする予定です。

...これ、私のコーディングスキルも高めないとね。


**自動化のチームを編成する**

個人が自動化を請け負うのではなく、こゆのを専門に行うチームを作って、その中で知識・スキルの共有を行っていくことで「継続して利用できるGAS」が提供できるのではなかろうかと。他の人が書いたコードも理解できる状態にしたいなと。


# まとめ

うまく表現できないのですが「範囲も広く高度なプログラミング知識が必要」だった時代から「そこまでじゃない知識でも十分使えるものができる」時代になったと感じます。

時代はそうなっているけどプログラミングに触れたことのない人は(IT業界だとしても)たくさんいるわけで、その人の中の何割かでも興味を持って手を動かしてみたら、世の中変わるんじゃなかろうか。

世の中...は話が大きいけど、会社は変わると思うので、変えていこうと思います。