オモカゲ開発管理にGitHubのProject機能を利用する
顔がポイントカードになるアプリ、オモカゲを開発中です。
開発着手してから6日経過し、徐々に形になってきました。
これまではスプレッドシートでなんとなく機能、タスク管理いていたのですが、GitHubでプロジェクト、タスク管理ができるという事で利用してみる事にしました。
数日利用してきて使い方がわかってきて、かなり印象が良かったので、今後は全面的にGitHubのプロジェクト管理を利用することにしました。
GitHubのプロジェクトは、Issue, Milestone, Projectの単位でタスク管理する仕組みとなっています。
それぞれ、私のような個人開発でも非常に使いやすくなっています。
Issue
Issueには個々のタスクを登録しています。このIssue単位で作業していくことになります。
Issueの内容はマークダウンで記入できるのですが、チェックボックスをつけて個々のTodoの進捗も管理できます。
ラベルにenhancement(機能追加)やbug、questionといったタスクの種類を設定できます。あとはそのIssueが紐づく担当者、プロジェクト、マイルストンを設定しておきます。
特徴的なのは見積工数や実績工数を入力する欄がないことです。
日本のプロジェクトだと工数管理が当たり前で、個々のタスクを時間や人日で見積して予定と実績との乖離を見ている現場が多いのではないかと思います。
一方でTrelloもなんかもそうですが、海外だとあまりタスク単位で工数管理する文化がないようです。
アジャイルやスクラムでスピード感のある開発を進めていくと個々のタスクに工数を見積もる事があまり意味をなさなくなっていくのでしょうかね。
プロジェクトの進捗状況はこのIssueの完了数で見ていきますので、個々のIssueの作業規模感を揃えておくことが重要だと思いました。
正解がどうなのかはわかっていませんが、私の基準としては一つのタスクが半日を超えるようなボリュームの場合には、Issueを分割するようにしています。
また、1時間未満のような細かい作業は個々のIssueにせず、Issueの中でのTodoとして管理するようにしています。
1日にだいたい2つのIssueがクローズできればいいなと思っています。
Project
プロジェクトでは、個々のIssueをカンバン形式で管理する事ができます。
私はTodoとIn progressとDoneの標準の3つのカンバンを利用しています。Issueを追加したりCloseしたときに、自動でこのカンバンを移動するように設定しました。
ここでは5個が完了、3個が対応中、10個が未着手という事がわかりますので、ここからおおよその進捗感をつかむ事になります。
Todoのカンバンは優先順位順に並べていくことが大事です。優先度が高いものを上にして、あとで対応するものを下になるようにしておくことで、毎日今日は何から手を付けようかな、と悩む必要がなくなります。
Milestones
マイルストンを使ってプロジェクトをフェーズにわける事ができます。
私は最初のリリースと最初のリリース以後のver 1.1の二つにわけています。対応しなきゃな、あったらいいな、将来実装すればいいな、という機能はver1.1でIssueを登録していったん忘れる事にします。
マイルストン毎にもIssueのクローズ状況が見れて、ここでだいたい25%の進捗状況だな、という事がわかります。
Commitとの連携
ここが一番嬉しいポイントです。
git commit時のコメントにIssue番号を#5 というようにいれておけば、自動的にcommitとIssueが紐づきます。
自分のcommit履歴を見ると、issue番号がリンクになっていて、リンククリックでissueを確認できます。
自分の作業とCommitもIssueに対応付けますので、commit時のコメントにも悩む事はないでしょう。
使ってみて感じたメリット、デメリット
個人開発には非常にマッチしていて、利用するメリットは大きいと思います。必要十分な機能がそろっていますし、将来他の方に協力してもらう際にも共有しやすいでしょう。
GitHub上で進捗管理することで、オープンソースの何かライブラリを開発しているかのような気分も味わえるのもいいですね。
デメリットとしては工数入力ができない事と、進捗状況の分析のためのグラフやリスト出力などの機能が弱いところでしょうか。
ただ、オープンソースは人が多くてもこれで十分回っているわけですから、このツールの機能不足を悩むよりは、プロジェクトの管理のやり方を見直してこのツールでも十分機能するように管理方法を洗練させていった方がいい気がします。
工数管理しない、というのは昨今のリモートワーク化のように考え方を大きく変える必要がありますね。
結論としては、個人開発でスプレッドシートなどで開発管理されている方はぜひ取り入れてみるとよいと思います。
開発進捗状況サマリ
開発着手:2020年5月14日
作業日数:6日
作業した時間合計:40時間
6月末に向けた進捗:25%