派生開発プロセスの工夫(その7)

品質確保に効果のあった派生開発プロセスの工夫(その7)

掲題の派生開発プロセスに関する、シリーズ・エントリです。
派生開発の設計品質確保について問題意識を持たれている方は、ご一読頂けると幸いです。
レポートの要約、および背景については第一回を参照ください。

論述対象となるプロジェクト、および開発プロセスの特徴

・組込み系の社会インフラを担うミッションクリティカル・システム。

・信頼性・成熟性について高い品質が求められている。

・稼働直前の総合テストからプロジェクトを引き継ぎ。

・母体システムのドキュメントが不足、母体品質も悪い。

・論述対象の開発プロセスは、主にシステムの欠陥修正(改修)案件に焦点を当てている。

エントリ内容の目次

内容はかなり長くなるため、順を追って述べる。

まずはこのレポートの主旨について述べた後、一般的な派生開発の現状を俯瞰する。その後、派生開発プロセスの1つであるXDDPと、当方の開発プロセスの工夫についての概要を述べる。

時間のない場合は、ここまでの内容(1部 レポート・サマリー)だけでも、本論述の概要はつかめると考える。その次の2部から、詳細なレポート内容を述べていこうと考えている。

もちろん2部から読み始めても構わない。そちらのほうが、概要説明ではなく詳細な論述を行っているため、理解しやすい可能性がある。1部はサマリーのみであり、詳細情報は把握できないだろう。

(1)このレポートの概要と背景について
   ⇒記事はこちら

1部 レポート・サマリー------------
(2)派生開発を巡る現状
   ⇒Part1
   ⇒Part2

(3)XDDPでの問題提起と解決策の概要
   ⇒記事はこちら

(4)当方が遭遇した派生開発の問題と解決策の概要
   ⇒記事はこちら

2部 レポートの詳細--------------
(1)派生開発の課題とプロセス改善について
 1.派生開発の課題
   ⇒part1
   ⇒part2(今回の記事)
  
 2.派生開発のプラクティス、プロセス

(2)派生開発プロセスの内容
 序.品質確保に効果的な派生開発プロセス
 1.対処検討プロセス群
 2.開発プロセス群
 3.検証プロセス群

2部 (1)派生開発の課題とプロセス改善について

1.派生開発の課題(part2)

1.2 我々のプロジェクトで認識した派生開発の問題

我々の保守プロジェクトでも、前述した派生開発の特徴による問題を認識した。

まず、一般的な派生開発の特徴である、前述の1.~4.が当てはまった。この結果、部分理解の制約を抱えたまま、欠陥修正などの案件をこなすこととなった。

当該保守プロジェクトで採用している開発プロセスは、ウォーターフォール・モデルに従い、方式設計、基本設計、詳細設計、製造、単体テスト、結合テスト、総合テストを行い、各工程間では成果物のレビューを行うものである。前述した派生開発崩しの開発プロセスに該当する(図表1.2-1参照)。

・図表1.2-1 当初採用していた派生開発プロセス

hasei-05-sl06.png

よって、1人プロジェクトになったり、レビューをせずに対処を進めたりするようなことはなかった。

また、関連ドキュメントは変更差分を赤字で記載するルールとしていたため、変更前・変更後の動作差分を把握しやすく、新規開発崩しの問題点の2.に相当する問題は発生しなかった。

ただし、新規開発崩しの問題点の1.に相当する問題は発生した。ドキュメントの変更、例えばシーケンス図にメッセージを1つ追加することが、他の処理にどのように影響を与えるのかは、さらに下流工程に進み、詳細設計やソースコードの調査をしない限り把握することができなかった。

その結果、下流工程に進むにつれ上流工程で検討した内容の考慮漏れが見つかるなどし、手戻りが発生した。

これら当該プロジェクトで発生した問題について図表1.2-2にまとめる。
続きを読む

派生開発プロセスの工夫(その6)

品質確保に効果のあった派生開発プロセスの工夫(その6)

