進捗管理可能なソフト開発計画 プロジェクト管理の仕組み (その6)

更新日

投稿日

 
 製品機能に対するソフトウェアの各モジュールが実装すべき処理(内部機能)が、前回までで明確になりましたが、現在のソフト開発は既存ソフトウェアの流用がほとんどですので、その対応も考えておく必要があります。一連の分析でモジュールが実装すべき内部機能(処理)が明らかになっているので、流用が主な開発であっても既存モジュールに対してどのような修正を行う必要があるのかは明らかです。この方法をとっていれば、流用中心であっても、新規作成の場合であっても、同じ仕組みで対応することができます。
 
 そして、モジュールごとの必要な処理が明確になるということは、具体的な開発作業が明確になることを意味します。つまり、製品開発に必要な 作業(WBS) を作成することができ、また、作業見積もりも可能になるということです。これが、下記に再掲載した図33「スケジュールが作成される過程」のように、外部仕様、ソフト内部構造(モジュール)、必要作業(WBS)と逐次明確になっていき、見積もりができるようになるということです。全体の流れを理解していただけたでしょうか。
 
                                              R&D
     図33. スケジュールが作成される過程
 
 スケジュールが作成される過程でも示しているように、進捗管理に適した開発スケジュールを作成することがゴールなのですが、ソフトウェア開発の場合、スケジュールにするにはさらに工夫が必要です。よく見かけるソフトウェアの開発スケジュールにおける問題を確認して、それからどのような工夫が必要なのかを解説したいと思います。
 
  R&D
                  図35. よくあるソフトウェア開発スケジュール
 
 図35は、よく見かけるソフトウェア開発スケジュールの例です。このスケジュールでは、次のような問題を抱えています。
 
   a. 機能ごとに開発工程別に作業(タスク)をブレークダウンしている
   b. 機能によっては結合テストを実施するまでに待ちが発生している
   c. システムテストも個別機能の開発作業の一部となっている
 
 問題の本質は、スケジュールと実際のソフト開発作業とが一致していないことです。そのために、このようなスケジュールではソフト開発の進捗を確認することができません。良く聞く、「ソフト開発の進捗がわからない」「ソフト開発は突然遅れが発生する」などの原因のひとつになっています。
 
 問題 (a) は実際の開発作業とスケジュールが一致していない代表的な現象です。実際の開発現場では、基本設計、詳細設計、コーディング、単体テスト、結合テスト、システムテストという、いわゆるウォーターフォール・スタイルでソフト開発が進むことは、ほとんどないはずです。現実のソフト開発は、コーディングをしているときに設計の不備に気づき設計を変更したり、単体テスト実施中ににロジック誤りに気づいて詳細設計とコーディングを修正したり、結合テストの結果で必要な機能が抜けていることがわかり基本設計からやり直したり、ということが起きています。
 
 もし、図35 のようなスケジュールに沿って機能ごとにウォーターフォール・スタイルでソフト開発を進めたとしても、機能1の単体テストを終了して、機能2の詳細設計を行っているときに機能1の詳細設計ミスに気づいたり、機能3のコーディング中に機能1とのインタフェースの不備がわかり機能1の基本設計からやり直しが必要になったり、というようなことが起きてしまいます。機能ごとに完全な設計を行うことは非常に困難なのです。
 
 つまり、図35 のようなスケジュールを立てても、ソフトウェアは機能ごとに完成品を作れるわけでもなく、機能ごとにウォーターフォール型の開発ができるわけでもなく、進捗管理のための作業計画になっていないのです。ソフト開発メンバー全員に毎日進捗をヒアリングしてスケジュール通りに進んでいること確認しているのに、ある日突然、スケジュールにない作業が発生したり、何日も遅れていること...
 
 製品機能に対するソフトウェアの各モジュールが実装すべき処理(内部機能)が、前回までで明確になりましたが、現在のソフト開発は既存ソフトウェアの流用がほとんどですので、その対応も考えておく必要があります。一連の分析でモジュールが実装すべき内部機能(処理)が明らかになっているので、流用が主な開発であっても既存モジュールに対してどのような修正を行う必要があるのかは明らかです。この方法をとっていれば、流用中心であっても、新規作成の場合であっても、同じ仕組みで対応することができます。
 
 そして、モジュールごとの必要な処理が明確になるということは、具体的な開発作業が明確になることを意味します。つまり、製品開発に必要な 作業(WBS) を作成することができ、また、作業見積もりも可能になるということです。これが、下記に再掲載した図33「スケジュールが作成される過程」のように、外部仕様、ソフト内部構造(モジュール)、必要作業(WBS)と逐次明確になっていき、見積もりができるようになるということです。全体の流れを理解していただけたでしょうか。
 
                                              R&D
     図33. スケジュールが作成される過程
 
 スケジュールが作成される過程でも示しているように、進捗管理に適した開発スケジュールを作成することがゴールなのですが、ソフトウェア開発の場合、スケジュールにするにはさらに工夫が必要です。よく見かけるソフトウェアの開発スケジュールにおける問題を確認して、それからどのような工夫が必要なのかを解説したいと思います。
 
  R&D
                  図35. よくあるソフトウェア開発スケジュール
 
 図35は、よく見かけるソフトウェア開発スケジュールの例です。このスケジュールでは、次のような問題を抱えています。
 
   a. 機能ごとに開発工程別に作業(タスク)をブレークダウンしている
   b. 機能によっては結合テストを実施するまでに待ちが発生している
   c. システムテストも個別機能の開発作業の一部となっている
 
 問題の本質は、スケジュールと実際のソフト開発作業とが一致していないことです。そのために、このようなスケジュールではソフト開発の進捗を確認することができません。良く聞く、「ソフト開発の進捗がわからない」「ソフト開発は突然遅れが発生する」などの原因のひとつになっています。
 
 問題 (a) は実際の開発作業とスケジュールが一致していない代表的な現象です。実際の開発現場では、基本設計、詳細設計、コーディング、単体テスト、結合テスト、システムテストという、いわゆるウォーターフォール・スタイルでソフト開発が進むことは、ほとんどないはずです。現実のソフト開発は、コーディングをしているときに設計の不備に気づき設計を変更したり、単体テスト実施中ににロジック誤りに気づいて詳細設計とコーディングを修正したり、結合テストの結果で必要な機能が抜けていることがわかり基本設計からやり直したり、ということが起きています。
 
 もし、図35 のようなスケジュールに沿って機能ごとにウォーターフォール・スタイルでソフト開発を進めたとしても、機能1の単体テストを終了して、機能2の詳細設計を行っているときに機能1の詳細設計ミスに気づいたり、機能3のコーディング中に機能1とのインタフェースの不備がわかり機能1の基本設計からやり直しが必要になったり、というようなことが起きてしまいます。機能ごとに完全な設計を行うことは非常に困難なのです。
 
 つまり、図35 のようなスケジュールを立てても、ソフトウェアは機能ごとに完成品を作れるわけでもなく、機能ごとにウォーターフォール型の開発ができるわけでもなく、進捗管理のための作業計画になっていないのです。ソフト開発メンバー全員に毎日進捗をヒアリングしてスケジュール通りに進んでいること確認しているのに、ある日突然、スケジュールにない作業が発生したり、何日も遅れていることが発覚したりするのはなぜなんだというプロジェクトリーダーの嘆きは、そもそもスケジュールが開発作業の実態と合っていないため、進捗管理の基準として機能しないことが原因のひとつなのです。
 
 次回は、上記の問題b:機能によっては結合テストを実施するまでに待ちが発生しているを考察します。
 
 

   続きを読むには・・・


