ソフトウェアプロダクトラインが組込み企業の技術力を左右する
チケット駆動開発でアジャイル開発を運用すると必ず並行開発が現れる。
並行開発、ソフトウェアプロダクトラインの関係について連想した事をメモ。
【元ネタ】
ソフトウェアプロダクトラインを考えるセミナーに参加 - Basic
CACM の特集記事:ソフトウェアプロダクトライン工学(1) - IT、アイスホッケーそしてヒップホップのある日常
【1】Redmineでチケット駆動開発をアジャイル開発っぽく運用すると、必ず2個のコードラインを保守するようになり、自然に並行開発になる。
つまり、リリースした本番システムはリリースブランチ、裏で機能改善中のシステムはtrunkの2本を常時保守しなくてはならない。
特にアジャイル開発を実践すると、2~4週間のサイクルで小刻みにリリースしていく為、リリースしたコードラインと次のイテレーションのコードラインの2本を並行で作業しなくてはならない。
だから、イテレーション期間中に、リリースしたソースの障害修正と開発中のソースの機能追加の2つを常に同時並行せざるを得なくなる。
アジャイル開発の運用が難しい理由の一つが、この認識漏れにあると思う。
並行開発の難点は、2つのコードラインのタスク管理やマージ作業が大変な点にある。
チケット駆動開発では、それぞれのコードラインのタスクをチケットで別々に管理してリンクさせる事で、複雑な構成管理の作業漏れをなくすようにできる利点がある。
更に、MercruialやGitのような分散バージョン管理を使えば、マージ作業そのものをpull/pushで自動化できるため、手作業による漏れや失敗を無くせる。
従って、並行開発を成功させるには、チケット駆動開発と言う変更に強いタスク管理のインフラと、複雑な構成管理を楽にしてくれる分散バージョン管理が必須だと思う。
【2】この並行開発の考えをビジネスモデルへ更に発展させるとソフトウェアプロダクトライン(ソフトウェア製品系列:SPL)の概念へ行き着く。
SPLでは、コア資産をベースに次々に亜種となる製品を作り出していくのが特徴であり、利点でもある。
しかし、SPLはSW工学の範疇ではあるが、実際はビジネスモデルに密接に関係するため、そう簡単に導入するのは難しい。
SPLを並行開発の観点で見ると、コア資産というコードラインから次々にアプリケーション資産というブランチを分岐ないし派生させていく事になる。
派生開発の観点で見ると、一つの製品を常時保守しながら、コア資産をベースに、携帯にお財布ケータイやデジカメ機能を追加するなどの改良保守も含まれる。
【3】SPLの具体例はパッケージ製品や組込み製品があげられる。
例えば、MSのOffice製品、AppleのiPod/iPhone/iPadが成功例としてあげられるだろう。
Officeには、Personal/Professionalなどの製品ファミリーがあるし、AppleはMacOSXという優れたUnixOSを元に各モバイル製品のコアOSを作り出し、次々に売り出している。
他にノキアなど、北欧の企業にもSPLに強い会社が多い。
SPLに強いということは、コア資産であるOSなどのプラットフォームを自社で持っており、そのプラットフォームの品質やブランドが大きいことでもある。
だから、MSやAppleのように、自社で優れたOSを持っていると、SPLの利点を生かしやすい。
又、パッケージ製品やASPのように自社の製品やサービスを販売しているソフトウェア企業は、SPLを運用できれば、違う顧客にスピーディに亜種となる製品やサービスを提供できるようになる。
【4】SPLのもうひとつの特徴は、アーキテクチャを重視している点だ。
コア資産を抽出するためにアーキテクチャと言う観点を入れて、アーキテクチャも含めた機能を再利用できるようにする。
「実践ソフトウェアアーキテクチャ」では、北欧の軍需企業が、空母のシステムから防空システムをプロダクトライン開発した例が載っている。
この例は、SPLを持つ組織はアーキテクチャを習得しているおかげで、新製品ファミリーを派生させて作れる仕組みを持っていることを示唆している。
アーキテクチャを重視すると、最終的にはSPLにたどりつく気がする。
アーキテクチャは製品ファミリーやビジネスモデルと密接に関係するのだ。
【5】ここでもう一つ注意すべき点は、韓国がSPLに熱心である点。
韓国の姜教哲という大学の先生がSPLの世界的権威の一人であるらしい。
最近の韓国の組込み企業が日本を押しのけて強いのは、この点も関係するのかもしれない。
逆に最近の日本の組込み企業が弱くなっているのは、製品系列とソフトウェアのプラットフォームの関係を整理できていないため、常に一から作りこむしかなく、時間もかかり品質も良くない点にあるのでないだろうか?
| 固定リンク
「モデリング」カテゴリの記事
- リプレースとアーキテクチャモダナイゼーシヨンの違いの本質は何なのか?(2026.04.08)
- すり合わせの優位性は健在か?日本の製造業が直面するPLM活用とMBSEソフトウェア運用の理想と現実(2026.03.29)
- アーキテクチャモダナイゼーションにおけるAMETチームの役割と責任範囲は何か(2026.03.23)
- アーキテクチャモダナイゼーションとはそもそも何なのか?(2026.03.22)
- 自動車の組込ソフトウェア開発が難しい理由は3つある(2026.02.23)
「ビジネス・歴史・経営・法律」カテゴリの記事
- 【読書メモ】ミアシャイマーに学ぶイラン情勢と、社会科学における仮説検証の醍醐味(2026.03.29)
- 自動車業界におけるA-SPICE・機能安全・サイバーセキュリティの規格に対応したプロセス改善とは何か?(2026.02.15)
- E-BOMとM-BOMの違いは何か?(2026.02.08)
- 製造業におけるPLM製品とMES製品の違いは何か?(2026.02.08)
- 日本の半導体産業はなぜ凋落したのか(2026.02.07)
「ソフトウェア工学」カテゴリの記事
- リプレースとアーキテクチャモダナイゼーシヨンの違いの本質は何なのか?(2026.04.08)
- アーキテクチャモダナイゼーションにおけるAMETチームの役割と責任範囲は何か(2026.03.23)
- アーキテクチャモダナイゼーションとはそもそも何なのか?(2026.03.22)
- 自動車業界におけるA-SPICE・機能安全・サイバーセキュリティの規格に対応したプロセス改善とは何か?(2026.02.15)
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)
「チケット駆動開発」カテゴリの記事
- 第29回東京Redmine勉強会の感想~今話題のテーマはJTC運用とAIによるプロマネ作業支援 #redminet(2025.11.09)
- RedmineJapan vol.4の感想part1~Redmine AI HeplerプラグインはRedmineのナレッジ活用を強化してくれる #RedmineJapan(2025.07.31)
- Jiraの機能はTracに似ている気がする #redmine(2025.06.01)
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)


コメント