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

   続きを読むには・・・


この記事の著者

石橋 良造

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

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


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

もっと見る
原因、複数の結果 普通の組織をイノベーティブにする処方箋 (その73)

 前々回から時系列や物理量で整理した知識を、更にそれらの関係性を考え整理・拡大することについて解説をしています。今回は「原因と結果」の2つ目の類型の「...

 前々回から時系列や物理量で整理した知識を、更にそれらの関係性を考え整理・拡大することについて解説をしています。今回は「原因と結果」の2つ目の類型の「...


人材育成の注意点 技術人材育成の進め方(その3)

       人口減少による人手不足、既存製品のコモディティ化、新技術の導入などに対応していくために、企業が...

       人口減少による人手不足、既存製品のコモディティ化、新技術の導入などに対応していくために、企業が...


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

  【目次】   【この連載の前回:普通の組織をイノベーティブにする処方箋 (その173)へのリンク】 前回まで自分が生物...

  【目次】   【この連載の前回:普通の組織をイノベーティブにする処方箋 (その173)へのリンク】 前回まで自分が生物...


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

もっと見る
設計改善研究会の成果 伸びる金型メーカーの秘訣 (その39)

        今回、紹介する機械装置メーカーは、株式会社 K製作所です。同社は、自動車メーカーや工作機械メ...

        今回、紹介する機械装置メーカーは、株式会社 K製作所です。同社は、自動車メーカーや工作機械メ...


設計部門の仕組み構築(その1)

【設計部門の仕組み構築 連載目次】 1. 設計部門の仕組み構築 2. 設計部門の仕組み構築(解決すべき根本原因) 3. 設計部門の仕組み構築(具...

【設計部門の仕組み構築 連載目次】 1. 設計部門の仕組み構築 2. 設計部門の仕組み構築(解決すべき根本原因) 3. 設計部門の仕組み構築(具...


擦り合わせ型開発と組み合わせ型開発とは

   「擦り合わせ型開発」という言葉や考え方は、東京大学の藤本隆宏教授が著書「能力構築競争」(中公新書)などで示したものです。マスコミなどでは...

   「擦り合わせ型開発」という言葉や考え方は、東京大学の藤本隆宏教授が著書「能力構築競争」(中公新書)などで示したものです。マスコミなどでは...