製品・ソリューション

ソフトウェア開発プロジェクトはなぜうまくいかないのか

~効果的なプロジェクトマネジメントの取り組みが成功の鍵~

導入

ソフトウェアの社会への影響力は増加の一途をたどっています。

いまやソフトウェアは、あらゆる機器や設備に組み込まれ、そしてそのほとんどがインターネットで接続され、誰もがいつでもどこでも便利に使える時代になっています。たとえば、以下のようなものです。
・ 政府や地方自治体、金融機関、航空会社、各企業にて利用されるシステム
・ 各家庭で使われる電気機器や自動車
・ 個人が所有するモバイル機器
AI(人工知能)や自動運転などの新しい技術も広がりを見せており、今後ますますソフトウェアが人々の生活に密接に関わってくることになるでしょう。

しかし、ソフトウェアが世の中のインフラに深く関わっているがゆえに、いったんシステムダウンや誤作動などの障害が発生すると、人々の生活や、場合によっては人命に関わることにも、大きな影響を与えてしまう可能性があります。銀行システムの統合ミス、証券システムや航空会社システムでの欠陥、携帯電話ソフトの不具合など、近年のニュースでも大きな話題となりました。

なぜソフトウェア開発プロジェクトは失敗するのか


失敗

日経コンピュータが2014年に行った調査によると、システム開発のプロジェクトでQCD(品質・コスト・納期)のすべてが成功するのは75%程度で、約25%は失敗してしまう実態があるとのこと。

なぜソフトウェア開発プロジェクトはうまくいかないのでしょうか?

それはソフトウェア開発をとりまく以下のような問題点に起因しています。

  • 不明確な要求、度重なる変更要求
    ソフトウェアは完成するまでユーザーの目に見えません。そのため、完成形を想像しながら開発を進めるため、プロジェクトの初期段階ではどのようなソフトウェアを作るべきかわからず、要求が曖昧で不明確なことが多々あります。

    また、ソフトウェアの成果物はプログラムコードという論理的な情報であり、物理的な製品や建築物等の作成とくらべて、プロジェクトの実施途中でも簡単に追加や修正がしやすいという特徴があります。

    不明確な要求のままプロジェクトを開始した結果、プロジェクト実施中にユーザーからの度重なる変更要求を受け入れざるをえなくなり、スケジュールや品質がコントロール不能となり、失敗を引き起こすプロジェクトが後を断ちません。

  • 大規模化、複雑化、短納期化
    ITが発展し、多用で高機能なものを市場が望んだ結果、求められるシステムの規模はますます大きく複雑になってきています。加えて、インターネットで世界中がつながり、開発環境が一般にも広まった現代では、ソフトウェア市場参入の敷居が下がり、スピード感のある開発を行うことがビジネスの成否を決める要因となってきました。

    複雑で大規模なシステムを市場にタイムリーに投入するという、難易度の高い開発が求められ、個人の能力や裁量に頼った開発方法だけでは立ち行かなくなってきました。

  • 納期遅延、予算超過
    上記のような問題から、プロジェクトがうまく進められず、納期遅延や予算超過を引き起こし、市場に不具合が流出してしまうことが発生しています。

では、どうすればうまくいくでしょうか?

プロジェクトを成功に導くためには


成功

ソフトウェア開発プロジェクトの問題の多くは、効果的なプロジェクトマネジメントが実施できなかったことに起因しています。

プロジェクトマネージャにより、適切な計画と制御を行うプロジェクトマネジメントが実施されれば、次の効果が期待できます。

  • スケジュールの確保
    WBS(Work Breakdown Structure:作業細分化構造)に基づく必要な作業の設定と、利用可能な資源を考慮に入れたスケジューリングを行い、ライフサイクルフェーズ毎に管理していくことで、ほぼ当初の予定どおり開発を完了することができます。

    もし要求の変更や要員の交替などの不測の事態が発生しても、影響を最小限にとどめることができます。

  • 品質の保証
    出荷する製品の品質を保証するためには、最終的な製品を評価するだけではなく、成果物を作成する途中の段階のプロセスを評価し、確実に品質が作り込まれていることを保証していくことが重要です。

    品質を確保するために必要な作業や対象となる成果物を特定し、品質基準や標準、評価方法、評価するタイミングを計画します。そして、基準を満たしているかをタイムリーに、かつ客観的に評価していくことで、プロセスの品質を保証します。

    また、品質の目標を定めて、定量的に実績を監視しながら、品質の予測と制御を行っていくことで、目標を達成する可能性を向上させます。

  • コストの抑制
    スケジュールの確保と品質の保証を行っていくことで、予定したコスト通りにプロジェクトを遂行していきます。また、想定外の事象=リスクの発生を事前に予想し、リスクの軽減策をとっていくことで、コストを抑制していきます。

  • 外注の適切な管理
    外注先への依存、いわゆる丸投げにより、蓋を空けてみたらプロジェクトが破綻していた、といったことがあります。そのようなことが起こらないように、適切な外注先の選定、合意、コントロールを行うことで、問題発生を防ぎます。

