WonderPlanet DEVELOPER BLOG

ワンダープラネットの開発者ブログです。モバイルゲーム開発情報を発信。

GitHubの新機能「Projects」の活用アイデア

ネイティブアプリケーション事業部サーバエンジニアの桐島です。

ワンダープラネットでは、開発の様々なシーンでGitHubを活用しており、 GitHubは日々の開発に無くてはならない存在となっています。

また、GitHub好きのエンジニアが多く、 GitHub shopから大量にグッズ購入した結果、想定外の関税の支払いに泣かされたり等、 GitHubをフル活用していると思います。

約1ヶ月前、そんなGitHubに「Projects」という新機能が追加されました。

今回は、Projectsの活用方法を書いてみたいと思います。

GitHub Projectsとは

Projectsは、以下画像の様にかんばんボードを作れる機能です。

issueなどの優先度/状態を視覚化することが可能となります。

f:id:s-krsm:20161024020637p:plain

GitHub Projectsの特徴

GitHub Projectsは、かんばんツール(ZenHub, waffle.ioなど)と比較されますが、 それらかんばんツールには無い、Projectsの特徴的な機能は以下となります。

  • issue, pull reqとは別に、「note」を作成可能(noteは作成後に、issueに変換可能)
  • 1つのリポジトリにおいて、複数のかんばんボードを作れる
  • 各々のかんばんボードのフェーズ(ToDo/WIP/Doneなど)の内容/数は、かんばんボード毎に設定できる

また、公式サイト には、 Projectsについて「Manage your ideas.」と説明してあります。

これらを考慮すると、Projectsは、ZenHubやwaffle.ioとは設計思想が異なる様に思えてきます。

GitHub Projects = 個人のタスク管理ツール

GitHub Projectsは「あるプロジェクトに参加しているメンバの、個人のタスク管理ツールである」と考えると、 別の活用方法が見えてきます。

  • リポジトリに参加しているメンバ1人につき、1つのProjectを作成
  • メンバは各々のProjectにて、各人が行うタスク(issue,PR)を管理する
  • アイデアは各人のProjectにnoteとして残す
  • 他メンバとnoteについて話し、noteを削除するか、issue化するか決める
  • 完了したタスクは、開発の区切りのタイミング(sprint期間が1weekであれば、一日の始まり)にProjectからremoveする

この運用により得られるメリットは以下が考えられます。

  • マネージャは、sprint期間中に各々のメンバが行っているタスク、及びメンバが設定している優先度をProjects上で確認可能となる(メンバの、タスクに対する認識はProject上に現れる)
  • 各メンバは、個人用の別のタスク管理ツールを使用することなく、GitHub上だけでタスク管理が可能となる(マイルストーン、及び自分のタスクの両方を管理できる。しかも他メンバと簡単に共有できる)
  • 1つのcard(issue, PR, note)は複数のProjectに紐付け可能であるため、複数人で対応しているcardの各メンバの対応状況/認識が明確になる

まとめ

以下の運用が良いのでは、というアイデアでした。

  • かんばんツール(ZenHubやwaffle.io) = マイルストーンの管理
  • GitHub Projects = メンバ一人ひとりの個人のタスク管理

Projectsは、ZenHubやwaffle.ioと競合するツールではなく、 併用することで補完し合うツールであると思います。