掲題の派生開発プロセスに関する、シリーズ・エントリです。
派生開発の設計品質確保について問題意識を持たれている方は、ご一読頂けると幸いです。
レポートの要約、および背景については第一回を参照ください。

論述対象となるプロジェクト、および開発プロセスの特徴

・組込み系の社会インフラを担うミッションクリティカル・システム。

・信頼性・成熟性について高い品質が求められている。

・稼働直前の総合テストからプロジェクトを引き継ぎ。

・母体システムのドキュメントが不足、母体品質も悪い。

・論述対象の開発プロセスは、主にシステムの欠陥修正(改修)案件に焦点を当てている。

エントリ内容の目次

内容はかなり長くなるため、順を追って述べる。

まずはこのレポートの主旨について述べた後、一般的な派生開発の現状を俯瞰する。その後、派生開発プロセスの1つであるXDDPと、当方の開発プロセスの工夫についての概要を述べる。

時間のない場合は、ここまでの内容(1部 レポート・サマリー)だけでも、本論述の概要はつかめると考える。その次の2部から、詳細なレポート内容を述べていこうと考えている。

もちろん2部から読み始めても構わない。そちらのほうが、概要説明ではなく詳細な論述を行っているため、理解しやすい可能性がある。1部はサマリーのみであり、詳細情報は把握できないだろう。

(1)このレポートの概要と背景について
   ⇒記事はこちら

1部 レポート・サマリー------------
(2)派生開発を巡る現状
   ⇒Part1
   ⇒Part2

(3)XDDPでの問題提起と解決策の概要
   ⇒記事はこちら

(4)当方が遭遇した派生開発の問題と解決策の概要
   ⇒記事はこちら

2部 レポートの詳細--------------
(1)派生開発の課題とプロセス改善について
 1.派生開発の課題
   ⇒今回の記事が該当
  
 2.派生開発のプラクティス、プロセス

(2)派生開発プロセスの内容
 序.品質確保に効果的な派生開発プロセス
 1.対処検討プロセス群
 2.開発プロセス群
 3.検証プロセス群

2部 (1)派生開発の課題とプロセス改善について

1.派生開発の課題(part1)

1.1 一般的な派生開発の課題

派生開発とは、母体システムへの機能追加・変更、欠陥是正を行うシステム開発を指す。

母体システムが存在しているという点で、新規開発とは異なる特徴を持っている。派生開発プロセスの1つであるXDDPを提唱する清水吉男氏によると、一般的に考えられる派生開発の特徴には、次のようなものがある。

・図表1.1-1 派生開発の特徴

  1. 別の担当者が開発したソースコードを読む必要がある
  2. ドキュメントが不足していることが多くソースコードの理解が難しい
  3. これまでの改修によって、当初の設計思想が崩れている
  4. 案件ごとの変更量は新規開発に比べて少ないため、開発期間が短い
  5. 変更量が少ないと1人プロジェクトになることがある
  6. 派生開発に適したプロセスが検討されていない(存在しない)

続きを読む

派生開発プロセスの工夫(その5)

品質確保に効果のあった派生開発プロセスの工夫(その5)

掲題の派生開発プロセスに関する、シリーズ・エントリです。
派生開発の設計品質確保について問題意識を持たれている方は、ご一読頂けると幸いです。
レポートの要約、および背景については第一回を参照ください。

論述対象となるプロジェクト、および開発プロセスの特徴

・組込み系の社会インフラを担うミッションクリティカル・システム。

・信頼性・成熟性について高い品質が求められている。

・稼働直前の総合テストからプロジェクトを引き継ぎ。

・母体システムのドキュメントが不足、母体品質も悪い。

・論述対象の開発プロセスは、主にシステムの欠陥修正(改修)案件に焦点を当てている。

エントリ内容の目次

内容はかなり長くなるため、順を追って述べる。

