ブログ

ryuzeeによるブログ記事。不定期更新
アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料)

【書評】手動デプロイからの卒業指南書「継続的デリバリー」

みなさんこんにちは。@ryuzeeです。

レビューに参加させていただいた縁でアスキー・メディアワークス社様より献本いただきました。和智さん、高木さんの黄金コンビによる翻訳です。 デプロイ自動化に関する話を網羅的に扱った本はこれがはじめてでしょう。 上級技術者向けと書かれているように内容は結構ハイレベルで、構成管理、CI、テスト戦略についての前提知識が求められるように思いますが、アジャイルなプロジェクトの中で日々改善を繰り返している人たちにとっては理解しやすいのではないかと思います。 デプロイの自動化については技術的なバックグラウンドが多く求められますが、本書の中では特定のツール等の説明に多くの紙面をさかずに、むしろ継続的デリバリーを行なっていくための考え方のポイントを丁寧に解説しています。

アジャイルマニフェストの12の原則の1つに以下の項目があるのはもちろん知っていることだと思います。

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供します。

http://www.agilemanifesto.org/iso/ja/principles.html

アジャイルにプロジェクトを進めようとしたら、そのプロジェクトに関わる人の態度が重要なのは言うまでもありません。 巻物のような文書化された標準プロセスに盲目的にしたがってプロジェクトを進めるのであれば、そこでいくらアジャイル開発におけるプラクティスを取り入れようが、大きな成果を得ることはできません。 その上で態度だけではなく、当たり前のことながら技術面をしっかりケアしていくことは重要です。

スクラムを例にとると、スクラムはフレームワークであり、その価値観は、タイムボックスによる繰り返しと、プロダクトオーナーによる要求事項の並び替え、それから検査と適応を基本として、価値提供を行い続けていくという点にあります。 スクラムではスプリントの最後にリリース判断可能な製品(の増分)を用意します。 実際に出荷する(リリースする)かどうかはプロダクトオーナーに決定権があります。 この「リリース判断可能な製品」については、関係者で「完成の定義」と呼ばれる品質等の基準を策定し、その上で、プロダクトオーナーによる受け入れチェックに通ったものを指します。

マーケット環境の変化が著しい現代においては、作ったものを早めに市場にだし利用者のフィードバックを得ながらより多くの価値を得られるようにしていかなければなりませんが、そのためには開発プロセスがビジネスの要求に耐えうるものでなければなりませんし、開発プロセスが常に製品を作れる状況になければなりません。 それを踏まえれば、スクラムに加えてテストの自動化や継続的インテグレーション等の技術的なプラクティスの利用は必然ですし(多くの場合スクラムとXPを組み合わせている)、頻繁に安全にリリースを行える環境でなければなりません。

リリースが苦痛でリスクが高いと頻度を多くできなくなってしまいますが、それによってさらにビッグバンリリースとなり多くのリスクが発生してしまいます。 したがってプロジェクトの初期から常に同じ仕掛けを使ってデプロイを自動化し何度も何度もそれを使うことでリリースが怖いものではない状態にしなければなりません。

本書はそういう取り組みを行う人の道標になってくれる本であり、是非一読をおすすめします。

それでは。