どうも, こうすけ (@kosuke_upd) です.
今回は, GitHub を用いたプロジェクト管理方法について, プロジェクト基盤の作り方と運用方法を紹介します.
プロジェクト管理ツールというと, JIRA, Trello, Asana など様々なツールがありますよね. ただし, JIRA は多機能すぎて使いづらかったり, Trello や Asana は Epic の管理をしづらかったりします.
Epic は, 機能や改善項目単位で実現したいことを表現したものです. 例えば「2段階認証を設定できるようにする」といったもの Epic に当たります. Epic は誰にでも (開発者以外) でもわかる内容にします.
また, なんといっても JIRA, Trello, Asana などをチームで本格的に使おうとすると, どうしても有料プランの契約が必要になります.
そこで GitHub によるプロジェクト管理の登場です. 上記問題を解決する GitHub によるプロジェクトの管理方法について, 実際にプロジェクト管理の基盤を作りながら説明していきます.
GitHub でプロジェクト管理をするメリット・デメリット
メリット
- 基本的に無料で使える
- GitHub に備わっている多くの便利な機能を活用できる
デメリット
- タスクの種類が増えると管理できなくなる
プロジェクト管理の基盤を作成
手順1. GitHub に Organization を作る
まずは GitHub でプロジェクト管理をできるようにするために, GitHub に Organization を作成しましょう.
GitHub の画面右上の +
ボタンから New organization
を選択して Organization を作成できます.
手順2. Organization 全体のカンバンを作る
次は Organization 全体を網羅したカンバンを作成していきます. このカンバンは Organization の Project として作成します.
この後, Repository を作成し, Epic を作成し, Task を作成していくのですが, 最終的に Repository を横断する全 Task を一元化できるカンバンを作成します.
このカンバンは, Organization 画面の Projects
タブから作成できます.
Repository ごとに Project を作成することもできるのですが, このとき誤って Repozitory 内の Projects で Project を作らないようにしましょう.
Repository を横断するカンバンを作りたいため, Organization としての Project を作成します.
手順3. 職能ごとに Repository を作る
次は職能ごとに Repository を作りましょう.
開発であればフロントエンド (Web), フロントエンド (iOS), フロントエンド (Android), 〇〇API といったように分けて作成しましょう.
開発以外に関しては, デザインで1つ, マーケティングで1つ, マネジメントで1つといった大きな粒度で作成していくと良いです.
手順4. Repository ごとに Epic を作る
次は Repository ごとに Epic を作成していきましょう.
冒頭でも説明したように, Epic は機能や改善項目単位で実現したいことを誰にでもわかるように表現したものです.
ただし, GitHub には Epic という機能はないため, マイルストーン機能で Epic を表現します. Epic 間の優先順位は Due Date で管理します.
手順5. Epic ごとに Task を作る
次は Epic ごとに Task を作成していきましょう.
Epic を実現するためにタスク分解し, 各 Task を Issue 機能で作成していきます.
このとき, Issue 編集画面サイドバーの Projects
で先程作成した Project と紐付け, Milestone
で紐付けたい Epic と紐付けておきます.
手順6. カンバンを確認する
ここまできたらカンバンを確認してみましょう. 下画像はすでに運用中のものですが, このようになっていることでしょう.
このカンバンを見ることで, エピックを除くすべての Task とそれぞれの進捗状況をすぐに確認できます.
手順7. Slack と連携させる
GitHub を Slack と連携させておくことで, 各 Task になにか変化があったときに Slack に通知が飛ぶようになります.
この手順は任意なので, 必要に応じて設定しておきましょう.
運用方法
タスクを作成する際の手順
タスクを作成する際の手順はざっと下記の手順となります.
- 実現したいことを Epic として作成
- Epic の Due Date を設定し, Epic 間の優先順位を決める
- Epic を実現するために必要な Task を Issue として作成
タスクを作成するタイミングはいつでも構いません.
カンバンの状況の定期確認
カンバンの状況はチームメンバーで集まって定例を行うと良いです. 頻度や時間は状況に応じて決めるのが良いですが, 1-2週に1回, 30分-1時間ほど時間を確保して行うのが良いかと思います.
この定例では主に下記事項について確認したり実行するのが良いでしょう.
- リリースした Task (Issue) をカンバンのリリース済みレーン (
DONE
など) に移動させる - 進行中 Task の進捗状況を確認
- 新規 Epic の内容とスケジュールの確認
- 次回定例までに着手する Epic, Task を決め, Assignees を割り当てる
このタイミングでリリースした Task をカンバンのリリース済みレーンに移動させることで, 皆で達成感や喜びを分かち合うことができます.
最後に
今回は GitHub でのプロジェクト管理方法をご紹介しました.
記事を読んでいて思ったかもしれませんが, Epic を Milestone で管理したり, Task や Bug を Issue で管理することによる名前の不一致がわかりづらかったり, タスクの種類をより増やそうとすると管理できなくなったりするという弱みがあるのが辛いところですね.
ただ, 基本的には無料で使えたり, GitHub に備わっている便利な機能を存分に活用できるのが GitHub でのプロジェクト管理の強みです.
GitHub でのプロジェクト管理は, お金がなく, メンバーが少ないプロジェクトの初期段階には向いているかなと思いますので, ぜひ状況に応じて活用してみてください.
\ 記事が良かったらシェア! /