【初学者向け】GitHub Projectsでのタスク管理のススメ

# はじめに
学習を進める上で、今は様々なツールがありますよね。
自分も、元々タスク管理ツールアプリを導入していました。

しかしながら、ツールが増えることによって、ストレスを感じる場面も増えてきました。

であれば「日常的に触れるもので管理できないか？」というところから、今回の方法にたどり着きました。

今回、紹介する方法自体は目新しいものではありません。
紹介記事やドキュメントもありますが、GitHubのアップデート等もあり、記事にまとめられている設定手順が古くなっている、記事に書かれている導入手順が初学者にはとっつきにくいと感じたため、改めてまとめてみようと思った次第です。

### 対象となる読者
**前提：プログラミング初学者で、GitHubの用語やドキュメントに慣れていない**
- GitHubに興味がある方
- GitHubの草を生やしたい方
- GitHubの操作に慣れたい方

:::note warn
私は現在、未経験からのエンジニア転職を目指しているプログラミング初学者です。  
記述・理解・表現に誤りがある可能性がございます。
その場合は、ご指摘いただけると幸いです。
:::

### 本記事の概要
- GitHubにToDo管理用のリポジトリを作成する
- ToDo管理をするためのProjectsを作成する
- 使い方
- カスタマイズの一例

## GitHub Projectsの作成手順
:::note info
GitHubアカウントは作成済みであることを前提としています
:::

### ToDo管理用のリポジトリを作成する
- **リポジトリを新規作成する**
GitHubの「Your Profile」ページ右上の「＋」マークをクリック → "New repository"をクリック
![new_repository.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/bb0def02-cf52-eb63-863f-19fd9eadd59e.png)

- **新規作成するリポジトリの情報を入力する**
「Repository Name」欄にリポジトリ名を入力。
※今回は「MyTask」としておきます ※自由に決めてOKです


- **公開/非公開設定を選択する**
他のユーザーに公開しない場合は「Private」を選択してください。

- **"Add a README file"にチェックを入れる**
チェックを入れることでREADME.mdというマークダウン形式のファイルが自動作成されます。
※チェックを入れないと、新規作成したリポジトリが空なので、見栄え的にとりあえず作っておきます。
※READMEは説明文等を書くために使用されるファイル

- **"Create repository"をクリックする**
上記の情報を踏まえて、リポジトリが新規作成されます。
![new_repository_info.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/6fdb5880-357e-b589-235a-4e4df00a7b8b.png)

:::note info
ここまでの手順で、新規作成したリポジトリの画面に遷移していればOK！
:::


### ToDo管理用のProjectsを作成する
ここからは、作成したリポジトリに紐付けたProjectを作成していきます。

- **リポジトリ内の「Projects」タブをクリックし、右側のドロップダウンメニューから"New project"を選択し、"New project"をクリック**
:::note warn
デフォルトは"Link a Project"（既存のProjectと紐付ける）になっていると思いますが、今回はProjectを新規作成するので、New Projectに変更してください
:::

![new_project.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/f94d64a8-c9ab-b437-131c-3112299b4c8d.png)

- **Projectのテンプレートを選択する**
今回はカンバン方式にしたいので「Board」選択してください。

- **プロジェクト名を入力する**
デフォルトで"ユーザー名's untitled project"と入力されていると思いますが、わかりやすいように今回はリポジトリ名と同じ「MyTask」と入力しておきます。 ※自由に決めてOK

- **"Create"をクリックする**
上記の情報を踏まえて、Prolectが作成されます。
![select_template.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/5960f746-4469-7d80-abeb-562319c984b9.png)

:::note info
下記のようにProjectが表示されていればOKです！
:::
![create_project.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/19a61bb6-6cd7-3286-066f-5d3ef3cf9d06.png)


## 使い方
Boardを選択してProjectを作成すると、デフォルトで３つのステータスのカラムが用意されています。
- **ToDo：取り組む予定のタスク**
- **In Progress：進行中のタスク**
- **Done：完了したタスク**

基本的な運用フローとしては

**1. ToDoカラム下部の「＋」マークをクリック → タスクのタイトルを入力し、タスクを作成する**
![add_todo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/d25c34df-9610-ae2e-3861-a3dbaa002e28.png)

