2013年9月28日土曜日

アジャイル開発とIT投資について

藤原です。
今回は、「アジャイル開発」をテーマに、関連するトピックとIT投資の観点から見た価値について述べたいと思います。


アジャイル開発とは
ソフトウェア開発において従来より広く採用されていたウォーターフォール型開発は、求められる全て機能の実装を最終的なゴールとして、「要件定義」「設計」「実装」「テスト」の流れを順序通りに進めるアプローチ(計画重視)であるのに対し、
アジャイル開発は、小さな機能レベルで動作するソフトウェアをリリースし、各種要件や環境変化に応じて、イテレーション(反復)による開発を繰り返すことで機能を成熟させていくアプローチ(変化対応重視)の開発手法です。

アジャイル開発は、ソフトウェア開発自体を円滑に実施することに着目するのではなく、可能な限り早い期間で動作可能な機能を提供し、環境変化にも対応すべく、機能を変化・拡充していくことで、開発されたソフトウェアがもたらす価値を最大化する点に着目する点が特徴と言えます。


アジャイル開発の現状
先日、MPFU(Microsoft Project Users Forum)主催のセミナー『アジャイル開発の現状と「プラクティス・リファレンスガイド」』に参加した際、アジャイル開発を取り巻く現状を伺いました。
紹介されていた内容をかいつまんで要約すると
  • 海外で多く普及されており、日本国内でも年々増加傾向にある
  • アジャイル開発の適用に関して親和性の高い領域
    • ビジネス要求が変化する領域
    • リスクが高い領域(市場/技術リスク)
    • 市場競争領域
  • 逆にチャレンジや創意工夫が必要(困難)な領域
    • 大規模開発
    • 分散拠点開発
    • 組織間をまたぐ開発チームによる開発
    • 組み込みシステム開発
  • アジャイル開発はW/F型開発に比べ、技術者の満足度(モチベーション)が高い
  • ジャイル開発の様々な事例と具体的な実践方法のリファレンスをまとめた「リファレンスガイド」がIPA/SECから発行されている

アジャイル開発は、多くの企業で採用・実践され、確実に普及していると言えます。
近年、ビジネス環境の変化に伴いスピードが求められる中、その有効性についても、開発者と利用者の双方から認識されていると考えられます。
ただ、依然として、基幹システム等の大規模なソフトウェア開発においては、実践する上での工夫が必要である点や、ベンダーとの業務委託等の契約スキーム等、検討すべき課題はあるのが現状のようです。


アジャイル開発と要求分析(ビジネスアナリシス)
「要件が曖昧だと開発が進められない」
従来のウォーターフォール型開発では、こうした要求定義の重要性が問われるケースが多く聞かれますが、アジャイル開発の場合はどうでしょうか?

アジャイル開発においても、同様に要求分析は重要と言えます。
イテレーションを繰り返す中で、実装されていく機能が、ビジネス上の目標を達成するための要求と整合が取れているか、常に要求分析を行う必要があります。

以前、本ブログでも紹介した要求分析に関する知識体系であるBABOK(Business Analysis Body of Knowledge)においても、アジャイル開発におけるビジネスアナリシス活動のプラクティスをまとめた拡張版「Agile Extension to the BABOK」が2013年7月に公開されました。

BABOKのアジャイル拡張版には、各種アジャイル手法(XP、Scrum、Kanban)におけるビジネスアナリシスの役割や責任、実務上のテクニック等がまとめられています。
#アジャイル拡張版の詳細は、また別の機会にご紹介したいと思います。

こうした動向からも、開発手法としてのアジャイル開発の普及、有効性に関する認識の高まりを感じることができます。


IT投資の観点から見たアジャイル開発の価値
IT投資の観点から、アジャイルによるソフトウェア開発は大きなメリットがあると言えます。私は、アジャイル開発の価値として、以下が挙げられると思っています。

  • 短期間で動作するソフトウェア(機能)をリリースすることで、投資対効果を早期に実現できる
  • イテレーションによって機能を変化・拡充することで、投資価値を最大化できる
  • ビジネス環境の変化に対応すべく、機能実装を通じて投資をコントロールできる

SaaS、PaaS等のクラウドサービスが成熟していく中、ソフトウェア開発自体の在り方も変化している現状からすれば、ビジネスをとりまく環境変化に柔軟に対応でき、投資効果を早期に実現可能な手法が普及するのは当然と言えるかもしれません。
ただ、開発するソフトウェア(機能)の安定稼働の実現、戦略目標達成に向けた価値を十分に発揮するまでに、どれだけイテレーションを繰り返すか、投資をかけるべきなのかについては判断が必要な部分と言えます。

アジャイル開発においても、ソフトウェアのライフサイクルを意識したIT投資管理が重要だと思います。



0 コメント:

コメントを投稿