こんにちは。
ピクトリンク事業部の足立です。
ピクトリンクはプリントシール機で撮影した画像データを使ったコミュニケーションツールで、私はそのiOS版のアプリの開発を担当をしてます。
この記事は フリュー Advent Calendar 2018 の 12/07(金) の記事になります。
今回はiOSアプリ開発チームでの Github project 導入事例の紹介です。
ちなみに今日は私が在籍している京都事業所の忘年会なので楽しみにしています🍻🍷
テーマが 南国気分🏝で ほっこり☺️ リフレッシュ らしいので、夜は南国🏖に行ってきます。
Github project
Github が2016/09に開催した GitHub Universe 2016 で発表された新機能の一つです。
タスクをカンバン形式で管理してくれるツールです。
詳しくは About project boards をどうぞ。
きっかけ
導入したきっかけとしては、アプリの新機能開発を進める際に、iOSチーム内でタスクを分割し作業を進めることになったタイミングでした。
個人的には何回か使っていたので、せっかくなのでチームとして使ってみたいと思い提案しました。
新機能が大規模改修だったため、誰が何を担当していて、関連する Pull request がレビュー中 or マージ済みなのか?などの状況把握を簡単に管理できる状態が必須でした。
チャンスだと思い Github project はとても理想的なツールだと説明しました。
チームとして使うことは初めてでしたが、結果から見れば 導入したことは大成功🎉✨ だったと言えそうです。
Github project のよかったところ
使い方などの前に、まず良かったところを書かせていただきます😉
- あとで見返したときにどんな対応をしたかが一目でわかる
- Column が好きなだけ作れる
- Card は Github Markdown形式で入力可能
- Card に Pull request や Issue の番号を書くとプレビュー表示
- Automated の設定だと Pull request や Issue の状態によって自動でカラムが移動される
などが挙げられそうです。
使い方
Github project の作り方
- Github で対象のリポジトリを選び Projects を選ぶ
New Project クリックして新規作成する
Project board name や Description に必要な情報を記入
Project template を選ぶ
Create project クリックで完了
ここで重要なのが Project template を選ぶ です。
Automated kanban または Automated kanban with review がチョーおすすめです💕
これを設定しておくことで Pull request を紐付けていると、レビュー状態になった時や、マージされたタイミングで自動でカラムの移動をしてくれます。
動かし忘れなどもないので、とても便利でしたね。
Column / Card の使い方
Project を作った後は、使うだけです。
使い方も簡単でテンプレートで出来上がったものをそのまま使うもよし、必要な Column を追加しても良いです。
最近使用した例としては以下のような構成にしました。
- Bug: 開発中に見つけたバグのタスク
- Enhancement: 機能開発するタスク
- Refactoring: 開発中に見つけたリファクタしたいタスク
- In progress: 作業中タスクや Pull requestカード
Done: 作業が終わったタスクやマージされた Pull requestカード
複数人で作業していても(ほぼ)リアルタイムで同期されるので安心です。
他の人が動かしているのを見てちょっと感動したり・・・😂✨
Card は Markdown 形式で記述できるのも良いです。
1タスク1カードにするのがおすすめです。
全てが Github の中で管理されているので Card に Pull request や Issue の番号(#1234)と書くと参照情報としてプレビューもしてくれるのとても便利でした。
まとめ
Github project の導入事例というか使い方になってしまいましたが、簡単にまとめてみました。
はじめに書いた よかったところ に挙げているようにとても使いやすく、これからのチーム開発で活躍してくれそうなツールでした。
この記事では書けませんでしたが iOS開発チームでは大規模な機能開発の時は Epic branch 運用 も取り入れているのですが Github project とはとても相性も良い感じでした。
Epic branch 運用 については チーム開発で Epic branch を運用した話 の記事を見ていただければと思います。
みなさんもぜひ Github project を導入してチーム開発の効率をあげてみませんか?