進捗管理可能なソフト開発計画 プロジェクト管理の仕組み (その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:機能によっては結合テストを実施するまでに待ちが発生しているを考察します。
 
 

   続きを読むには・・・


この記事の著者

石橋 良造

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

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


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

もっと見る
実践!技術マネジメント:7つのプロセスと35のチェックポイント

 技術開発マネジメントの手法で、筆者が実践してきた主なものをチャート化すると図1のようになり、マーケティング戦略、発想法(TRIZ)、意思決定法(KT法、...

 技術開発マネジメントの手法で、筆者が実践してきた主なものをチャート化すると図1のようになり、マーケティング戦略、発想法(TRIZ)、意思決定法(KT法、...


イノベーションの創出 普通の組織をイノベーティブにする処方箋 (その124)

  今回も「切り取った知識の重要部分を発想するフレームワークを使って、イノベーションを発想する」にもとづき、日々の活動の中でどうイノベーシ...

  今回も「切り取った知識の重要部分を発想するフレームワークを使って、イノベーションを発想する」にもとづき、日々の活動の中でどうイノベーシ...


腹落ちする戦略への近道とは 新規事業・新商品を生み出す技術戦略(その58)

◆ ありたい姿は自分ごとにする 1. 腹落ちしない戦略  事業戦略や技術戦略のコンサルティングを行う中で次のようなケースに出会います。  時間を...

◆ ありたい姿は自分ごとにする 1. 腹落ちしない戦略  事業戦略や技術戦略のコンサルティングを行う中で次のようなケースに出会います。  時間を...


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

もっと見る
設計部門の課題と原因分析(その2)

【設計部門の課題と原因分析 連載目次】 1. 設計部門の現状を正確に特定する 2. 課題分析と課題の根本原因除去 3. 設計部門用に用意したコン...

【設計部門の課題と原因分析 連載目次】 1. 設計部門の現状を正確に特定する 2. 課題分析と課題の根本原因除去 3. 設計部門用に用意したコン...


設計部門と組織政治の影響(その2)

 前回のその1に続いて解説します。   1. 政治的要因のリストアップ    設計部門と組織政治の影響を考察する際に、最初にや...

 前回のその1に続いて解説します。   1. 政治的要因のリストアップ    設計部門と組織政治の影響を考察する際に、最初にや...


‐企業内に発生している問題点を徹底的に追求 ‐  製品・技術開発力強化策の事例(その3)

 前回の事例その2に続いて解説します。企業内では解決が容易でない様々な問題が生じています。しかし、これらの問題解決に取り組まない限り、競争に勝つことが出来...

 前回の事例その2に続いて解説します。企業内では解決が容易でない様々な問題が生じています。しかし、これらの問題解決に取り組まない限り、競争に勝つことが出来...