Facebook x

ジャンル

開発技法・工程 2023.11.27
x hatenabookmark

派生開発の基礎知識や代表的な手法「XDDP」・プロセスの進め方を解説

執筆: Qbook編集部

ライター

派生開発の基礎知識や代表的な手法「XDDP」・プロセスの進め方を解説

ソフトウェア開発にスピード感が求められる昨今では、「派生開発」を取り入れる企業やチームが増えています。しかし、派生開発の導入に興味はあっても、その定義や進め方などを知らない人も多いのではないでしょうか。

本記事では派生開発とは何か、基本からわかりやすくお伝えします。派生開発の代表的な手法である「XDDP」やプロセスの進め方も解説するため、ぜひご一読ください。

もくじ
  1. 派生開発とは
    1. 派生開発が広まった背景
    2. 保守開発との違い
  2. 派生開発の3つのメリット
    1. 短期間で新規リリースできる
    2. 既存のソフトウェア資産を有効活用できる
    3. 共同開発がしやすい
  3. 派生開発の2つのデメリット
    1. 納期のプレッシャーが増大しやすい
    2. 手戻りが増えるリスクがある
  4. 派生開発の代表的な手法「XDDP」とは
  5. 派生開発プロセスの効率的な進め方
    1. ステップ1:変更要求の洗い出し
    2. ステップ2:変更仕様の明確化
    3. ステップ3:変更箇所の特定
    4. ステップ4:変更方法の設計
    5. ステップ5:実装~リリース
  6. 派生開発への理解を深める方法
    1. 書籍による学習
    2. 勉強会・イベントへの参加
  7. まとめ:派生開発への理解を深めて効果的に取り入れましょう

1.派生開発とは

ソフトウェア開発における派生開発とは、既存ソフトから派生させて機能追加・品質改善を行い、新規リリースにつなげる開発手法です。完全新規でソフトウェアを開発するのではなく、ベースとなる既存ソフトが存在するのが大きな特徴といえます。

昨今では、開発分野を問わず派生開発を取り入れる企業やチームは珍しくありません。なぜ派生開発が広まったのか、その背景について解説します。また、混同されやすい「保守開発」との違いも把握しておきましょう。

1-1 派生開発が広まった背景

派生開発は、もともと電子機器を制御する組み込みシステムの開発で一般的だった開発手法です。組み込みシステム開発では、ハードウェアとソフトウェアを並行して開発し、両者を組み合わせます。しかしCPUの性能向上やメモリの小型化など、ハードウェアの急速な進化により、ソフトウェアの対応が追い付かない問題が散見されました。

ソフトウェアの開発期間を短縮する手法として、注目されたのが派生開発です。既存のソフトウェアを活用できる派生開発は、組み込みシステム開発の現場で広く浸透しました。また、昨今ではIT業界全体で短納期化が進んでいるため、開発までのスピード感が重要です。このような背景から、組み込みシステム開発以外でも派生開発を行う現場が増えたと考えられます。

1-2 保守開発との違い

派生開発は、「保守開発」と混同されることがあります。保守開発とは、既存ソフトに対して改修・改善・移植などを行う手法のことです。新規ソフトを生み出すのではなく、既存ソフトを継続的に活用していくことを目的としています。

一方で派生開発は、新規ソフトの開発にあたって既存ソフトを活用する手法です。既存ソフトを活用する点は保守開発と同様ですが、派生開発では新規ソフトの効率的な開発を目的とするのが違いといえます。

2.派生開発の3つのメリット

派生開発を取り入れることで、さまざまなメリットが得られます。派生開発の主なメリットは、次の3つです。

2-1 短期間で新規リリースできる

派生開発は、主に開発期間を短縮する目的で行われます。既存ソフトをベースにする分、ゼロから機能を作り上げるよりも工数を抑えやすい点がメリットです。開発のスタート地点をゴールに近づけることで、より短期間での新規リリースが行えるでしょう。特に、リリース速度が優位性につながる開発分野で有効な手法といえます。

2-2 既存のソフトウェア資産を有効活用できる

派生開発では、既存のソフトウェア資産を有効活用できます。一度リリースした後に再利用できれば、開発リソースを費やして生み出した既存ソフトの価値もさらに高まるでしょう。既存ソフトを新規開発の期間短縮のために活用できることは、コストの観点で考えれば大きなメリットといえます。

2-3 共同開発がしやすい

派生開発は、「共同開発」とも相性が良いといえます。共同開発とは、複数のエンジニアが1つのソフトウェアに変更を重ねていく開発手法のことです。派生開発では既存ソフトをベースにするため、他エンジニアの変更を保ちつつ自らの変更をプラスできます。そのため、複数エンジニアで協力しながら、1つのソフトウェアのグレードアップを図れます。

3.派生開発の2つのデメリット

派生開発には、メリットだけでなくデメリットも存在します。主な2つのデメリットを知っておきましょう。

3-1 納期のプレッシャーが増大しやすい

派生開発を採用する場合、開発者にとっては納期のプレッシャーが増大しやすいといえます。開発期間を短縮しやすい手法のため、工数や納期を短めに見積もられやすいです。派生開発を受託する企業は、発注側に所要工数の根拠を示せないと納期の調整は難しいでしょう。既存ソフトを活用できるとはいえ、短納期のなかで開発を進めなければならないプレッシャーは決して小さくありません。

