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

   続きを読むには・・・


この記事の著者

石橋 良造

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

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


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

もっと見る
自社のコア技術の発信 普通の組織をイノベーティブにする処方箋 (その31)

 今回も前回に引き続き、「その1:自社のコア技術の補完技術」を探す方法としての自社のコア技術の発信について、解説をしたいと思います。 ◆関連解説『技術マ...

 今回も前回に引き続き、「その1:自社のコア技術の補完技術」を探す方法としての自社のコア技術の発信について、解説をしたいと思います。 ◆関連解説『技術マ...


開発初期の戦略には言語化することが大切 新規事業・新商品を生み出す技術戦略(その5)

         「 新規事業・新商品を開発するにあたって、絶対に『戦略』が必要です 」とお話しす...

         「 新規事業・新商品を開発するにあたって、絶対に『戦略』が必要です 」とお話しす...


「潜在ニーズを先取りできる社員を育てるには?」~技術企業の高収益化:実践的な技術戦略の立て方(その37)

【目次】 ▼さらに深く学ぶなら!「技術マネジメント」に関するセミナーはこちら! ▼さらに幅広く学ぶなら!「分野別のカリキュラム」に...

【目次】 ▼さらに深く学ぶなら!「技術マネジメント」に関するセミナーはこちら! ▼さらに幅広く学ぶなら!「分野別のカリキュラム」に...


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

もっと見る
研究開発の進め方とは

     1. 研究・開発の流れ  私の行っている技術分野では以下のような流れで商品化されます。 材料研究 ...

     1. 研究・開発の流れ  私の行っている技術分野では以下のような流れで商品化されます。 材料研究 ...


コーポレート研究の課題とは

1. コーポレート研究への期待  近年、ものづくり企業においてコーポレート研究に対する期待が高まっています。そのなかで、新たにコーポレート研究組織を...

1. コーポレート研究への期待  近年、ものづくり企業においてコーポレート研究に対する期待が高まっています。そのなかで、新たにコーポレート研究組織を...


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

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

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