これらのプロジェクトマネジメントを個人の力量や裁量だけに頼らず、組織レベルで確実に実践していくためには、プロジェクトマネジメントを含む組織プロセス改善のベストプラクティスをまとめたプロセスモデルが参考になります。

自分たちのプロジェクトマネジメントのやり方=プロセスの問題点を見定め、見直し、実践し、組織に定着させていくのが、有効かつ効率的な方法になります。

そのプロセスモデルの代表的なものとして、CMMI(Capability Maturity Model Integration 能力成熟度モデル統合)があります。

CMMIのプロジェクトマネジメント

CMMIは、米国カーネギーメロン大学のソフトウェア工学研究所(SEI)が開発した、プロセスを改善するためのモデルで、世界中のソフトウェア開発を行う組織で適用され、組織レベルでのプロセス改善を行うデファクトスタンダードとなっています。

「開発のためのCMMI(CMMI-DEV)」は、ソフトウェア開発プロセスの改善に役立つベストプラクティスを集めた22個のプロセス領域で構成されます。各プロセス領域は、プロジェクトマネジメント、エンジニアリング、支援、プロセス管理といった4つのプロセス区分に分類されます。

プロジェクトマネジメントのプロセス領域は以下の7つがあり、プロジェクトの計画策定、監視、および制御に関連するプロジェクト管理活動を扱っています。

開発のためのCMMI(CMMI-DEV)のプロセス領域

プロジェクトマネジメント関連プロセス領域の目的と概要は以下になります。

  • プロジェクト計画策定(Project Planning)
    『プロジェクト計画策定』 (PP) の目的は、プロジェクトの活動を定義する計画を確立し保守することです。以下を扱います。
    • プロジェクトの属性や工数、費用などを見積もる
    • スケジュールや資源、利害関係者の関与などをプロジェクト計画として文書化し、その後の活動の基盤を作り、維持していく
    • 計画について関係者からコミットメントを得る

  • プロジェクトの監視と制御(Project Monitoring and Control)
    『プロジェクトの監視と制御』 (PMC) の目的は、プロジェクト実績が計画から著しく逸脱する場合に適切な是正処置をとることができるように、プロジェクトの進捗に関する把握手段を提供することです。以下を扱います。
    • プロジェクト計画に照らして進捗を監視する
    • 計画とのズレを是正していく

  • 供給者合意管理(Supplier Agreement Management)
    『供給者合意管理』 (SAM) の目的は、供給者からの成果物およびサービスの取得を管理することです。
    プロジェクトの顧客に納入する成果物やサービスを外部から調達する場合に、以下を行います。
    • その調達の種類や供給者を選定し、供給者との合意を確立する
    • 合意にもとづいて管理、受け入れ、納入を適切に行っていく

  • 要件管理(Requirements Management)
    『要件管理』 (REQM) の目的は、プロジェクトの成果物の要件および成果物構成要素の要件を管理すること、およびこれらの要件と、プロジェクトの計画および作業成果物との間の整合性を確保することです。以下を扱います。
    • 要件の提供者と共に要件を理解し、コミットメントを得る
    • 要件の変更を管理する
    • 要件と作業成果物の間の双方向の追跡可能性(トレーサビリティ)を維持し、整合性を保つ

  • 統合プロジェクト管理(Integrated Project Management)
    『統合プロジェクト管理』 (IPM) の目的は、「組織の標準プロセス群の集合」からテーラリングされる、統合され定義されたプロセスに従って、プロジェクトおよび直接の利害関係者の関与を確立し管理することです。以下を扱います。
    • 組織の標準プロセスや資産を利用してプロジェクトを管理する
    • プロジェクトの経験を組織へフィードバックする
    • プロジェクトの利害関係者間の活動を調整し、管理していく

  • リスク管理(Risk Management)
    『リスク管理』 (RSKM) の目的は、潜在的な問題が顕在化する前にその問題を特定すること、成果物またはプロジェクトの全期間にわたってリスク取り扱いの活動を計画し、開始することです。以下を扱います。
    • リスク管理の戦略を確立する
    • リスクを特定し分析する
    • リスクの軽減計画を策定して監視、履行する

  • 定量的プロジェクト管理(Quantitative Project Management)
    『定量的プロジェクト管理』 (QPM) の目的は、プロジェクトが確立した「品質およびプロセス実績の目標」を達成するために、プロジェクトを定量的に管理することです。以下を扱います。
    • 品質に関するプロジェクトの定量的な目標を確立する
    • その目標が達成されるように、プロジェクトのプロセスや尺度、分析技法を定義する
    • 目標が達成できそうかを統計や定量的な技法を用いて実績を監視する
    • 不足事項に対処するための根本原因を分析する

これらのプロセス領域に含まれるゴールやプラクティスと、自組織のプロジェクトマネジメントのプロセスを比較し、ギャップが見出される部分について改善し、実践していくことで、組織的に効果的なプロジェクトマネジメントが継続的に実践され、プロジェクトの成功率を向上させることが期待できるでしょう。

お問い合わせ

Copyright® DAIWA COMPUTER CO.,LTD. All Rights Reserved.

JASDAC証券コード:3816 CMMI Institute Partner CMMI V2.0 成熟度レベル5 ISO認証取得 プライバシーマーク付与認定取得