編集部からのお知らせ
「ZDNet Japan Summit」参加登録受付中! 
新着記事集:「負荷分散」

ソフトウェアの新たな開発手法、「アジャイル開発」って? - (page 5)

一橋範哉(ウルシステムズ)

2006-09-29 08:00

アジャイル開発の効果

 アジャイル開発の効果の1つ目は、短期間にフィードバックループを回すことにより、ユーザーの要望を的確に把握し満足度の高いシステムを開発できることです。無駄な文書化よりも動くソフトウェアを早期にリリースすることを優先し、実システムを利用して要求の確認を行いながら進めることで要求の把握が容易になります。

 2つ目の効果は、優先度の高い機能から徐々に開発していくことで、仕様の欠陥を早期に発見できるほか、作りすぎや要件の盛り込みすぎといったムダが省けるため、開発コストが削減できることです。各イテレーションのタイミングで実装する機能の計画を見直し、その評価を行うことができます。

 3つ目の効果は、ビジネスのスピードにあわせて、ゴールを達成するために必要な機能を提供できる基盤が作成できることです。ビジネス環境は絶えず変化していますが、先が予測できないような状況であっても、アジャイル開発手法を用いた変化に柔軟で短納期で改修が可能なシステムであれば、環境変化に適合できるシステムライフサイクルを実現できます。

アジャイル開発導入時の注意点

 ウォーターフォールモデルが様々な問題点を含んでいながら未だに使用されている要因のひとつに、契約形態の問題があります。ウォータフォールモデルであれば要求定義が承認されたあとに要件が膨らむことはないので、その時点での工数見積に従って一括請負契約を結ぶことが可能です。しかし、スコープの変化をある程度許容するアジャイル開発では、見積もった工数が膨らんだ場合の負担に関しての調整など、それまでの契約形態とは異なる方策が必要になることが多いのです。

 また、開発に参加するメンバーにも今までとは異なる考え方が求められます。ウォーターフォールモデルでは工程ごとに担当レベルが決められており、プロジェクト参加者が担う役割は固定的で、自分の役割のみを実施すれば問題ない構造であったといえます。例えば、実装者は設計書のとおりにコードを実装することだけに責任を持てばよく、その設計がいかなる要求や分析から導かれたものかを考える必要はありません。しかし、アジャイル開発では1人がなるべくたくさんの役割を担うことが求められます。なぜなら、短期間にユーザーの要望に応えたソフトウェアを提供することが目的であるため、役割ごとに担当者が分かれてしまうことによって起こる、情報の伝達のための文書化などの負荷や、その過程で生じる情報のロスを避ける必要があるからです。アジャイル開発の効果を高めるには、1人で何役もこなせる開発者の比率を高めることが重要となりますが、優秀な人材を集めることはいずれの組織でも現実には難しい面があり、アジャイル開発の導入に対する障害になることがあります。

 さらに、アジャイルでは仕様の変更を許容するということが前提ですが、担当者の要望にあわせて何度も修正を行うと、場当たり的なシステムになってしまう恐れがあります。そのため、システム開発を開始する前に、システムの導入の目的であるビジネスゴールを検討した上で、概念モデルなどを用いてプロジェクト全体像を捉えてから各イテレーションの実装に入ることが重要になります。

 最後に、要求や作業の優先順位にも重要な点があります。各イテレーションでの計画時にはタスクとして、新規に機能を作成する要求とすでに作成した機能に対する変更要求が存在します。開発者のリソースは限られているため、優先順位をつけてタスクを管理することになりますが、もし手の付けやすい簡単なものから順に片付けていくような管理を行った場合には、計画していたゴールにたどり着く前に予算を使い果たす恐れがあります。各タスクの「緊急性」、「重要度」という観点からしっかりと優先度を評価して作業順序を決定し、ユーザーを含めプロジェクト関係者での合意を形成することがアジャイル開発成功のためには不可欠です。

Keep up with ZDNet Japan
ZDNet JapanはFacebookページTwitterRSSNewsletter(メールマガジン)でも情報を配信しています。また、現在閲覧中の記事は、画面下部の「Meebo Bar」を通じてソーシャルメディアで共有できます。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

特集

CIO

モバイル

セキュリティ

スペシャル

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNet Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]