ネイティブアプリケーション事業部サーバエンジニアの桐島です。
ワンダープラネットでは、開発の様々なシーンでGitHubを活用しており、
GitHubは日々の開発に無くてはならない存在となっています。
また、GitHub好きのエンジニアが多く、
GitHub shopから大量にグッズ購入した結果、想定外の関税の支払いに泣かされたり等、
GitHubをフル活用していると思います。
約1ヶ月前、そんなGitHubに「Projects」という新機能が追加されました。
今回は、Projectsの活用方法を書いてみたいと思います。
GitHub Projectsとは
Projectsは、以下画像の様にかんばんボードを作れる機能です。
issueなどの優先度/状態を視覚化することが可能となります。
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と競合するツールではなく、
併用することで補完し合うツールであると思います。