長らく Backlog を使っているのですが、個人的に進めていた Git の布教も進みつつありますし、GitHub の値下げもあったので GitHub へ移行ができるか検証しています。まずはそれぞれのサービスの違いをまとめてみます。
(2023/06/25 追記) 新しい GitHub Projects が登場し、この記事を書いた時点よりできることが増えています。本記事の下部も参照してください。
基本機能
機能 | Backlog | GitHub |
---|---|---|
管理単位 | プロジェクト | リポジトリ |
課題管理 | ○ 課題 | ○ issue |
カンバン | ○ ボード(1つ) | ○ Projects(複数) |
CI | × | ○ |
ソース管理 | ○ SVN, Git(複数) | ○ Git(1つ) |
プルリクエスト | ○ | ○ |
静的サイト作成 | ファイル, SVN, Git | Pages1プライベートの場合は有料 |
Wiki | ○ | ○ 2プライベートの場合は有料 |
ファイルストレージ | ○ | × |
ガントチャート | ○ 3有料 | × 4GitHub Projects で利用可能 |
機能のありなしを見ると、GitHub は GitHub Actions という CI 機能があるというのは大きいですね。対して Backlog はファイルストレージとガントチャートがあるという点が魅力でしょうか(個人的にはあまり使わないのでそれほどですが・・・)。
管理の単位でも大きな違いがあります。Backlog は案件など「大きなプロジェクト」が単位で、その中で複数のソフトウェアを SVN や Git で管理するイメージです。対して GitHub はソフトウェアありきで、その中で複数の「小さなプロジェクト」が動くイメージです。ですので、システム屋じゃない場合は Backlog を選択するのが妥当です。システム屋であっても1つの案件で複数の小さなシステムが回っている場合は、 Backlog の方が俯瞰的にプロジェクト全体を見渡せるのでリーダー視点では使いやすそうです。
GitHub はソフトウェア単体の課題管理、Backlog は案件全体の課題管理に特化してると言えます。
課題管理
機能 | Backlog | GitHub |
---|---|---|
担当者 | ○ | ○ |
期限 | ○ | ×5GitHub Projects で追加可能 |
マイルストーン | ○ | ○ |
タグ付け | カテゴリ | Labels |
テンプレート | ○ | ○ |
課題状態 | ○ 自由に増やせる | △ Open, Close |
属性追加 | ○ 6料金プランによる | ×7GitHub Projects で追加可能 |
ファイル添付 | ○ | ○ |
コミットと連携 | ○ | ○ |
課題の関連付け | 親子課題、片方向リンク | 相互リンク |
課題管理機能の違いも見てみます。
GitHub は課題ごとに期限を設定できません。まあ、課題一つ一つに期限書くのって結構しんどいので、マイルストーンでざっくり管理するのも正解かもしれません。
課題の状態ですが、 GitHub は open か close の2択しかありません。Backlog は未対応、処理中、処理済み、完了の4種類が存在します(プランによって増やせます)。open は 処理中, close は 完了に対応するものと個人的には思います8Backlog の状態の使い方は諸説あります。未対応は課題が存在している以上対応中なんじゃないかと思うので個人的にはいらないかなと感じる部分です。処理済みはレビュー待ちとかで使います。GitHub のレビューはプルリクエストですることが多いので issues ではいらないかもしれません。と考えると open close だけで困ることはなさそうです(最悪ラベルで代替できそう)。
Backlog は課題の属性が多いので、DB っぽく使うことがあります。例えば、課題対応時間の予定と実績を人時で入れられるのでそれを元に生産性の評価をしたりとか、研修で課題を与えた時に誰がどの課題を完了しているかといった管理にも使います。Backlog は汎用的に使えるということですね。
対して GitHub は課題が存在しているか対応が終わったかという最低限の機能しかない印象です。その分利用目的が合致すれば、余計な機能がないので使いやすいとも言えます。
プルリクエスト
機能 | Backlog | GitHub |
---|---|---|
レビュアー | × | ○ |
担当者 | ○ | ○ |
CI | × | ○ |
マイルストーン | ○ | ○ |
タグ付け | × | ○ |
テンプレート | × | ○ |
ファイル添付 | ○ | ○ |
課題の関連付け | ○ | ○ |
デフォルトブランチ設定 | ×9現在は利用可能 | ○ |
ブランチの保護 | ×10現在は利用可能 | ○ |
プルリクに関してはやはり GitHub が強いですね。特にプルリク作成後に自動でテスト走らせられるのは GitHub の強みです。Git のブランチに対して権限設定が細やかにできるので、レビュー文化を浸透させるには適切なツールだと思います。
まとめ
Backlog はプロジェクトマネージャー(スケジュールやコスト管理をする人、プロジェクトメンバーを評価する人)にとって使いやすいツール、 GitHub はソフトウェア開発チーム(実際にソフトウェアを作る人)にとって使いやすいツール、というように感じました。どちらがいいというより適材適所で使うのがよいと思います。
追記
(2021/12/04) GitHub に新しい Projects (beta) が登場しました。今までの Projects とは違い、表形式で表示できるのが大きな違いです。また issue にカスタム属性を追加できます。使ってみると若干物足りない印象を受けますが、 beta なのでこれから機能が追加されていくようです。今後に期待です。
追記2
(2023/06/25) GitHub Projects の機能がかなり良くなってきてます。GitHub Projects で課題だけ管理してみる | zu-min.com という記事を書いてみたので、よければこちらも合わせてご参照ください。この記事にも GitHub Projects でできるようになったことに関して注釈を追加しました。
追記3
(2023/06/26) Backlog に関しても機能追加がされており、デフォルトブランチの設定とブランチの保護はできるようになっています。