まずはこのレポートの主旨について述べた後、一般的な派生開発の現状を俯瞰する。その後、派生開発プロセスの1つであるXDDPと、当方の開発プロセスの工夫についての概要を述べる。

時間のない場合は、ここまでの内容(1部 レポート・サマリー)だけでも、本論述の概要はつかめると考える。その次の2部から、詳細なレポート内容を述べていこうと考えている。

もちろん2部から読み始めても構わない。そちらのほうが、概要説明ではなく詳細な論述を行っているため、理解しやすい可能性がある。1部はサマリーのみであり、詳細情報は把握できないだろう。

(1)このレポートの概要と背景について
   ⇒記事はこちら

1部 レポート・サマリー------------
(2)派生開発を巡る現状
   ⇒Part1
   ⇒Part2

(3)XDDPでの問題提起と解決策の概要
   ⇒記事はこちら

(4)当方が遭遇した派生開発の問題と解決策の概要
   ⇒本記事が該当

2部 レポートの詳細--------------
(5)レポート内容

(4)当方が遭遇した派生開発の問題と解決策の概要

前回は、派生開発プロセスの1つであるXDDPの概要を見てきた。

今回は当方が遭遇した派生開発プロジェクトにおける問題点と対処策の概要を見ていく。

ここで述べる内容は、まだXDDPの存在を知らなかった時点で行ったものである。

1.当該派生開発プロジェクトの特徴

以下のスライドでは、対象となる派生開発プロジェクトの概要と、引き継いだ母体システムの品質が悪い状況を述べている。

母体システムはドキュメント密度、レビュー密度、テスト項目密度などの品質管理指標が軒並み低かった。

また市販の静的解析ツールでソースコードの複雑度を測定したところ「保守不能」レベルの複雑度であることが判明した。

hasei-05-sl04.png
続きを読む

派生開発プロセスの工夫(その4)

品質確保に効果のあった派生開発プロセスの工夫(その4)

掲題の派生開発プロセスに関する、シリーズ・エントリです。
派生開発の設計品質確保について問題意識を持たれている方は、ご一読頂けると幸いです。
レポートの要約、および背景については第一回を参照ください。

論述対象となるプロジェクト、および開発プロセスの特徴

・組込み系の社会インフラを担うミッションクリティカル・システム。

・信頼性・成熟性について高い品質が求められている。

・稼働直前の総合テストからプロジェクトを引き継ぎ。

・母体システムのドキュメントが不足、母体品質も悪い。

・論述対象の開発プロセスは、主にシステムの欠陥修正(改修)案件に焦点を当てている。

エントリ内容の目次

内容はかなり長くなるため、順を追って述べる。

まずはこのレポートの主旨について述べた後、一般的な派生開発の現状を俯瞰する。その後、派生開発プロセスの1つであるXDDPと、当方の開発プロセスの工夫についての概要を述べる。

時間のない場合は、ここまでの内容(1部 レポート・サマリー)だけでも、本論述の概要はつかめると考える。その次の2部から、詳細なレポート内容を述べていこうと考えている。

もちろん2部から読み始めても構わない。そちらのほうが、概要説明ではなく詳細な論述を行っているため、理解しやすい可能性がある。1部はサマリーのみであり、詳細情報は把握できないだろう。

(1)このレポートの概要と背景について
   ⇒記事はこちら

1部 レポート・サマリー------------
(2)派生開発を巡る現状
   ⇒Part1
   ⇒Part2

(3)XDDPでの問題提起と解決策の概要
   ⇒本記事が該当

(4)当方が遭遇した派生開発の問題と解決策の概要

2部 レポートの詳細--------------
(5)レポート内容

(3)XDDPでの問題提起と解決策の概要

前回までに派生開発の技術面、プロジェクト面の特徴を見てきた。
その結果、開発期間が短い、品質が新規開発と比較して悪い、といったような状況が確認できた。

