[記事紹介] ZDNet Japan ~ ソフトウェアの新たな開発手法、「アジャイル開発」って?
TDD からは離れますが、アジャイルソフトウェア開発について解説した記事を紹介します。著者の一橋氏は、複数のアジャイル開発プロジェクトを成功させた経験を持っています。TDD はアジャイル開発のプラクティスのひとつと位置づけられることが多いので、 参考になると思います。
ZDNet Japan: 今さら人に聞けない IT トピック - ソフトウェアの新たな開発手法、「アジャイル開発」って?
2006年9月29日
一橋範哉 (ウルシステムズ)ソフトウェア開発の新たな手法としてアジャイル開発が紹介されてから数年が経過し、実プロジェクトへの適用事例を目にすることが多くなってきました。アジャイル (agile) とは、「俊敏な」「機敏な」という意味ですが、「ペアプログラミング」「テストファースト」のようなアジャイル開発手法の一部のプラクティスがそのすべてであるかのように言われることがあります。ここでは改めてアジャイル開発の基本的な考え方を整理していきたいと思います。
( p.3 )
アジャイル開発とは、必要最低限のことをシンプルにムダなく実施して良いソフトウェアを開発することであり、それを実現するための開発手法には様々なものがあります。2001年2月にアジャイル開発の分野で著名な17名の開発方法論者が集まり、彼らが提唱する個々の方法論の重要な部分を「アジャイルソフトウェア開発宣言」としてまとめ、アジャイル開発の価値と原則を定義しました。
すなわち、いくつものアジャイルソフトウェア開発手法が提案され実践されてきていますが、それらをひとくくりにしてアジャイルソフトウェア開発とは何かと言えば、アジャイルソフトウェア開発宣言の 4つの価値(英語) と 12の原則(英語) に従っている開発プロジェクトのことです。
※ 4つの価値と 12の原則の日本語訳は、たとえばこちらに。 ⇒ [Think IT] JAVA開発手法入門 - 第4回: アジャイルソフトウェア開発
記事の 2ページ目に「アジャイル型 (反復型) 開発プロセス」という図が載っています。一見すると、アジャイル開発 = 反復型開発 であると言っているように思えますが、アジャイルソフトウェア開発宣言の価値と原則に従うという点で、従来の反復型開発とは大きく異なっていることに注意してください。
冒頭に書かれている、 アジャイルプラクティスを導入すること (また、それによってその開発プロセスのアジリティ(俊敏性)を高めること) がアジャイルソフトウェア開発であるとは限らない、ということも大事なことです。極端な話、ウォーターフォールの実装工程に TDD を取り込んだとして、それをアジャイル開発と呼べるでしょうか。
ところで、この記事では触れられていないようですが、アジャイルソフトウェア開発では「顧客の負担が大きくなる」という特徴があります。イテレーションのたびに計画を作ったり、受け入れテストを実施したりと、開発期間を通して継続的にフィードバックを行う必要があるからです。私の経験からすると、アジャイル開発を成功させるための障害は、開発者から離れるほど大きくなるように思えます。開発者がプラクティスに慣れるよりもマネージャーのマネージメント手法の変革が、それよりも、経営陣の意識改革が、それよりもさらに、顧客の価値観の転換が、より難しいように感じています。
一橋氏が成功させたプロジェクトの例が下記の記事に載っていますが、そこではオンサイト顧客としてユーザー部門のトップに参加してもらった話が出てきます。このように、スコープと納期を柔軟に変更することの出来る権限と業務知識を持った人材に、顧客側から参加してもらわないと上手くいかないのでしょうね。
ITpro: 要件未定でも納期は厳守 “アジャイル開発”で乗り切る
2009/07/15東邦チタニウムは、要件を固めきれないが納期は厳守というプロジェクトをアジャイル開発手法を使って乗り切った。アジャイルは短い開発期間を繰り返し、要件を決めながら機能を実装する手法。ユーザー部門のキーマンをチームに引き込んだり、途中でアジャイル開発向きでない開発者を交代させたりして、プロジェクトを完遂した。
このほかにも、 アジャイル開発についての文章は数多く Web 上にあります。 次のブログページが参考になるでしょう。
・ Publickey: アジャイルソフトウェア開発 ~ 基本情報と入門記事などのまとめ (2009年5月13日)
| 固定リンク
« [コラム] [VS2010] 新機能 Generate From Usage (使用法から生成) の使い方 Step by Step | トップページ | [記事紹介] JavaScript の単体テストツール、 JsUnit と QUnit »
「記事紹介」カテゴリの記事
- [記事紹介] CodeZine ~ C#で始めるテスト駆動開発 第4回/第5回(2012.07.10)
- [記事紹介] CodeZine ~ C#で始めるテスト駆動開発 第2回/第3回(2012.04.13)
- [記事紹介] MSDN マガジンの TDD 関連記事(2011.12.17)
- [記事紹介] CodeZine ~ C#で始めるテスト駆動開発(2011.12.12)
- [記事紹介] Visual Studio のインテリセンスって、テストファースト中には邪魔だよね(2011.11.01)
この記事へのコメントは終了しました。
コメント