絞り込み検索
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トレンドで探す
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トレンドで探す
background-image-careers
2012.2.9技術ブログ

アジャイル開発と継続的デリバリー

アジャイル開発では「継続的デリバリー」というコンセプトが注目を集めています。

アジャイル開発とは

アジャイル開発とは、日々変化するビジネス環境や市場環境に迅速に対応するソフトウェアを開発することで、ソフトウェアが提供する価値を最大化するための開発手法の総称です。これまで欧米を中心に普及してきた手法ですが、昨今では、日本国内でも多くの開発事例が見られるようになってきました参考1
普及が広がってきた要因の一つとして、アジャイル開発手法の一つである"Scrum参考2"の存在があります。Scrumは軽量で分かりやすく、テスト手法などのエンジニアリングプラクティスを規定していないため、様々な組織で導入がしやすかったと考えられます。

ソフトウェアは一回作れば終わりではない~継続的デリバリー

アジャイル開発の目指すところからも分かる通り、ソフトウェアが提供する価値を最大化するためには、ビジネスや市場の環境に対応するために、継続的にソフトウェアを改修・機能追加し、迅速に提供(デリバリー)していく必要があります。身近なところでは、FaceBookやTwitterをイメージすると分かりやすいでしょう。日々、ユーザーへ価値を提供するための新しい機能が追加されたり、変更されたりしています。
では、実際に、継続的に価値あるソフトウェアを迅速に提供できているのでしょうか?(図)は、「プログラムを1行修正した後に、そのソフトウェアをデリバリーするまでにかかる期間」を示したものです。大多数の組織がデリバリーまでにかなりの時間を必要としていることがわかります。
このような背景のもと、現在、アジャイル開発では「継続的デリバリー」というコンセプトが注目を集めています参考3。継続的デリバリーとは、以下の特徴を持つ考え方です。

【図】

図:プログラムを1行修正した後のソフトウェアデリバリー期間

1.ビジネス駆動のデリバリー

開発の制約に関わらず、ビジネスニーズとデリバリーを連動させる。そのために、常にソフトウェアをデリバリー可能な状態に維持する。

2.ユーザーと開発の強いフィードバックループ

ユーザーからのソフトウェアに対する早期のフィードバックを得る。そのために、ユーザーをソフトウェア開発ライフサイクルに巻き込む。

3.デリバリーリスクの低減

デリバリーに関わるリスクを低減する。そのために、デリバリーのプロセス自体の安定化を図る。

継続的デリバリーにおける自動化技術

継続的デリバリーを実現するには、「常にソフトウェアをデリバリー可能な状態に維持する」必要があります。すなわち、ソフトウェアを修正後に、「ビルド」して、「テスト」して、実行環境上に「デプロイ」する「一連のデリバリーの流れ」が短時間に実行可能な状態ということになります。そのための技術として、「ビルド自動化」、「テスト自動化」、「デプロイ自動化」が重要になってくると考えられます。
NTTデータでは、テスト自動化をはじめとして、継続的デリバリーを実現する新しい開発手法・技術開発に取り組んでいます参考4

お問い合わせ