**2. タスクをissue化する**
- 作成したタスクの"3点リーダー" → "Convert to issue"をクリックする
- 次に表示される"Select an item"では、先ほど作成したリポジトリを選択してください。
※作成したタスクを今回のProjectに紐付けるため
![convert_to_issue.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/4fd61bd3-3c9e-5cbe-8e30-4626dec9ab9a.png)

:::note info
タスクの左上の○の部分が、下記画像のように点線から緑色に変わっていればissue化はOKです！
:::
![add_issue.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/4a6cadcb-c73d-5db3-1576-8f51983879f5.png)

**3. タスクを"進行中ステータス"にする**
タスクを直接ドラッグ&ドロップする or "Move to column"から"In Progress"を選択して、「進行中」カラムにステータスを変更します。
![move_to_column.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/d892913d-750a-e2f4-59f2-a3590db24ad5.png)

**こんな感じ ↓**
![mv_in_progress.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/5101ce84-d461-dd5b-fc23-74cec3308433.png)

**4. タスクが完了したらissueをクローズする**
タスクが完了したら、対象のタスク名をクリックして、表示された詳細画面の"Close issue"をクリックして、issueをクローズ(完了)します。
![close_issue.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/36696c10-3758-8779-a446-d37cd592ce08.png)


issueをクローズすると、ステータスも自動的に"Done"に移動してくれます。

**こんな感じ　↓**
![mv_done.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/a3a05848-a2a2-54b3-919d-ed8d9fc4c30b.png)

:::note info
ここまでで、一連の設定と基本的な使い方の解説は終わりです！
:::

**【補足】**
完了済みのタスクが溜まってきた時は、アーカイブすることでカラムから非表示にして、保存しておくことができます。
![archive_issue.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/46cdaaf6-1347-6293-74bf-724363dc7edf.png)



## カスタマイズの一例
最後に、自分のProjectのカスタマイズの一例を紹介しておきます。
※一部、下記記事・書籍を参考にしているので、興味がある方は是非読んでみてください。（Zenn Bookの方は有料です）

https://zenn.dev/bs_kansai/articles/ca9658d8642177

https://zenn.dev/yskn_sid25/books/agile_study_book


### タスクにカテゴリー付けする

- **Project右上の"3点リーダー"から"Settings"をクリックする**
![settings.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/5bce5fa8-c4e6-8451-bbf3-7f6eaf20e4cb.png)

- **"Category fields"の＋ New field"からカテゴリーを作成する**
※下記のカテゴリーは一例
- Field name：今回は「category」としておきます
- Field type：Single selectを選択する
  - Options：カテゴリー名や色を選択してSave（保存）する

![add_category.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/e3e88509-c562-8f75-8020-fcf23b4706ea.png)

- **issue化したタスクにカテゴリーを付与する**
"Convert to issue"済みのタスクを開くと、先ほど作成したカテゴリーを選択できるようになっています。
![select_category.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/24fd4988-14fd-810e-ce1f-458085ce9214.png)

**こんな感じ ↓**
![categorize.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2976126/72a5309e-22e8-0dfb-8cc2-f6268d9ae3cf.png)

:::note info
カテゴリーを付与することで、タスクがカテゴリー別に可視化され、タスクが増えた時もカテゴリーで簡単にソートができます！
:::

### まとめ
GitHubでのToDo管理は、タスクの粒度やタイムマネジメントまで考慮すると、必ずしも万能ではないかもしれませんが、少なくとも自分にとっては現時点で必要十分だなと感じています。

また、エンジニアの実務においても、GitHub Projectsでのプロジェクト管理として、同様の手法を取り入れている場合も多いようなので、触れておいて損はないかなと思います。

issueを立てることで、草も生えます。

今回の記事では割愛しましたが、別のカラムを追加することもできるので、自分の場合は
Storageカラム：とりあえず思いついたことを入れておく
Privateカラム：プライベートなタスクを入れておく
のように使ったりもしています。

拡張性もあるので、慣れてきたらそれぞれの状況に合わせてカスタマイズしてみてくださいね！

この記事が、初学者の方がGitHubに慣れる一助になれば幸いです！

### _**良いプログラミングライフを！**_