今回は、派生開発の1つであるXDDPでは、どのような問題点を認識し、どのような解決策を提案しているのかを概観する。なおXDDPの内容については当方の理解の範囲内で概説するため、詳細は異なっている部分もあると思う。この点は書籍等で確認をして頂きたいと考える。

※スライドをいくつか見ながら概説をする。スライドをまとめたものは、本エントリの末尾からダウンロード可能。

1.XDDPの概要

清水氏が提唱しているXDDPの概要。派生開発推進協議会のサイトを参照してもらえると、より詳細な情報が得られる。
派生開発推進協議会はこちらから

hasei-04-01.png

2.XDDPで想定する問題点

XDDPで想定する、現状の派生開発の問題・課題をリストアップする。

hasei-04-02.png

結果的に母体システムを十分に理解することができないため、母体への影響箇所の把握が漏れてしまう、ということが品質不良の根本原因だとしている。

次に、XDDPで想定している現状の派生開発プロセスには何があるのかを見ていこう。
続きを読む

派生開発プロセスの工夫(その3)

品質確保に効果のあった派生開発プロセスの工夫(その3)

掲題の派生開発プロセスに関する、シリーズ・エントリです。
派生開発の設計品質確保について問題意識を持たれている方は、ご一読頂けると幸いです。
レポートの要約、および背景については第一回を参照ください。

論述対象となるプロジェクト、および開発プロセスの特徴

・組込み系の社会インフラを担うミッションクリティカル・システム。

・信頼性・成熟性について高い品質が求められている。

・稼働直前の総合テストからプロジェクトを引き継ぎ。

・母体システムのドキュメントが不足、母体品質も悪い。

・論述対象の開発プロセスは、主にシステムの欠陥修正(改修)案件に焦点を当てている。

エントリ内容の目次

内容はかなり長くなるため、順を追って述べる。

まずはこのレポートの主旨について述べた後、一般的な派生開発の現状を俯瞰する。その後、派生開発プロセスの1つであるXDDPと、当方の開発プロセスの工夫についての概要を述べる。

時間のない場合は、ここまでの内容(1部 レポート・サマリー)だけでも、本論述の概要はつかめると考える。その次の2部から、詳細なレポート内容を述べていこうと考えている。

もちろん2部から読み始めても構わない。そちらのほうが、概要説明ではなく詳細な論述を行っているため、理解しやすい可能性がある。1部はサマリーのみであり、詳細情報は把握できないだろう。

(1)このレポートの概要と背景について
   ⇒記事はこちら

1部 レポート・サマリー------------
(2)派生開発を巡る現状
   ⇒Part1
   ⇒Part2(本記事が該当)

(3)XDDPでの問題提起と解決策の概要

(4)当方が遭遇した派生開発の問題と解決策の概要

2部 レポートの詳細--------------
(5)レポート内容

(2)派生開発を巡る状況(part2)

前回は、派生開発がプロジェクト全体でどのくらいを占めているのか、また派生開発の開発期間についての特徴を、新規開発プロジェクトと比較する形で見てきた。

今回は、派生開発プロジェクトの品質や生産性の傾向についても見ていき、派生開発の技術的な特徴が、どのような形でプロジェクトの特徴として表出しているのかを探っていく。

4.派生開発は品質が悪いのか?

派生開発は新規開発と比べると様々な制約があるため、品質確保が難しい、という特徴が考えられる。

よって、新規開発よりも不具合密度が高いのではないかと想定される。これを確認するために、IPAのソフトウェア開発データ白書2012-2013を参照する。その結果は次のようになっている。
続きを読む

派生開発プロセスの工夫(その2)

品質確保に効果のあった派生開発プロセスの工夫(その2)

掲題の派生開発プロセスに関する、シリーズ・エントリです。
派生開発の設計品質確保について問題意識を持たれている方は、ご一読頂けると幸いです。
レポートの要約、および背景については第一回を参照ください。

論述対象となるプロジェクト、および開発プロセスの特徴

・組込み系の社会インフラを担うミッションクリティカル・システム。

