注目の書籍

好評発売中!

プロマネやってはいけない

プロマネやってはいけない
計画・管理偏
現場のノウハウが
詰まった“禁じ手集”

Cloud Days
必聴講座ご紹介

2月28日(火)
12時50分〜
スマホへの投資対効果を可視化〜クラウド時代を勝ち抜く企業戦略とは

エムオーテックス


2月28日(火)
14時30分〜
「ソーシャル・エンタープライズ」へようこそ

米国セールスフォース・ドットコム


2月29日(水)
17時〜
事例に学ぶ「標的型攻撃阻止」の処方箋

シマンテック ドット クラウド

開発プロセス

ニュース

日経SYSTEMS

「本番環境への適用まで自動化して繰り返す」、Martin Fowler氏がアジャイルのテクニックを語る

2011/07/21
森重 和春=日経SYSTEMS
写真●Martin Fowler氏
写真●Martin Fowler氏
[画像のクリックで拡大表示]

 「本番環境への適用までを自動化する『Deployment Pipeline』のテクニックが重要だ」──。オブジェクト指向開発やアジャイル開発の専門家で、2001年に発表された「アジャイルソフトウエア開発宣言(Manifesto for Agile Software Development)」の起草にも参加した米ThoughtWorksのMartin Fowler氏(Chief Scientist)が7月20日に東京・江東区で開催された「Agile Conference tokyo 2011」の基調講演に登壇(写真)。「Software Design in the 21st Century:21世紀のソフトウェアデザイン」と題して、アジャイル開発で効果的な手法について語った。

 Fowler氏はまず、アジャイル開発がどのような考え方に基づくものか、それによってソフトウエア開発にどのようなメリットがもたらされたのかを、「Adaptive Planning」と「People First」という二つのキーワードを挙げて解説した。

 Adaptive Planning(適応型プランニング)とは、最初に詳細な計画を決めて開発を進めていくのではなく、継続的に何度も計画し続けるやり方である。Fowler氏は、「橋を建築するときは最初に図面を引き、詳細にわたって計画を立ててから着工する。これは、橋に求める要求がはっきりしているからだ。しかしソフトウエア開発では、要求が必ずしもはっきりしているとは限らない。そこで、要求に依存しなくても済むようにしたのがアジャイルにおけるAdaptive Planningのアプローチだ」と話す。Adaptive Planningによって、「ソフトウエアをできるだけ早く、頻度高くリリースすることでユーザーが何を必要としているのかを早い時期に把握できる」(同)。

 一方People Firstは、ソフトウエアを開発する際のプロセスと人との関係についてのキーワードだ。従来の開発では、計画に基づいてやるべきことのプロセスを決め、そのプロセスに人員を適材適所で配置する手法を採る。一方アジャイルにおけるPeople Firstのアプローチでは、プロセスに依存しないやり方を採用する。「まず優秀な人(Good People)を探し、その人たちがチームとしてコラボレーションできるかを見極める」(Fowler氏)。そして彼らがやりたいプロセスやデザインを決めていくという。

 Fowler氏は、「Adaptive PlaningとPeople Firstの二つのやり方によって、もっと良くしたいという意欲が生まれ、継続的に改善を続けられるようになる」と説明する。

本番環境へ適用できるか常に問う

 続いてFowler氏は、アジャイル開発で重要な二つのテクニックについて紹介。「Continuous Integration」と、それをさら進めた「Continuous Delivery」という手法を解説した。

 Continuous Integration(継続的インテグレーション)はアジャイル開発で一般的な手法で、複数のパートに分割して開発されるソフトウエアのビルド作業(インテグレーション)を、開発初期段階から頻繁に行う開発のやり方である。「インテグレーションの間隔が大きくなるほど、発生する問題は大きくなる。頻繁にインテグレーションを行えば、問題が小さいときに検知できる」(Fowler氏)。

 Continuous Deliveryではさらに、開発したソフトウエアを本番環境に適用するまでのプロセスを自動化する。Fowler氏は「Continuous Integrationによって問題を早期発見、早期修正できるがそれだけでは不十分。Continuous Deliveryによって本番環境できちんと動作するか、本番適用可能な状態かを常に問うことが重要だ」と話す。そして、Continuous Deliveryのための実践的手法として、「Deployment Pipeline」という新しいテクニックを紹介した。

 Deployment Pipelineでは、「コンパイルと単体テスト」「機能テスト」「性能テスト」「本番環境への適用」といったプロセスを自動化し、繰り返し実行できるようにする。「ビジネスサイドの要求で最終的な本番環境への適用は数週間に1度や数カ月に1度になるが、我々開発者サイドではDeployment Pipelineを毎日実行する」(Fowler氏)という。

 Fowler氏は「紹介したテクニックを活用して、アジャイル開発の効果を高めてほしい。完全に自動化され、簡単に繰り返すことができるDeployment Pipelineが整備できていれば、皆さんは金曜日の夜にお酒をエンジョイできる」と会場に詰め掛けた開発者に語った。

■変更履歴
Martin Fowler氏の所属会社を「ThroughtWorks」としていましたが、正しくは「ThoughtWorks」です。お詫びして訂正します。本文は修正済みです。 [2011/07/21 15:00]

この記事に対するfacebookコメント

nikkeibpITpro

読みましたか? 〜 未読記事をご紹介