【GASコーディング講座】ケース1「Googleフォーム申込への自動返信」

gas coding case1

ITスクール「First」が提供しているGAS(Google Apps Script)コーディング講座のケース1の内容を説明します。題名は「Googleフォーム申込への自動返信」で、フォームへの申し込みに対するメール返信を自動化するシステムを構築します。

1. テーマの進め方(プロセス)

GASコーディング講座では、実際の開発プロジェクトに近いプロセスで進めます。全体のプロセスを下図に示します。プロセスはStep.0~3までの全4段階で構成され、各Stepは複数のタスクを持っています。Step.0「企画」から順に進めていきますが、途中に2回ほどレビューを実施し、指摘事項があれば前のStepに差し戻しされます。

gas course detail

ケース1で使用する「開発計画書」を下図に示します。開発計画書には、プロジェクトを進めるチームメンバーの役割分担や開発環境、全体スケジュール、タスク内容などを記載しています。

development plan

各Stepの特徴は以下の通りです。

Step.0「企画」

主に構築するシステムの「要件」を定義します。また、プロジェクトの全体計画も作成します。本タスクは既にプロジェクトマネージャーが実施しており、開発者であるスクールの生徒は、「入出力サンプルの作成」からスタートすることになります。

スクリプト(プログラム)の作成の前に、「入出力サンプルの作成」を行います。これは、実際に使用するファイルやデータなどを具体化していく作業です。この作業により、今から構築するシステムを明確にイメージできるようになります。ケース1はフォームへの申し込みに対するメール返信で、Googleのフォームやスプレッドシート、ドキュメントファイルなどを使用します。

Step.1「構築」

Step.0「企画」のアウトプットである要件定義書と開発計画書にもとづいて、実際にシステムを構築していきます(スクリプトを作成)。ただし、GASコーディング講座では、特にお手本となる資料はないため(あえて作っていません)、分からないことがあれば随時、自分でネット情報などを調べながら進めていくことになります。

最初はかなり大変だと思いますが、誰にも頼らずに自分で考え抜く経験を積むことで、ITスキルと思考力が飛躍的に高められます。ケース1では、フォームの申込データを抽出して、返信のメール本文に埋め込む処理が実装で一番難しいポイントになるでしょう。

スクリプトが完成すれば、「実装レビュー」を実施します。変な癖や非効率的な作り方などを、一つ一つ指摘していきます。自分が作ったものを第三者から指摘されることは辛いと思いますが、レベルの桁を1つ上げるためには、このレビューは必要不可欠です。レビュー後はスクリプトの修正などを行います。指摘事項がすべてなくなるまでこのサイクルを回します。そして、ようやくシステムの完成です。

Step.2「検証」

Step.1「構築」のアウトプットであるシステムが正しく動作するか検証します。いわゆる、システムテストです。システムテストでは、Step.0で作成した「要件定義書」に記載しているすべての要件を満たすか確認します。

特に、不完全な入力データ(ブランクや入力ミスなど)や、分岐処理の全パターン、例外処理の効果などを網羅的に検証します。勉強のために、システムテストの計画書や報告書などは、開発者であるスクールの生徒に作成してもらいます。なお、テスト計画時にはレビューを行います。

Step.3「運用」

Step.2「検証」でシステムが問題なく動作すれば、実際の運用に入ります。基本的にシステム開発を行う場合は、開発する環境と運用する環境が異なるケースが多いです。運用専用の環境にシステムをデプロイしますが、環境の違いによってトラブルが発生する可能性がありますので気をつけましょう。

また、運用時にシステムを実際に使用するユーザーが参照できる簡易な「運用マニュアル」も作成します。運用マニュアルを作成する場合は、開発する側の視点から、運用する側の視点に切り替える(想像する)必要があり、色々と学びが多いでしょう。特にケース1では、Googleフォームやメールテンプレートに関する説明や使い方などをしっかりと記載しておきましょう。

実際に運用専用の環境にてシステムを仮運用し、何かしら問題が発生すれば、Step.1「構築」に差し戻されます。問題なく仮運用が回り出せば、晴れてプロジェクトは完了です。最後に、チーム内でプロジェクトの簡単な振り返りを行います。今回のシステムの導入によって、どれくらい「投資対効果」が出たか算出してもらいます。

2. テーマの内容(要件定義)

2.1. 概要

ケース1「Googleフォーム申込への自動返信」は、ある企業が開催しているイベントの申込受付業務を効率化していく架空の物語です。この企業は毎月一回の頻度で、オンラインイベントを開催しています。この申込にはGoogleフォームを使用しており、担当者は申込の通知を受け取ったら、内容を確認して手動で案内メールを送信しています。

ただし、すべての作業を手動で行っているため、かなり時間がかかっています。そこで、今回はGASで本作業を自動化することで、作業時間の短縮と作業の精神的負担の軽減を実現させます。そして、担当者には今後、企業の売上や利益に直結する、より付加価値の高い業務(新規イベントの企画やプロモーションなど)を行ってもらいます。

2.2. 要件定義書

参考資料として、ケース1で構築するシステムの「要件定義書」を下図に示します。なお、要件定義書には最低限の内容しか記載しておりません。より具体的な仕様などについては、プロジェクトマネージャーと開発者が相談して決定していく予定です。

requirements document

※本ケースの問題解決に苦戦している場合は、こちらのブログにヒントを掲載していますのでご覧ください。