#issueとは?
「議論すべき重要な話題・論点・争点」 / 「関心事」あたりになる。
リポジトリごとにissueを作成、管理を行える。
issue ではその repository が見られれば誰でも発言でき、議論・報告・連絡・提案などもろもろが可能。
仕事で使う際は単純にタスク単位に issue を切って管理していくためのツールとして使われることも多い。タスク管理ツールとしての使い方だと Todo ツールなどに近い。 issue 単位で Todo = やることを書いていく。
##issue の作成方法
issuesタブからNew issueを押すと入力ページへつながる
内容を記載し、[Submit new Issue]をクリックするとIssueの登録が完了。あとはこのリポジトリにアクセス権限のある人なら、誰でもIssueに対してコメントができる。
##Title
タイトルだけでIssueの内容が把握できるようにする。
Issueがバグの場合は、設計要素の名称を書く。
【xx画面】xxボタン押下時にエラー など...
##問題の内容
複数の問題をひとつのIssueに含めない。面倒だけど問題の数だけIssueを発行する。
###書くべき内容
実行環境
自分が行った内容
期待する結果
実際の結果
###実行環境
そのツール自体のバージョンや、依存していそうなソフトウェアとそれらのバージョン(OS、依存パッケージ、ホスト言語など)を記載する。
開発者がなるべく同じ環境を再現できるように具体的に書くのが望ましい。
###自分が行った内容
具体的に何をやろうとしたのかを記載。
入力として与えた値や問題が起こる直前に行ったことなどの解決に繋がりそうな情報も一緒に記載する。実際に仕様したコードや、その状況が発生するサンプルコード、スクリーンショットや動画などを貼る。
###期待する結果
自分がどのような結果になることを想定していたのかを記述する。自明な場合は省略しても可。場合によっては、自分が期待していた結果がそもそも仕様上正しくないということもあり得る。
###実際の結果
「正しくない計算結果が出た」、「予期しないエラーが発生した」、といった結果を記載。実際の値などを用いて極力詳細な結果を提供する。長いエラーメッセージを全てそのまま貼り付けるのは可読性を損なうので、そのような場合は必要な部分のみを切り取って記載。
Issueが解決したら[Close issue]ボタンをクリックしてクローズする。クローズしたIssueも、完全に消える訳ではなく、Issueの一覧から確認できる。
#担当者を明確にする「Assignee」機能
プロジェクト管理には必須のAssignee(アサイニー)。Issueに担当者を割り当てる機能ある。Issue画面のサイドバーにある[Assignee]という文字をクリックする
Assigneeは途中で付け替えることもできる。そしてIssueの一覧画面ではアイコンが並ぶので、誰がどのくらいのタスクを抱えているかが一目で分かる。
Assigneeに指定することで、通知も逃さず受け取ることができます。1つのIssueに対して1人しかアサインできない。
#スケジュールを管理する「Milestone」機能
Issueに締め切りをつける機能。GitHubでは、Issueごとに期日を切るのではなく、マイルストンを先に置いて、それにIssueを紐付ける。
Issueの一覧画面からマイルストンの一覧画面に遷移します。そこから[New milestone]で新しいマイルストンを作成します。
マイルストンの設定画面ではタイトル、概要、期日を入力。タイトルの付け方はチームごとに分かりやすいようにつける。[Create milestone]をクリックすると作成完了です。
マイルストンもAssigneeと同様、Issue画面のサイドバーから設定できる。Milestoneの一覧画面では、紐付けられたIssueの内、何%がクローズされたかという進捗が確認できる。マイルストンを先に設定し、そこに必要なIssueを紐付けていく、という仕組みになっていることが分かる。