AFFORDDとは

派生開発推進協議会(AFFORDD: Association for Facilitation Of Rational Derivational Development)は、今日の開発の殆どを占める派生開発が効果的に行なわれる技術の開発や普及、更にはそれによって得られた「余裕」により、新たな技術の獲得や革新が進む状態を作れるよう後押しすることを目的に設立された非営利団体です。

設立趣旨

派生開発推進協議会の3代目代表として設立趣旨を述べさせていただきます。

まず、私が派生開発に出会ったのは2004年の書籍「SoftwarePeople」でした。当時は構造化手法からオブジェクト指向手法へのパラダイムシフトが進んでおり、1997年に制定されたUMLが盛んに使われていた時代でしたので、書籍に書かれていたUSDMやXDDP、PFDは気にする程度でした。それから月日が経ち、開発現場を俯瞰してみると新規開発よりも派生開発の割合が多く、新しい技術やオブジェクト指向手法を学びたくても派生開発に疲弊してそれどころではありませんでした。そんな中、あらためて初代代表の清水氏の書籍を読み、直接お話しをさせていただいたことで、現状の派生開発を何とか改善しなくてはいけないと強く感じました。

清水氏の書籍からあらためて感じたことは、「基本に忠実」であることの重要性です。基本とは何か?という議論はありますが、清水氏の手法を学ぶと「これが基本だ!」と感じます。それはシンプルで理にかなっており、考え方の原点となる要素で構成されているからだと思います。それは、清水氏が実際に現場での苦労を体験し、解決策を考え抜かれたから生まれた血と涙の結晶であると感じています。

本協議会の使命は、派生開発技術を広めて現状を改善し、新しい技術にチャレンジする時間を手に入れ、より良い製品・サービスを世に送り出して社会貢献することです。協議会を通じてソフトウェア技術の発展と普及に大きく貢献し、ソフトウェアの領域における技術的な進歩を推進できる場を提供していきます。さらに、会社という垣根を超えてソフトウェアの改善に立ち向かうエンジニアのための議論の場を提供します。皆さんと一緒に楽しく活発な議論を進めてまいりましょう。

2023年7月21日

派生開発推進協議会 3代目代表 斎藤 賢一

初代代表のことば

今日、組み込み系システムだけでなく、パッケージソフトや制御系ソフト、エンタプライズ系においても、いわゆる派生開発によってシステムの開発が頻繁に行われるようになりました。

派生開発の特徴は、単に是正保守や適応保守などの「変更」にとどまらず、時代の要請による新たな機能の「追加」や、別システムで既に稼働している機能の一部を「移植」「流用」したりして、新しい製品やシステムを作っていきますので、新規開発とは違った難しさがあります。

その結果、3年~5年という期間を派生開発を繰り返し開発する中で、製品やシステムの機能は当初から大きく様変わりすることも珍しくありません。背景にあるのは、コンピュータ言語が高機能化し寿命が延びたことや、ソフトウェアの規模が大きくなって今から新規に開発する(開発し直す)のが困難になっていること、さらにはモジュールの再利用の方法が提案され普及したことなどが考えられます。

しかしながら簡単な変更で済むと思われていたケースでも、機能間での仕様の重なりや設計上での共通化(抽象化)などによって生じる影響箇所に気づかなかったり、これまで度重なる不適切な変更作業によってソースコードの秩序が乱れたり、ベースのソースコードが巨大化したりしたことで、適切に理解できていない状態(部分理解の状態)でソースコードを変更することが起きており、出荷後(リリース後)にトラブルの発生が増えています。

ましてや機能追加や既存のソースコードの流用というのは、ベースのソースコードのどこをどのように変更して新しく作られたモジュールや流用のモジュールを受け入れるかということについて、適切に検討するプロセスを持たないまま追加のソースコードを受け入れていることが多く、これも多くのトラブルに繋がっています。

こうしたトラブルやそれに関連した手戻り作業は、低く見積もっても全体の2割程度は含まれていると予想できますので、それに投入した費用は日本中で膨大な金額になるはずです。その中で現場のソフトウェア技術者もこの混乱に振り回されて疲弊しており、企業の新しいビジネス展開にも支障をきたしています。そればかりか、現場では精神的肉体的ダメージから倒れる技術者もでており、この状況を放置していては社会問題にもなりかねません。

さらに、派生開発が混乱状態に陥っていることで新規に作り直すための技術的準備もできず、そのタイミングも見つけられないまま、劣化したソースコードと格闘しながらなんとかリリースし続けています。このままでは、どこかで製品やシステムがリリースできなくなる危険も払拭できず、さらにSPL(Software Product Line)などの競争上避けて通れないような新しい取組みにも支障をきたします。この状態を放置していては、日本の産業を根底から揺るがしかねません。派生開発を制覇しなければ、日本のソフト産業や製造業に明日は見えてこないのです。

このような派生開発の場面において効果的なプロセスを提供しているのが「XDDP(eXtreme Derivative Development Process)」という派生開発専用の開発アプローチです。この開発アプローチは「USDM(Universal Specification Describing Manner)」という要求の仕様化の方法と「PFD(Process Flow Diagram)」という要求にマッチするようなプロセスを自在に設計する方法の支援を受ける形で構成されており、これまで多くの現場においてその効果は確認されています。

「XDDP」という派生開発アプローチの特徴は、変更依頼を変更要求と変更仕様の階層で捉え、従来のようにソースコード上で該当すると思った箇所を見つけ次第に変更するのではなく、一旦変更仕様として記述することにあります。また、機能追加についても通常の追加機能の要求仕様書とは別に「・・機能を追加する」という変更要求を立てることで、ベースのソースコードのどこをどのように変更して今回の追加機能を受け入れるかということを変更仕様として記述し、その妥当性を事前に検討する機会を確保していることにあります。従来方法にはなかった変更仕様などの記述に対して新たな工数を使っても、従来の手戻り工数の範囲内に収まるのです。少なくとも95年以降のコンサルティングで取り組んだ実績では、平均して30%の工数削減が実現しているのです。

こうした「XDDP」の派生開発アプローチによって「QCD」が大幅に改善し、それによって手に入れた(失わずに済んだ)時間を使って、現状のアーキテクチャの問題点を解析したり、新規開発に必要な教育や新しいアーキテクチャの設計など、「次」の準備に取りかかることができます。もちろん「次」の中には、「XDDP」のH/W領域への展開、モデル開発やSPLとの連携、さらには効果的なテスト技法との接続なども想定されます。

今日の日本経済は非常に厳しい状況に置かれています。鉱物資源を持たない日本としては雇用を確保するためにも製品やシステムの輸出が重要になってきますが、製品の輸出においては成長著しい海外企業との競争が一段と激しくなっています。したがって大幅な生産性の向上を伴う形で「QCD」の同時達成が鍵になってくると考えています。その意味では、日本の製造業はまさに岐路に立たされているといっても過言ではありません。

本会は、こうした状況の中で「XDDP」などの派生開発に於ける効果的な方法の開発とその普及を目指し、ひいては日本企業の競争力に資するために設立されました。今後は、派生開発をメインテーマとしたカンファレンスや派生開発に関連する個別テーマによる研究会、あるいはグループ活動などを通じて派生開発に関連する技術の開発と普及を促進し、それらの活動で得た成果や現場での取組みのヒントなどを本会のHPを通じて提供していきます。

派生開発推進協議会 初代代表 清水 吉男