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

   続きを読むには・・・


この記事の著者

石橋 良造

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

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


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

もっと見る
開発テーマを中断できないとは 新規事業・新商品を生み出す技術戦略(その43)

        今回は「開発テーマを中断できない問題への対策」というタイトルで記事を進めます。  ...

        今回は「開発テーマを中断できない問題への対策」というタイトルで記事を進めます。  ...


素材の市場開発とは

 素材の市場開発においては、既存の製品に市場喚起可能な商品価値を見出さなければなりません。その為に商品アイデアを考え出し、より価値ある商品に仕上げていくこ...

 素材の市場開発においては、既存の製品に市場喚起可能な商品価値を見出さなければなりません。その為に商品アイデアを考え出し、より価値ある商品に仕上げていくこ...


視覚 普通の組織をイノベーティブにする処方箋 (その156)

  今回も前回に引き続き、視覚を活用して創造性を高め、イノベーションを起こす能力を強化する方法について考えてみたいと思います。 &nbs...

  今回も前回に引き続き、視覚を活用して創造性を高め、イノベーションを起こす能力を強化する方法について考えてみたいと思います。 &nbs...


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

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

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

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


技術人材が目指す第3のキャリアとは

1.R&Dの現場に存在する2つのラダー    私は、イノベーションを「価値の創造と具現化」として定義していますが、もう少し突っ込んで...

1.R&Dの現場に存在する2つのラダー    私は、イノベーションを「価値の創造と具現化」として定義していますが、もう少し突っ込んで...


開発部門の管理職が学ぶべきこととは

  今回は、新任の開発課長が学ぶべきこと、課長就任前に3週間で準備をすべきこと、さらには課長就任後に取り組むべきことについて解説します。 &...

  今回は、新任の開発課長が学ぶべきこと、課長就任前に3週間で準備をすべきこと、さらには課長就任後に取り組むべきことについて解説します。 &...