プログラマとプロマネのあいだ

プログラマもやるし、プロマネもやるし、たまに似非アーキとか営業っぽいこともやる

「第七回ゆるぎー はじめての継続的デリバリー やってTry」行ってきた

参加してきた勉強会

第七回ゆるぎー はじめての継続的デリバリー やってTry
http://yurugee.doorkeeper.jp/events/13590

参加した動機

継続的デリバリーに興味があったから

開催場所

21Cafe
http://www.ni-ichicafe.com/

"無料"のイベントスペースです。すごいですね。

勉強会の内容

講師:アトラシアン所属のエバンジェリスト@tomohnさん

前半は、継続デリバリーとは何か、なぜ継続的デリバリーをやるのか、主にウォーターフォール開発との違いを元にした説明。

後半は、アトラシアン製品を使ったハンズオン。

企画書に記載された要件を、本番環境にデプロイするまでの流れを体験しました。

ハンズオンの手順書は、以下で公開されています。
http://re-workstyle.com/articles/continuous-delivery-hands-on-with-atlassian-solution/

ツールとそれぞれの位置づけは以下の通り。


企画:Confluence
計画:JIRA(Redmine的なツール)
開発:Stash(gitみたいなソースリポジトリ)、SourceTree(DVCSクライアント;Stashだけではなく、git、mercurialと接続することも可能)
ビルド・デプロイ:Banboo


ハンズオンの流れはこんな感じでした。

  • Confluenceを使って、要件をタスクとしてJIRAに登録(webで文字を選択して、ボタンを押すだけ)
    • 以降、要件の隣に開発のステータスが表示されるようになる。
  • JIRAから、作業開始の宣言、Stashのブランチ作成、SourceTreeと連携して、ローカル開発環境へソースチェックアウト
  • 普通に開発&コミット
  • JIRAからプルリクエスト&レビュー依頼
  • Stashからレビュー&マージ
  • Banbooが自動でテスト実行、および、ステージングへのデプロイ
  • Banbooで本番へデプロイ

今どきの開発!って感じですね。
私は切ったブランチではなく、masterの方を間違ってチェックアウトしてしまい、ハンズオン完遂出来ませんでした。残念。。

得られたもの

継続的デリバリーは、以下のように理解しました。

ウォーターフォール
企画(アイデアA、アイデアB、アイデアC)
計画(アイデアA、アイデアB、アイデアC)
開発(アイデアA、アイデアB、アイデアC)
ビルド(アイデアA、アイデアB、アイデアC)
デプロイ(アイデアA、アイデアB、アイデアC)
次の企画へ


<継続的デリバリー>
イデアA(企画、計画、開発、ビルド、デプロイ)
イデアB(企画、計画、開発、ビルド、デプロイ)
イデアC(企画、計画、開発、ビルド、デプロイ)
・・・
これを定期的にやる


なぜウォーターフォールより、継続的デリバリーがよいのか。
BUILD / MEASURE / LEARNのサイクル(by リーンスタートアップ)を短い期間で回すことで、アイデアに対するフィードバックが短期間で得られる、つまり、素早く変化できる、この結果、ブランド価値や競争力を高めることができる。


今の現場では、色々制約があって、企画から本番リリースまでってところは出来なそうですが、部分的には、継続的デリバリーの考え方を適用出来るところもあるのかなと思いました。
例えば、コミットしたら自動でテストが実行されて、開発環境にデプロイされるとか、ボタン押せば、ステージング環境用のビルドが完了するとか。
→これは、継続的デリバリーとは言わないでしょうが。

その他

この間、Railsのハンズオンで同じテーブルだった人と再会しました。勉強会好きな人のようです。(人のことは言えないが)

とりあえず

買ってみた。

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化