「ソフトウェア開発プロジェクト成功の秘訣は反復型にあり」:RUP創始者が語る

藤本京子(CNET Japan編集部)2003年07月10日 19時36分

 ソフトウェア開発プロジェクトを成功させるにはどのようなアプローチで進めるとよいのか。東京ビックサイトにて開催中のソフトウェア開発環境展で10日、米IBMソフトウェアグループのラショナルブランドサービスバイスプレジデント、Walker Royce氏がその秘訣を語った。

 Royce氏は、反復型開発プロセスの代表ともいえるRUP(Rational Unified Process)の創設者である。古くからの開発モデルとして知られるウォーターフォールアプローチを提唱したWinston Royce氏の息子でもある同氏は、この業界でのサラブレッドともいわれているが、RUPは「ウォーターフォールなど、従来のプロセスの失敗例で学んだ教訓から生まれたもの」だと語る。

 これまでの開発プロセスは「プロジェクトの最初から多くの要求事項を決めすぎていた」とRoyce氏はいう。ウォーターフォール開発モデルをはじめとする従来の開発方法で重視されていたのは、企画の段階から詳細まで定義してしまうこと。確かに最初にすべてを決めるとあとはそれに従うだけなので、プロジェクトマネージャーの仕事は楽になる。しかしRoyce氏は、「ソフトウェア開発には未知の部分が多く、最終的な成果物は想像で描くしかないのに、すべてをはじめに決めるのは無理だ」という。「ウォーターフォールではプロジェクト期間の3分の2程度まで進んだ段階ではじめてインテグレーションが行われることが多いが、インテグレーションの段階まできてアーキテクチャに問題があるとわかっても、もう後戻りもできず、管理しきれないひどいシステムができあがってしまう」とRoyce氏。

米IBMソフトウェアグループ、ラショナルブランドサービスバイスプレジデント、Walker Royce氏

 その結果、「このような開発プロセスで行われたプロジェクトの成功率は20%以下」だと同氏は指摘する。「最初に決めておくことは全体の20%程度でいい。残りの80%はプロジェクトを進めながら決めればいいことだ」(Royce氏)

 ウォーターフォールアプローチで数多くの失敗例を見てきたRoyce氏だが、いっぽうの成功例を分析したところ、エンジニアチームが反復的なアプローチを取っていたことに気づく。そこで開発工程全体において反復型アプローチを採用すればいいということで新しいプロセスが生まれた。

 RUPのような反復型プロセスでは、最初にアーキテクチャやフレームワークといった全体像を決め、コンポーネントごとにインテグレーションやテストを繰り返して前進と後退を続けつつ、最終目的地に近づくといった手法を取る。そしてここで大切なのが、「顧客とオープンで正直なコミュニケーションをとること」だとRoyce氏はいう。「開発工程のひとつひとつにおいて確認を取りつつプロジェクトを進めると、最初の段階では見えにくいことだらけのソフトウェアでも徐々に最終目的地が見えてくる。成果が上がらないとわかれば、その時点でプロジェクトを中止することだってできるのだから」

 いっぽうで、RUPを使ってプロジェクトが失敗することもある。Royce氏はRUPを「プロセスのスーパーセット」だといい、これをすべて使う必要はないという。「製品のリリースが近づけば近づくほど多くのプロセスが必要となるが、はじめから多くのプロセスを使うことはない」とRoyce氏。このように、多くのプロセスを採用して失敗する例の多くは、「表面的には反復型アプローチを採用していても、実はウォーターフォールモデルの概念から抜け出せていないためだ」と同氏は指摘する。

 現在のソフトウェア開発は、「まだ半数以上がウォーターフォールのような従来型モデルか、反復型を推進していてもその概念は受け継いでいない状態」だという。だがRUPなど開発プロセスが浸透するにつれ、「徐々に反復型に移りつつある」という。そして「今後のわれわれのミッションは、さらなる開発工程の効率化と時間短縮を目指すことだ。RationalがIBMに買収されたことは大変意味のあることで、Rationalの開発プロセスとIBMのソフトウェアを利用して、開発の最初の段階から半分以上のコンポーネントが用意されているという状況が可能となる」(Royce氏)と、最後は自社の宣伝も忘れなかった。

CNET Japanの記事を毎朝メールでまとめ読み(無料)

-PR-企画特集

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