DeveLove関西で、アジャイル開発におけるHerokuFlowの運用について登壇してきました

こんにちは。タンバリン 狩野です。

これはHerokuアドベントカレンダー1日目の記事です。

qiita.com

はじめに

先日、DeveLove関西でお話をさせてもらいました。 テーマは、「受託開発の現場でのアジャイルへの取り組み」でした。

devlove-kansai.doorkeeper.jp

DeveLove関西では以前から実際の開発現場を紹介してもらうような企画をされているそうなのですが、今回はそこにタンバリンとウフルさんを呼んで頂いてしゃべらせてもらいました。 会場はRaise Upさんだったのですが、すごくおしゃれなオフィスで、バーやダーツ、ドラムセットに本格的なジムマシンまでありました。すごい。

ちなみに、noteでも一緒に登壇した、弊社の駒田と一緒にインタビューを受けた記事が上がっていますので是非読んでみてください。

note.com

内容

speakerdeck.com

内容は、タンバリンでの開発フローを回すための手段としてのHeroku Flowの紹介と、実際にタンバリンで運用している内容についてお話しました。

導入部

アジャイル開発においてはいわゆるウォーターフォールでまわしていた要件定義から開発・テスト・リリースまでのサイクルを細かく素早く回す考え方が必要になります。
スクラム手法の場合、以下の図のようにスプリントを回す考え方となります。

f:id:tamb-kano:20191130121333p:plain

スプリントの最後に出す成果物を、インクリメント、と呼びます。

f:id:tamb-kano:20191130121351p:plain

さて、先日、EOF 2019というイベントに参加させてもらいました。

eof2019.peatix.com

話題にもなっていましたが、その中でのt_wadaさんのセッションがすごくよかったです。

質とスピード / Quality and Speed - Speaker Deck

詳しくは是非スライドをみて頂きたいのですが、ようは、質とスピードはトレードオフの関係ではない、実際には質を上げることでスピードを(中・長期的に見て)あげることができる、というような内容でした。

これらのことから、スプリントの要素として、

  • 成果物を出せる仕組み
  • 質を上げる仕組み

が必要になりそうです。
そしてそれらはHeroku Flowを使えば実現できそうです。

Heroku Flow

Herokuの紹介は割愛します。

jp.heroku.com

Heroku Flowは以下のような機能をまとめた、Herokuにおける開発フローのことをいいます。

f:id:tamb-kano:20191130121435p:plain

jp.heroku.com

タンバリンでの運用

で、これらの機能を使ってのタンバリンでの運用事例を紹介します。

Pipelineには以下のようにリリースに向けたもの(next-release)と本番用、hotfix用をつなげます。

f:id:tamb-kano:20191130121502p:plain

で、GitHubと連携を行い、next-releaseに対してレビューアプリを設定しておきます。 それにより、開発用のブランチからGitHub上でプルリクエストを出すことでレビューアプリが立ち上がります。
それと同時にCIを設定しておき、テスト出来る仕組みを作っておきます。

f:id:tamb-kano:20191130121515p:plain

パイプライン上では、以下のようにレビューアプリが一番左端に出来上がります。

f:id:tamb-kano:20191130121531p:plain

こうすることで、コード部分はCIによるテスト、他のメンバーによるコードレビューなどで確認、見た目や実際の動作についてはレビューアプリでタスク単位で確認することが可能となります。

確認後、プルリクエストをマージすると、next-releaseが自動的に最新版としてdeployされます。
このようにnext-releaseは常にリリース可能な状態を保つことが可能となります。

f:id:tamb-kano:20191130121540p:plain

さらに本番へのリリースはpromoteボタンをクリックするだけ、で可能です。

f:id:tamb-kano:20191130121551p:plain

このように、開発〜確認〜リリースまでの流れをHerokuFlowを利用すれば簡単に設定、実施することが可能となります。非常に便利です。

ちなみに、レビューアプリについては最近新しくなりまして、プルリクエストを出さなくても作成出来るようになったようです。

blog.heroku.com

これについては、4日目の記事でmasamisさんが書かれるような気がします(タイトル的に)ので期待して待っておきます。

まとめ

Heroku Flowを使えば、リリース・テストなどの環境周りを自動化することで素早いサイクルを簡単に実現することができます。
試すだけなら無料で使えますし、是非みなさんも試してみてください!