市川健太

2017.09.19

GoogleスプレッドシートでBacklogの課題を集計する

はじめまして!

 16卒入社の “いっちー” と申します。
 弊社エンジニアの中では年次・年齢共に最年少になりますが、
 皆さんに負けないくらい読みやすいモノを書いていこうと思います。

 また、エンジニアでは無い方でも読めるようなものを目指しています。よろしくお願いします。

 今回は少し文章量が多いかもしれませんが、内容は難しくありませんので
 流し読み程度で理解できるかと思います。

どんな仕事をしているの

 本題に入る前に、今しているお仕事について、少し説明させて下さい。
 弊社のサービスには “monipla(モニプラ)” という、企業のマーケティングを支援するためのサービスがありますが、

 このサービスを利用してくださる、“企業の方”, “一般消費者”, “社内運用メンバー”にとって
 使いやすいサービスにするための改善・開発業務を日々行っています。

 ちなみに最近、弊社エンジニア採用サイトの左上に載っちゃいました。
  

 よろしくお願いします。

何を紹介するの

 さて、上記に挙げたような、改善・開発業務の1つとして、社内からの問い合わせに対応する業務があります。
 問い合わせはプロジェクト管理ツールの”Backlog“を採用しています。

 問い合わせ内容としては、moniplaに関する
 ”開発要望“, “使い方・質問“, “データ抽出・操作依頼“, “不具合(バグ)報告” が主なものです。

 日々問い合わせを受けるのですが、やはり傾向がありまして、改善余地があります。
 ですが、傾向を探るために手作業で行うのは 面倒 & 時間がかかります。

 なので、ここをシステム化してしまおう! ということで作られたシステムをご紹介しようと思います。
 だいぶ前置きが長くなってしまい申し訳ありません..。

読者のゴール

 初級者:BacklogをGoogle Spread Sheet上で管理出来ることを知る。
 中級者以上:この記事を参考にし、自分でカスタマイズした上で当仕組みを構築することが出来る。

具体的にどうするか?

 1. Backlogの課題(問い合わせ)に”種別”というタグを付け、
  各課題が “開発要望” なのか “データ抽出” なのか..等、Backlog上で判別出来るようにする。
 2. Backlogの課題データを、APIを使って取得する。
 3. 取得した課題データをGoogle Spread Sheetに自動で書き込む。
 4. 取得から書き込み(2と3)を Google Apps Scriptを利用して行う。
 5. 書き込んだ後は好きにデータを参照して分析を行う!

用意するもの

 ・Backlogアカウント(なるべく管理者権限が良い)
 ・Backlogのapi_key
 ・Backlogの対象プロジェクトのproject_id
 ・Google Apps Scriptが使えるようになっているGoogleアカウント
 ・書き込みたいGoogle Spread SheetのID
 ・書き込みたいGoogle Spread Sheetの対象シートの名前
  ※シートの中にタブ分けで複数シートが作れるため、どのシートか判別するためのもの。

手順

①課題の種別設定

 まず、Backlogの各課題に種別を付けるために、どんな種別を用意するか考え、設定していきましょう。
 設定画面へは下記の順にアクセスします。
 プロジェクトTOP > 右上のユーザアイコンクリック > プロジェクト設定 > 種別

 画像をご覧いただくと、弊社では10種類の種別を用意しています。
  

種別を決める時の考え方
 ・実際の作業ベースで分けると、後々集計した際に改善場所が見つけやすい。(例:開発系、データ操作系、質問系で分ける)
 ・各課題が均等になるようにする。(※最近種別を増やしたため、全く均等になっていません汗)

②Backlog課題の取得

 種別を設定出来たら、次にAPIを利用して課題たちを取得していきます。
 API(WebAPI)の説明はこちらが詳しいので、わからない方は読んでみて下さい。
 (APIに関しては理解しても腹落ちするまで時間がかかると思うので、使ってる例をいくつか見て帰納的に考えたほうが良いかもしれません。)

 さて、Backlogが提供している課題取得用のAPIはこちらに記載されています。
 これをGoogle Apps Scriptで取得していきましょう。

 これでresponseにデータが入りました。出力構成は先程添付したBacklogのAPI説明ページに記載されています。

③シートに書き込む

 さて、ここまで出来たら書き込む準備をしましょう。
 まず、書き込む対象のシートを指定します。

 次に、
 Google Apps Scriptのリファレンスを参考にしながら書き込みたいデータを整理します。

④データをいじる

 思い通りにシートに書き込めたら、
 後はグラフを作るなり、自動更新設定を行うなりしてカスタマイズしてみて下さい。
 そして、改善へ向けて日々のPDCAに組み込んでみて下さい!

 参考までに弊社では、以下のようにPDCAを回しています。
 Plan: 問い合わせの種別を下記の3種類に分ける。
  1 開発によって解決可能な問い合わせ(開発要望、データ操作等)
  2 運用フローの改善によって解決可能な問い合わせ(使い方・質問)
  3 仕方ない自然発生的な問い合わせ(不具合報告、調査、その他)

 Do: 週に1度自動集計をかける。
 Check, Action: 1と2に関しては改善を行うことが出来るため、1週間の合計で◯◯件以上発生したら改善の手を入れる。

 こうすることでどのカテゴリに負荷があるかが容易に分かり、タスクの優先度も決めやすくなります。
  

注意点

 ただし、いくつか注意点があります。

シートの名前を変更するとscriptが動かなくなる。

 ここで言うシートの名前とは上記で示した「target_sheet_name」の事です。
 この名前を変更すると、シートが参照出来なくなります。
 対策としては、「シートの保護」をして変更出来なくする、というやり方があります。

種別で傾向は出せても、ピンポイントでどの課題が多いかまでは出せない。

 例えば、データ抽出の問い合わせが多い傾向だと言うことがわかっても、何のデータ抽出が多いかまではわかりません。
 対策としては、問い合わせのタイトルを統一化し、検索でhitし易くする、という方法があります。

Backlogのapi_keyが不正で取得できない場合がある。

 これは原因は分かっていないのですが、一時的に利用できなくなることがありました。叩きすぎかもしれません。
 その時は新しくkeyを発行してやれば解決します。

 以上になります。
 長々とお読み下さりありがとうございました。
 Backlogの管理に困っているという方は是非試して見てくださいね!
 また、Google Apps Scriptに関しては私の先輩のAsahiさんが記事を書いています。興味のある方は是非。

 余談ですが..
 今動いているスクリプトを書いたのは僕ではなく前任者です(笑)

 それではまたお会いしましょう。