この記事の著者

石橋 良造

組織のしくみと個人の意識を同時に改革・改善することで、パフォーマンス・エクセレンスを追求し、実現する開発組織に変えます!

組織のしくみと個人の意識を同時に改革・改善することで、パフォーマンス・エクセレンスを追求し、実現する開発組織に変えます!


「技術マネジメント総合」の他のキーワード解説記事

もっと見る
技術戦略 研究テーマの多様な情報源(その37)

     前回は、アイデアを創出する活動として『隣接可能性』を説明しました。それでは、隣接可能性で創出した『粗いアイデア』をど...

     前回は、アイデアを創出する活動として『隣接可能性』を説明しました。それでは、隣接可能性で創出した『粗いアイデア』をど...


ミスは設計で防げるか?〜ヒューマンエラーと機械設計の交差点〜

   【目次】 製造現場や製品使用の場面で発生する事故や不具合。その原因をたどっていくと、多くは「人のミス」、...

   【目次】 製造現場や製品使用の場面で発生する事故や不具合。その原因をたどっていくと、多くは「人のミス」、...


経済に関する5つのフレームワーク 普通の組織をイノベーティブにする処方箋 (その39)

        この連載ではマクロ環境分析の解説をしていますが、今回は、PESTEL(Political:政...

        この連載ではマクロ環境分析の解説をしていますが、今回は、PESTEL(Political:政...


「技術マネジメント総合」の活用事例

もっと見る
マトリクス体制での品質保証2 プロジェクト管理の仕組み (その31)

 前回のマトリクス体制での品質保証1に続いて解説します。品質計画は、製品開発に必要となる手順やリソースが誰によっていつ適用されるかを明確にした個別製品の開...

 前回のマトリクス体制での品質保証1に続いて解説します。品質計画は、製品開発に必要となる手順やリソースが誰によっていつ適用されるかを明確にした個別製品の開...


進捗管理の精度を上げる:第1回 プロジェクト管理の仕組み (その13)

 前回は進捗管理の基本的な考え方を紹介しました。今回は、この考え方にしたがってどのような方法で実際に進捗を把握できるのかを紹介したいと思います。具体的な話...

 前回は進捗管理の基本的な考え方を紹介しました。今回は、この考え方にしたがってどのような方法で実際に進捗を把握できるのかを紹介したいと思います。具体的な話...


‐技能と技術の融合化によるITを応用した技術開発‐  製品・技術開発力強化策の事例(その4)

 前回の事例その3に続いて解説します。ITの普及と共に技術者や技能者の質的内容が大きく変化しつつあります。今まで何回もの練習と経験を積む必要性が高かった業...

 前回の事例その3に続いて解説します。ITの普及と共に技術者や技能者の質的内容が大きく変化しつつあります。今まで何回もの練習と経験を積む必要性が高かった業...