スタディサプリ Product Team Blog

株式会社リクルートが開発するスタディサプリのプロダクトチームのブログです

Jasper。プロダクトマネージャーがボトルネックとならないための最高のツール

Quipper でプロダクトマネージャーをしている @daishi-kayano です。担当はスタディサプリ大学受験講座のBtoC領域と、ネイティブアプリです。

今回は弊社がとてもお世話になっている GitHub issue管理ツール Jasper について、私なりの活用法を、感謝を込めてご紹介します。

QuipperでのGitHub Issueの使い方

前提として、弊社では国内・海外問わず、ほぼ全員がGitHub上で仕事のやりとりをしています。*1

開発の仕様の議論はもちろんのこと、Bizの企画の議論、カスタマーからのお問い合わせの調査、コーポレートスタッフからのお知らせも、全てがGitHub Issuesでのやりとりです。 GitHub Issuesさえ見えてけば、隣のチームのこと、海外拠点のことも知ることができます。

全てがissueで進むので、多くのチームが進捗をGitHub Projectsで管理してますし、リリース予定や過去のリリース内容をMilestonesで管理しています。

こんな働き方ですので、毎日たくさんのissueを更新しますし、更新されたissueは見逃さないようにする必要があります。

SYSTEM「Me」を使ってissueを管理する

このメニューでは、自分が作成した、自分がAssigneesになっている、自分がメンションされているissueなどが確認できます。 デフォルトで設定されていて、GitHubの検索クエリはこんな感じです。  involves:daishi-kayano OR user:daishi-kayano

個人的には1番見逃してはいけないissueがある場所だと思っています。 なぜなら、ここにある大体のissueは、自分で推進しないと止まるもの、自分の確認が遅れるとその分遅れるもの、だからです。 業務を開始したら、まずここを見ますし、帰る前もここは既読にしてから帰るようにしています。 すぐにコメントできないときは、あえて未読に戻したり、外部ブラウザで開いてストックしたりします。

SYSTEM「TEAM」を使ってissueを管理する

自分が所属するチームがメンションされたissueがたまる場所です。 チームでissueの作成・更新・コメントが行われることはありませんので、純粋にメンションされたissueです。

こちらもデフォルトです。GitHubの検索クエリとしてはこんな感じです。  team:quipper/aaa team:quipper/bbb

個人的には、次で書くSTREAMSである程度整理しているので、あまり使用頻度は高くないです。 大体はSTREAMSでの整理から漏れたチームメンションのissueがある場所として最後に確認しています。 ただ、週に1度だけこの機能が大活躍する日があります。 スタディサプリでは頻度高く毎週プロダクトのリリースを行なっており、毎週火曜日の夕方にリリース用のPRが各開発レポジトリに作られるので、リリースに入る内容が意図したものとあっているかをこの機能を利用して確認しています。

STREAMSを使ってissueを管理する

STREAMSは、自由にクエリの設定、追加ができるメニューです。 はじめに、私はこんな感じで設定しています。

わりと数がありますが、大きく内容的には3種類ですので、3つに分けて解説していきます。

Bizとして使ってるSTREAM

私がBizも兼任しており、Bizとして進めるべきissueを確認するために使っています。

設定の背景として、Bizサイドは、誰か1人が進めることよりもチームで進めることが多いのと、企画1つにつき1issueで進めているので、1つのSTREAMで管理しています。

CS対応に使っているSTREAM

カスタマーサポートチームからの仕様の確認・調査依頼を確認するために使っています。

設定の背景として、CS対応は、issueの起票ルールが決まっていて、専用のラベルの設定と、担当するチームのメンションがされるので、確認しやすいようにひとまとめにして管理しています。

Devとのコミュニケーションに使ってるSTREAM

プロダクトマネージャーとして、Devやデザイナーとコミュニケーションすることが多いので、同じチームの1人1人に対してSTREAMを設定しています。

設定の背景ですが、色々試した結果ここに落ち着いています。 弊社のGitHubでは各アプリケーション・API・Schemaでレポジトリが別れていたのでレポジトリ単位でやってみたり、issueは全員で1STREAMでPRだけ個別にしてみたりしたのですが、私の情報整理・記憶が人単位に紐づいていて、issueやPRのタイトルで覚えるのが苦手なことに気づいて、1人1STREAMにしました。 このやり方のほうが、あのissueにコメントしたい、PRでコードの確認がしたい、と思った時に検索性が高いです。 各STREAMの中で、Openなものに絞ったり、未読のものに絞ったりして使っています。

クラウドで同期して管理する

個人的事情として、パソコンを2台使っておりまして、両方のパソコンにJasperを入れているのですが、未読/既読をデバイス間で同期をする機能がないため、どこまで読んだかわからなくなる問題があります。 そこで、私は Google Drive File Stream にusr/library内のJasper関連ファイルを移して、usr/libraryからシンボリックリンクを貼っています。

このチャレンジをした時の知見ですが、 実際に未読/既読のデータはこちらに入っているのですが、 ~/Library/Containers/io.jasperapp/Data/Library/Application\ Support/jasper/io.jasperapp/main.db のみにシンボリックリンクを作るとJasperが開けなくなります。 ~/Library/Containers/io.jasperapp/Data/Library/Application\ Support/jasper/io.jasperapp からシンボリックリンクを作ると認証が切れます。 ~/Library/Containers/ でみんな仲良くお引越しするとうまくいきます。

まとめ

色々と書きましたが、チームのみんなが気持ちよく、自分も気持ちよく、コトを進める私なりのJasper活用術を書かせていただきました。 私が1日目を通す量は200件くらいです。時間にして大体2時間くらいのようです。(Usageで調べました) もちろん対面でのコミュニケーション、chatでのコミュニケーションもあるので、全てがGitHub上で進む訳ではないですが、Jasperは弊社にとって大事なコミュニケーションツールです。 Jasperを使ってみたいと思った方は、ぜひこちらからダウンロードください。 → Jasper

Jasperにあったらいいなと思う機能

  • 自分の更新で未読にならない機能(GitHubにある Include your own updates のような機能)
  • 最後にメンションされている人が誰かわかる機能
  • 最後に更新した人が誰かわかる機能
  • MergeされたPRとCloseされたPRの見分けがつく機能(現状同じ赤いアイコンなので、GitHubみたいにMergedが紫色になると嬉しい)

あったらいいなと思っているので、近々要望を整理して公式のレポジトリに issue を起票するつもりです!

余談

もちろん弊社内でも人によってGitHubの使用頻度・使用用途が違いますので、全員がJasperを使っている訳ではなく、4流派くらいあります。

  • Jasperæ´¾
  • GitHub の web の notificationæ´¾
  • Gmail の label で管理派
  • Gmailのフィルタ結果URLã‚’bookmarkæ´¾

要望いただけば、それぞれの流派の人が次のブログを書いてくれると思います。


以上、スタディサプリのプロダクトマネージャーのJasper活用術でした。 Quipper では チームでのプロダクト開発に関心のあるエンジニア・デザイナーを募集しています!!

採用ページURLはこちらから!

また、7/19と7/20にイベントやるので、こちらも是非!

  1. StudySapuri Product Meetup #1 〜脱スタートアップフェーズにおける開発チームの現在と未来。少数精鋭の運用体制からデザイン・アーキテクチャまで~
  2. StudySapuri Data Meetup #1 〜未来の教育を創り出すデータ組織、全部お見せします!〜

ーーーTRUE ENDーーー

*1:6/22時点での弊社のGitHub Organizationには598人がいました。