« 要件定義の疑問 | トップページ | ソフトウェア開発の諸問題はソフトウェアで解決する »

2009/09/23

アジャイル開発のFAQ

アジャイル開発のFAQについてメモ。

【1】アジャイル開発のような繰り返し型開発は、作業やリソースの重複が多くて生産性が低いのではないですか?

【回答】最初のイテレーションは試行錯誤しがちですが、イテレーションをこなすたびに慣れていき、生産性は上がっています。

特にSW開発は常に新技術を取り入れているので、開発者の学習曲線を考慮する必要があります。
アジャイル開発では、開発者の成長を意識的に支援するプラクティスが含まれています。

例えば、イテレーション毎にふりかえりMTを開いてプロセス改善する意識を開発者に植え付けますし、ペアプログラミングで開発者と技術や設計思想を共有するプラクティスもあります。

特に、プロジェクトファシリテーションでは、開発者の成長を促進するプラクティスが多々あるので参考にしてみてはいかがでしょうか?


【2】開発を繰り返すから、コストが高いのでは?

【回答】最初のイテレーションはコストは高いですが、トータルのコストはWF型開発よりも減るはずです。

1,2回目のイテレーションでは、実現できる機能も少なく、開発者も開発よりもリリース作業に手間取って、試行錯誤するので、コストはかかります。
しかし、イテレーションをこなすたびに、リリースのリハーサルを何度もしているので、リリース作業よりも開発に専念でき、開発者もシステム設計や業務に慣れていくので、後工程ほど生産性も上がります。

しかし、WF型開発の場合、仕様変更やリスク対処などの手戻り作業に工数を取られて、後工程ほど本来の作業に混乱が生じがちです。
そして、最後の一発リリース作業でいろんな問題が発見されると大きなコストがかかります。
更には、リリース後の不具合修正や改善要望が膨大に来た場合、更にコストは増えます。

アジャイル開発では、イテレーション単位に開発するため、顧客のフィードバックや障害修正を次のイテレーションで解決する方向へ進めるので、リスクを早期に対処する余地があるのです。


【3】アジャイル開発のような短期間の繰り返し型開発は、何でも早くリリースするから、品質が悪いのではないですか?

【回答】アジャイル開発と言っても、品質管理に奇策はありません。
InfoQ: James Shore氏「アジャイルの衰退と凋落」のように、戦略のない単なる繰り返し型開発は、本来のアジャイル開発ではないのです。
リリースする時点で品質を確保できてなければ、リリース後に山のようなクレームがやってきます。

また、アジャイル開発でもXPは、テスト駆動開発や継続的インテグレーションのように、コードラインの品質管理について、従来の開発にはない観点をもたらしています。

【注意】
アジャイル開発での品質管理は、上記の回答では不十分で、まだ弱点があるように思う。
従来の開発スタイルに比べて、その優位性を明示できていないように思う。
そこに、RedmineやTestLink、Mercurialなどのツールでアジャイル開発を補強できる余地がある。

|

« 要件定義の疑問 | トップページ | ソフトウェア開発の諸問題はソフトウェアで解決する »

プロジェクトマネジメント」カテゴリの記事

Redmine」カテゴリの記事

ソフトウェア工学」カテゴリの記事

TestLink」カテゴリの記事

プロジェクトファシリテーション」カテゴリの記事

廃止Mercurial」カテゴリの記事

構成管理・Git」カテゴリの記事

Agile」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: アジャイル開発のFAQ:

« 要件定義の疑問 | トップページ | ソフトウェア開発の諸問題はソフトウェアで解決する »