・信頼性・成熟性について高い品質が求められている。

・稼働直前の総合テストからプロジェクトを引き継ぎ。

・母体システムのドキュメントが不足、母体品質も悪い。

・論述対象の開発プロセスは、主にシステムの欠陥修正(改修)案件に焦点を当てている。

エントリ内容の目次

内容はかなり長くなるため、順を追って述べる。

まずはこのレポートの主旨について述べた後、一般的な派生開発の現状を俯瞰する。その後、派生開発プロセスの1つであるXDDPと、当方の開発プロセスの工夫についての概要を述べる。

時間のない場合は、ここまでの内容(1部 レポート・サマリー)だけでも、本論述の概要はつかめると考える。その次の2部から、詳細なレポート内容を述べていこうと考えている。

もちろん2部から読み始めても構わない。そちらのほうが、概要説明ではなく詳細な論述を行っているため、理解しやすい可能性がある。1部はサマリーのみであり、詳細情報は把握できないだろう。

(1)このレポートの概要と背景について
   ⇒連載記事その1

1部 レポート・サマリー------------
(2)派生開発を巡る現状
   ⇒本記事が該当

(3)XDDPでの問題提起と解決策の概要

(4)当方が遭遇した派生開発の問題と解決策の概要

2部 レポートの詳細--------------
(5)レポート内容

(2)派生開発を巡る状況(part1)

前述のように、派生開発とは、母体システムへの機能追加・変更、欠陥是正の対応を行う開発・保守プロジェクトのことである。ただしそれだけを言われても、派生開発には新規開発と比べて、どのような特徴があるのかを想定しにくい。

そこで今回は、派生開発の特徴を外観したいと考えている。新規開発にはないプロジェクトの特徴や、技術的な特徴などを参考文献から考察してみたい。

1.派生開発の特徴とは何か?

まず派生開発を理解したいのであれば、派生開発プロセスの1つであるXDDPを提唱する清水氏の著書を紐解くことが定番であろう。

清水氏の書籍(「派生開発」を成功させるプロセス改善の技術と極意)には、様々な派生開発が失敗する理由が述べられている。

派生開発が失敗することをリスクと考えた場合、これらリスクのリスク要因(リスクが存在する原因)を探っていくならば、次の要因にたどり着くのではないか。そしてこのリスク要因こそが、派生開発の主な特徴(制約と呼んでもよい)だと考える。
続きを読む

派生開発プロセスの工夫(その1)

品質確保に効果のあった派生開発プロセスの工夫(その1)

掲題の派生開発プロセスに関する、シリーズ・エントリです。
派生開発の設計品質確保について問題意識を持たれている方は、ご一読頂けると幸いです。
以下に要約を示しますので、ご興味があればどうぞ。

本シリーズ・エントリの要約

システム開発プロジェクトは、その約4割もが派生開発プロジェクトである(*1)。派生開発とは母体システムへの機能追加・変更、欠陥是正の対応を行う開発・保守プロジェクトのことである。

派生開発は新規開発とは異なる特徴がある。例えば、母体システムを全て理解する時間がないことや、度重なる改修でソースコードが保守しにくくなっていること、変更によるデグレードを考慮しなければならないこと、などがある。

こうした派生開発の特徴に応じた開発プロセスを採用しないと、品質確保を効率的に行うことが難しい。実際にソフトウェア開発企業では、ソフトウェア品質不具合に起因する品質問題の再発防止策については、「ソフトウェア開発プロセスの見直し」が重要であると認識している(*2)。

このように、派生開発が増加している一方、派生開発の特徴に対応した開発プロセスが浸透していないことが、品質確保の上で問題視されている。

我々は派生開発の実地経験を基に、開発プロセスの工夫を試みた。その結果、設計品質の確保に効果があったと考えられる4つのプラクティス(慣行)をプロセスとして汎化し整理した。

プラクティスは、

  1. ドキュメントのトレーサビリティ強化
  2. フロントローディング強化
  3. ドキュメントのアカウンタビリティ強化
  4. 超上流でのスコープ・マネジメント強化

