GitHubに革命が起きる？ZenHubに追加された新機能"エピック"とは


本機能のきっかけとなったIssueはこちらです。
[A better way to work w Epics](https://github.com/ZenHubIO/support/issues/424)
Epic機能について良い議論が行われていました。
ZenHubの最新バージョン2.16.11で追加されたEpic機能について説明したいと思います。

# ZenHubとは

ZenHubって何？という方は@GeckoTangさんの[ZenHubとは](http://qiita.com/GeckoTang/items/f75b9a1c20c8e5091147)という記事を見てみて下さい。
GitHubを拡張するプロジェクトマネジメントツールです。

# エピックとは

エピックって何だ？という方はAtlassianの
[エピック、スト－リー、バージョン、そしてスプリント](https://ja.atlassian.com/agile/delivery-vehicles)を読んでみてください。　
これらは、アジャイルでスコープとスケジュールを適切に管理し、動くソフトウェアを提供し続けていくエンジンとなります。

# ZenHubのEpic（エピック）とは

簡単に言うとGitHubのIssueをまとめられるものです。

この機能を活用するとGitHubの情報の構造は次のようにすることが出来ます。
プロジェクト (repository) > リリース (milestone) > 機能 (label) > エピック (Epic) > ストーリー (issue) > タスク (tasklist)

Issueを最小作業単位、ユーザーに価値を提供する単位として利用します。
今までは、大きな作業群であるエピックはユーザーストーリーとは別のIssueとして管理しなければなりませんでした。（チームそれぞれでやり方は違ったと思います）
その問題をZenHubの機能によって解決することができるようになりました :tada: 
以下ZenHubのEpic機能を紹介します。（2016年4月4日時点）

## エピックの作成

Issue作成画面にいくと、 *Create an epic* ボタンが追加されていることが分かります。（これだけ分かりやすかったら多くの人が気付いたことでしょう、しかし特別なアナウンスはまだ行われていません。[^1]）

<img width="480" src="https://qiita-image-store.s3.amazonaws.com/0/68131/372caba7-8f72-1839-18e4-7fde98cc6487.png">

*Create an epic* ボタンを押すとエピック作成画面に遷移します。
特にチュートリアルがあるわけでもなく簡素な説明が表示されるので、 *Got it!* を押します。

<img width="480" src="https://qiita-image-store.s3.amazonaws.com/0/68131/a31cf45c-0738-68b5-e52c-a85c93162582.png">

右側にIssue一覧が表示されます。

<img width="480" src="https://qiita-image-store.s3.amazonaws.com/0/68131/3edf7555-891a-f66a-07bc-71c7c4480ddc.png">

チェックボックスを選択すると、左側のEpicのリストにチェックした該当Issueが追加されます。

<img width="480" src="https://qiita-image-store.s3.amazonaws.com/0/68131/7e59a4ef-559d-a470-2db9-cf3de3375321.png">

左下の *Create Epic* ボタンを押してエピックの作成は完了です。
GitHubのIssueページにEpicの項目が追加されていることが分かります。

<img width="480" src="https://qiita-image-store.s3.amazonaws.com/0/68131/428d8490-8c6e-c868-96c7-7d2deeb291e0.png">

### IssueをEpicに変換することもできる！

Issue右側のサイドバーからIssueをEpicに変換することも出来ます。

<img width="320" src="https://qiita-image-store.s3.amazonaws.com/0/68131/eda06a42-caf4-2203-dfdf-16adc61b91aa.png">

確認が出るのでOKを押します。

<img width="320" src="https://qiita-image-store.s3.amazonaws.com/0/68131/dd50ea42-86a9-a5b2-2678-6a89924f3960.png">

変換するとIssueにEpic用の項目が追加され、Epicラベルも追加されます。（ここでEpicラベルを外しても、ZenHubはこのIssueをEpicとして認識します。）

<img width="480" src="https://qiita-image-store.s3.amazonaws.com/0/68131/ab534a52-45c5-785d-1d05-bb4d4acce7f6.png">

## エピックの検索

BoardsからEpicを確認すると、 *Filter by this topic* ボタンが表示されています。
このボタンを押すとEpicに属するIssueのみを表示することが出来ます。

<img width="320" src="https://qiita-image-store.s3.amazonaws.com/0/68131/dd37aa29-02cf-12ff-942f-5f7cb31e3a9a.png">

![Screen Shot 2016-04-05 at 1.09.16 AM.png](https://qiita-image-store.s3.amazonaws.com/0/68131/01b3bc27-4520-72f3-c175-c937238af318.png "Screen Shot 2016-04-05 at 1.09.16 AM.png")


## エピックの更新

エピックは更新も行なうことが可能です。更新画面でチェックを付けて *Update Epic* ボタンを押すだけです。

<img width="480" src="https://qiita-image-store.s3.amazonaws.com/0/68131/76f8575f-8e2a-6a18-213b-6177f3b7c31e.png">

当然エピックには複数リポジトリのIssueを含めることが出来るのでとても便利です。

<img width="320" src="https://qiita-image-store.s3.amazonaws.com/0/68131/e76245d9-4551-0a7a-0c85-14702185b720.png">

## エピックの削除

*Delete this Epic* を押すと、エピックを削除することが出来ます。
Issueの紐付けがなくなり、Epicラベルが外されます。

![Kobito.WeRPSZ.png](https://qiita-image-store.s3.amazonaws.com/0/68131/2aa409e7-dc12-1d9a-9853-c43f4ea9f0c8.png "Kobito.WeRPSZ.png")

ただ、ログとしてどのIssueをEpicに入れていたかは残るので安心です。

![Screen Shot 2016-04-05 at 1.01.45 AM.png](https://qiita-image-store.s3.amazonaws.com/0/68131/b5dd0f96-507b-074e-0487-358fe773e9cb.png "Screen Shot 2016-04-05 at 1.01.45 AM.png")


# まとめと感想

- ZenHubにEpic機能が追加されました
- Epic機能はGitHubでの開発の在り方を変えてくれるでしょう
- ZenHubのブラウザサポートが広がり、モバイルのサポートも追加されると期待しています

[株式会社ookami](http://ookamiinc.com)ではライブ共有型スポーツアプリ[Player!](https://itunes.apple.com/jp/app/player!-raibu-gong-you-xingsupotsuapuri/id897872395?mt=8)を開発しています。
スポーツが好きな人、エンジニアリングが好きな人、ZenHubについて色々と教えてくれる方は[@nafu003](http://twitter.com/nafu003)まで連絡頂けると泣いて喜びます。:joy: :joy: :joy: 

[^1]: 記事は4日未アナウンス時点で作成したためこのような表現となっていますが、[2016年4月5日1:30(JST)頃にメールでアナウンスされました。](https://www.zenhub.io/blog/working-with-epics-in-github/)