Github Projectをチームで使ってみた感想

[Happy Elements株式会社 カカリアスタジオ Advent Calendar](http://qiita.com/advent-calendar/2016/hekk_cacalia_studio) 2016の13日目の記事です。
担当は「あんさんぶるガールズ！！」グループの @daipoyo です。

# はじめに
前までは「[Waffle.io](https://waffle.io)」を活用していたのですが、
issueが二重で作成されてしまう（設定の問題？）等の不便な部分があったので、
「[Universe 2016](https://github.com/universe-2016)」で追加情報が伝えられた、Github純正のProject機能を使って、1.5ヶ月ほど運用してみたので、まだまだ改善段階ですが、そのまとめ簡単な使い方のまとめと便利な部分、不便な部分を紹介します。

# 何ができるの？
所謂「[カンバン](https://ja.wikipedia.org/wiki/かんばん_(ソフトウェア開発)#.E3.81.8B.E3.82.93.E3.81.B0.E3.82.93.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.81.AE.E3.81.8B.E3.82.93.E3.81.B0.E3.82.93.5B6.5D)」をデジタル管理できます。
ホワイトボードでの管理をおすすめするものが多いですが、個人的には自宅でも確認できるデジタル管理の方が便利なように感じます。
（できれば壁に常に写せるといいなとか思っています。）

カンバン自体を使う目的としては、何よりもかかり作業の見える化が一番の目的です。
うちのグループではチームメンバー全員がissueを記入できるようにしていて、そこからタスクの作成を行っています。
そして、その作業がどういった開発状況にあるかをメンバー全員が見れる状況を作ることを目指しています。

# Projectの作成方法と使い方

## projectの作成
1.githubのリポジトリのメニューから[**create a project**]を選択
![スクリーンショット 2016-12-12 22.12.07.png](https://qiita-image-store.s3.amazonaws.com/0/4491/28145e18-f1be-07d9-83bd-4bc81fcf5c22.png)


２.project名を説明を入力し、[**Save project**]を選択
![スクリーンショット 2016-12-13 11.51.48.png](https://qiita-image-store.s3.amazonaws.com/0/4491/4e61b00d-3885-172b-9391-464a20e7d0d1.png)


3.作成完了
<img width="1174" alt="スクリーンショット 2016-12-13 14.23.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/4491/3202c268-68a6-c005-fd07-6c8964e9c12b.png">



## Columnの作成
1.[**Add Column**]を選択
![スクリーンショット 2016-12-13 14.23.39.png](https://qiita-image-store.s3.amazonaws.com/0/4491/2a30e850-3f0e-ef30-ce92-0daca1be4ed6.png)

<img width="1111" alt="スクリーンショット 2016-12-13 14.42.21.png" src="https://qiita-image-store.s3.amazonaws.com/0/4491/c22775af-ac7a-ce01-495b-6532ade508ad.png">

2.名称を入力して[**Create Column**]を選択
![スクリーンショット 2016-12-13 14.27.10.png](https://qiita-image-store.s3.amazonaws.com/0/4491/b547d186-2edb-ee2d-add7-a27e6bb004ae.png)


3.作成完了
<img width="1174" alt="スクリーンショット 2016-12-13 14.30.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/4491/fc8da579-94d1-053c-5551-4f9f42761fdb.png">


## タスクの追加
### issueから
1.issueを記入
<img width="1084" alt="スクリーンショット 2016-12-13 14.41.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/4491/b983c457-9f39-71ce-ccf1-b4e3c41e6c3b.png">
<img width="1111" alt="スクリーンショット 2016-12-13 14.42.21.png" src="https://qiita-image-store.s3.amazonaws.com/0/4491/56665c98-9e52-7601-fc91-18e6bbaa5f58.png">


2.Projectの[**+Add cards**]を選択
![スクリーンショット 2016-12-13 14.23.39.png](https://qiita-image-store.s3.amazonaws.com/0/4491/e4be9f80-9a9d-e72d-5c5c-693d8c6930be.png)


3.出てきたリストからissueを選択し、ドラック＆ドロップ
![スクリーンショット 2016-12-13 14.43.04.png](https://qiita-image-store.s3.amazonaws.com/0/4491/b10c9617-33fe-675c-0a2b-2640e342aace.png)


4.追加完了
<img width="1171" alt="スクリーンショット 2016-12-13 14.43.16.png" src="https://qiita-image-store.s3.amazonaws.com/0/4491/85aab7e4-4e5f-0142-6de2-741d7d302597.png">

※column間の移動もドラック＆ドロップで簡単に移動できます

### 直接追加
１．[**+**]を押して、内容を入力後[Add note]を選択 
![スクリーンショット 2016-12-13 14.32.10.png](https://qiita-image-store.s3.amazonaws.com/0/4491/4b9f8efc-a213-92f1-403e-32e1f37304f0.png)

２．追加完了
<img width="1162" alt="スクリーンショット 2016-12-13 14.32.28.png" src="https://qiita-image-store.s3.amazonaws.com/0/4491/3018875f-8e4c-87fb-520e-7d81e7284214.png">

※タスクをここで追加というよりはメモ的な感じで使うのが良いと思います。


## ProjectのColumnについて
あんさんぶるガールズグループではColumnを左から下記のように分けています。

|Column名|役割|
|:--|:--|
|Task|タスクとして開発に取り掛って問題ないもの|
|Develop|アサインに指定がなされていて、開発中のもの|
|Wait Review|開発済でレビュー待ちのもの|
|Review|レビュー（もしくは指摘修正）中のもの|
|Complete|開発が完了されmasterにマージ済みのもの|


# だいたいこんな流れで使ってます
1. チームメンバーからissueに不具合の報告や、機能案を記入が行われる。
2. issueで議論した後、チームリーダーが進めると判断したものに[task]タグを付与すると同時にProjectの[**Task**]Columnに追加（優先度のタグも付与する）
3. 各開発者が[**Task**]に置かれたカードを確認して、自分にアサイン、[**Development**]にカードを移動
4. 開発
5. 開発が完了したら[**Wait Review**]にカード移動
6. レビュアーは[**Wait Review**]から[**Review**]にカード移動して、レビューを行う
7. レビューと修正が完了したら[**Complete**]へカードを移動

このような形で、今どのタスクがしがかり中でどういった状態なのか、どういったタスクが後に控えているのかを開発メンバーが共有し理解できるようにしています。

# Project機能が便利だと感じたところ
- Github純正だけあってissueとの紐付けが自動にされていて分かりやすい
- 多機能過ぎないので覚えることが少ないので使いやすい

# Project機能が不便だと感じたところ
- WIP制限指定や期限の指定はできた方が嬉しい（メトリクスまで取れるようになると嬉しいけど多機能で使いにくくなりそうかも）
- いっきにtask化をしてしまうとTask欄にカードが増えて何があるのか把握しずらい
- issueからカード化できるのはいいのですが、Add cardsの検索がやりにくい
- Projectから削除したIssueやcloseしたissueもAdd cardsに含まれてしまうのでCompleteにカードがどんどんたまる
- 結構メンバーにカード移動を忘れられてしまう（＝今の進捗具合の認識がずれてしまうのでMTG等で補足している）

# 最後に
まだ出たばっかりなので、今後も機能追加されていくと思いますが、現時点だとまだ少し機能足らずな感じは否めないです。ただ、公式でこのような機能が付いたのは大変ありがたく、今後に期待です。
今後もこういった新機能等を活用しながらよりよい運用を築いていければと思います。

カカリオスタジオではにより良いアプリ一緒に開発してくれる同士を募集中です。
興味ある方は下記からぜひお気軽にご応募下さい。

[カカリアスタジオ 採用情報](http://cacalia.jp/recruit/)