3-2 手戻りが増えるリスクがある

派生開発はスピーディーに進めやすい反面、手戻りが増えるリスクがあります。ベースとする既存ソフトの開発ドキュメントが不十分だと、内部仕様を完全に把握することは困難です。部分的にしか理解できていない状態で派生開発を進めれば、不具合が多発して対応に追われることも考えられます。また、既存ソフトに不具合が判明すれば、派生開発でも対応が必要となるでしょう。

4.派生開発の代表的な手法「XDDP」とは

派生開発の手法としては、特に「XDDP(eXtreme Derivative Development Process)」が代表的といえます。XDDPとは、派生開発における無駄な工数の発生を抑え、開発期間の短縮を図る開発手法です。

派生開発では、開発ドキュメントが不十分で、仕様を部分的にしか理解できないケースがあります。仕様の部分理解による手戻りを防ぐうえで、有力な開発手法として広まったのがXDDPです。XDDPの主な特徴としては、次の3つがあります。

  • 機能追加と仕様変更を別々のプロセスとして扱う
  • 変更に関する3つの成果物を用いる
  • 変更は「ビフォー」と「アフター」を併記して表現する

なお、3つの成果物とは「変更要求仕様書」「トレーサビリティマトリックス(TM)」「変更設計書」のことです。詳しくは、この後解説します。

5.派生開発プロセスの効率的な進め方

派生開発プロセスを効率的に進めるためには、XDDPの採用がおすすめです。ここでは、XDDPにおける派生開発プロセスの大まかな進め方を、5ステップに分けて紹介します。

ステップ1:変更要求の洗い出し

まずは変更要求を洗い出します。変更要求とは、「どのような変更が」「なぜ必要か」などの情報です。背景や目的を明確にすることで、本当に必要な変更なのかを把握できます。洗い出した変更要求は、「変更要求仕様書」として文書化します。

ステップ2:変更仕様の明確化

変更要求をもとに「何をどのように変更するのか」といった変更仕様を明確にします。ただし、プログラムレベルほどの詳細な情報は不要です。変更の方向性を明確にすることで設計がしやすくなり、勘違いや注意すべきポイントにも気付けるでしょう。変更仕様も、変更要求と同じく変更要求仕様書に記載します。

ステップ3:変更箇所の特定

変更仕様をもとに、ソースコードにおけるどの箇所を変更するのかを特定します。具体的な作業は、変更する関数やモジュールの洗い出し、変更要求・変更仕様との紐づけなどです。変更箇所を洗い出すことで、変更すべき関数やモジュールの抜け・漏れに気付けます。

変更箇所を記載する成果物は「トレーサビリティマトリックス(TM)」です。TMとは、各工程におけるトレーサビリティ(追跡可能性)を可視化するための表を指します。変更要求・変更仕様と並べて変更箇所を記載し、TMという形で紐づけます。TMの詳細については、次の記事を参考にしてください。

ステップ4:変更方法の設計

特定した変更箇所に対して、具体的にどのように変更するのかを設計します。プログラムレベルの具体的な情報に落とし込むことで、変更方法に問題がないかを検証可能です。また、複数の関数やモジュールで変更がバッティングする場合も、この段階で気付けます。変更方法の設計情報は「変更設計書」として文書化します。

ステップ5:実装~リリース

変更設計書まで完成した後は、これまでの成果物をもとに実装からテスト、リリース・運用まで進めていきます。実装以降は、一般的な開発プロセスと大きく変わりません。これまでの工程で無駄をなくしておくことで、実装以降の手戻りを減らせるでしょう。

6.派生開発への理解を深める方法

派生開発には手戻りのリスクもあり、成功させるためには十分な理解が必要です。ここでは、派生開発への理解を深める2つの方法を紹介します。

6-1 書籍による学習

派生開発に関する書籍を読んで学習することで、体系的に知識を取得できます。パソコンを使わず、じっくり学びたい人に向いているでしょう。たとえば、XDDPの考案者である清水吉男氏が著者となっている『「派生開発」を成功させるプロセス改善の技術と極意』が、派生開発について学べる書籍として挙げられます。詳しくは、次のリンクをご参照ください。

6-2 勉強会・イベントへの参加

派生開発の専門家が講師を務める勉強会やイベントに参加して教わるのも1つの方法です。勉強会やイベントであれば、不明点があったとしてもその場で質問できます。また、勉強仲間を見つけられればモチベーションの向上にもつながるでしょう。

なお、弊社バルテスでも、派生開発を含めソフトウェア開発に関するセミナーを随時開催しているため、興味があればこちらのページをご確認ください。

まとめ:派生開発への理解を深めて効果的に取り入れましょう

ソフトウェア開発における派生開発とは、既存ソフトから派生させて機能追加・品質改善を行い、新規リリースにつなげる開発手法です。既存のソフトウェア資産を有効活用できるため、短期間での新規リリースが行えるというメリットがあります。

一方で、派生開発には納期のプレッシャーや、手戻りの増大などのデメリットもあります。派生開発を成功させるためには、XDDPといった開発手法の流れをしっかりと把握することが大切です。派生開発への理解を深めて、効果的に取り入れましょう。

開発技法・工程
x hatenabookmark

執筆: Qbook編集部

ライター

バルテス株式会社 Qbook編集部。 ソフトウェアテストや品質向上に関する記事を執筆しています。