の4つである。

この4つのプラクティスを適用することで、いくつかの派生開発特有の課題を解決できると考えている。ただし実地経験を基に作成したプロセスではあるが、まだ実証が充分ではない。この点は今後の課題とし、他プロジェクトへの適用を通じて検証を継続していきたい。

内容についてご批評を頂ければ幸甚である。

(*1)独立行政法人 情報処理推進機構, 2012年度「ソフトウェア産業の実態把握に関する調査」調査報告書(2013/04/26)のP53/P123 Q2-3 2011会計年度のソフトウェア開発プロジェクトの内訳 を参照。
(*2) 独立行政法人 情報処理推進機構, 2012年度「ソフトウェア産業の実態把握に関する調査」調査報告書(2013/04/26)のP79/P150  Q5-5 ソフトウェア不具合に起因する品質問題の再発防止策 を参照。

論述対象となるプロジェクト、および開発プロセスの特徴

・組込み系の社会インフラを担うミッションクリティカル・システム。

・信頼性・成熟性について高い品質が求められている。

・稼働直前の総合テストからプロジェクトを引き継ぎ。

・母体システムのドキュメントが不足、母体品質も悪い。

・論述対象の開発プロセスは、主にシステムの欠陥修正(改修)案件に焦点を当てている。

エントリ内容の目次

内容はかなり長くなるため、順を追って述べる。

まずはこのレポートの主旨について述べた後、一般的な派生開発の現状を俯瞰する。その後、派生開発プロセスの1つであるXDDPと、当方の開発プロセスの工夫についての概要を述べる。

時間のない場合は、ここまでの内容(1部 レポート・サマリー)だけでも、本論述の概要はつかめると考える。その次の2部から、詳細なレポート内容を述べていこうと考えている。

もちろん2部から読み始めても構わない。そちらのほうが、概要説明ではなく詳細な論述を行っているため、理解しやすい可能性がある。1部はサマリーのみであり、詳細情報は把握できないだろう。

(1)このレポートの概要と背景について
   ⇒本記事が該当

1部 レポート・サマリー------------
(2)派生開発を巡る現状
(3)XDDPでの問題提起と解決策の概要
(4)当方が遭遇した派生開発の問題と解決策の概要

2部 レポートの詳細--------------
(5)レポート内容

続きを読む

情報システム開発の設計レビュー観点

今回は当方メルマガ内の記事を転記します。
メルマガ⇒2013年向け情報処理試験プロマネ完全対策

情報システム開発の設計レビュー観点

皆様は、システム開発におけるレビュー(特に設計工程)では、どのようなポイントでチェックを行っていますでしょうか。
 
レビューの観点やチェックポイントというのは、しっかりと文書化されている組織もあると思いますが、それでも多くの部分は「属人化」されているような気がしています。
 
実際、経験や知識によって勘が働くことが重要な分野であると思っています。
 
多くの人は自分がレビューイの立場で、これまでに様々なレビューアから指摘された中で、繰り返し指摘されたもの、視点の高さを感じた指摘内容、納得した指摘内容などなどを、自分の引き出しとしてしまっておき、それをレビュー時に問う、といったことが多いのかと思います。
 
 
私の考える、最も重要で汎用的なレビュー時のチェックポイントは3つあります。
続きを読む

情報システムの派生開発プロセス

今回は当方メルマガ内の記事を転記します。
メルマガ⇒2013年向け情報処理試験プロマネ完全対策

派生開発プロセス

最近業務で適用を試しているのがXDDPです。
 
XDDPとは派生開発プロセスの1つのことで、清水 吉男氏が提唱したものです。
 
まず派生開発についてですが、母体となるシステムが存在しており、母体に対する仕様変更や欠陥修正などの変更を加えるシステム開発のことをいいます。派生開発は、新規開発と比較していくつかの特徴があります。
 
続きを読む