« Redmineの画面レイアウトの微修正にこだわる改善要望はViewCustomizeプラグインを使え! | トップページ | セル生産方式の発想はRedmineによるチケット駆動開発に似ている »

2016/10/19

JDMF2016講演『チケット駆動開発基盤とプロダクトライン型開発の融合手法の検討と評価実験』が気になる

JISA Digital Masters Forum2016 「~Digital Business in Action~いまこそ、ソフトウェアで「!(革命)」を~」というフォーラムが10/21金に東京で開かれるらしい。
その中の講演『チケット駆動開発基盤とプロダクトライン型開発の融合手法の検討と評価実験』が気になるのでメモ。

【参考】
JISA Digital Masters Forum2016 「~Digital Business in Action~いまこそ、ソフトウェアで「!(革命)」を~」

JISA Digital Masters Forum 「JDMF2016」タイムスケジュール

JDMF2016プログラム詳細~ 『チケット駆動開発基盤とプロダクトライン型開発の融合手法の検討と評価実験』

JDMF2016プログラム詳細PDF

(引用開始)
22 経験報告
『チケット駆動開発基盤とプロダクトライン型開発の融合手法の検討と評価実験』
宮本 陽一(三菱スペース・ソフトウエア株式会社 鎌倉事業部 宇宙第一技術部)

当社既製品の派生開発では、非効率な再利用(場当たり的な再利用)という課題に直面している。
再利用性の効率を上げるアプローチとしてプロダクトライン型開発への早期移行を試みる中、当社の開発を支える開発手法や環境(チケット駆動開発基盤)にプロダクトライン型開発を融合させる方法(Feature on TiDD)を見出した。
本報告は、その融合方法と評価実験を行った結果に関する事例報告である。
(引用終了)

下記に簡単な説明を付したシステム設計一覧のPDFが公開されている。

「チケット駆動開発基盤とプロダクトライン型開発の融合手法の検討と評価実験」

【1】チケット駆動開発基盤で使われるツールがRedmineであると仮定した時、プロダクトライン型開発とは、仕様が微妙に違うが似通っている多数の組込ソフトウェア製品の開発であろうと推測する。
チケット駆動開発とプロダクトライン型開発の相性が良いだろう、という考えは以前たくさん書いた。

Redmineプロジェクトの構造とConwayの法則: プログラマの思索

マルチプロジェクトのWF型開発にはRedmineのどんな機能が必要なのか: プログラマの思索

Redmineに向いている組織はPJ型組織やマトリクス型組織ではないかという仮説: プログラマの思索

【2】チケット駆動開発とプロダクトライン型開発の相性が良い理由はいくつかある。
一つは、開発チームの組織構成とRedmineのプロジェクト構造が密接に関連すること。
むしろ、Redmineを導入することで、プロダクトライン型開発に向いた組織構造が目に見えるようになり、チーム形成が促進されるメリットがあると思う。

「Conwayの法則」「逆Conway戦略」なる言葉があるように、ソフトウェア工学的にはとても面白い部分。

【3】もう一つは、プロダクトライン型開発を支える開発基盤に構成管理が重要な要素を占めていること。
たとえば、プロダクトライン型開発の一番わかりやすい例は、iPod/iPhone/iPadのようなAppleの製品ファミリー群だろう。

製品は違うが、コアとなるOSや部品のほとんどは共有化されており、再利用が促進されるメリットがある。
しかし、製品仕様はほとんど同じだが微妙に異なるプログラムをそれぞれできちんと構成管理していくのは、実は非常に難しい、という経験はソフトウェア開発者ならば誰でも知っているはずだ。

メインラインモデル、Git-flowモデルのようなブランチモデルで製品系列ごとのプログラムを構成管理し、マージ作業していく必要があるだろう。

ソフトウェアプロダクトラインと構成管理、ソフトウェアパターンの関係: プログラマの思索

アジャイル開発とソフトウェアプロダクトラインの関係: プログラマの思索

ドメイン駆動設計はソフトウェアプロダクトラインとオブジェクト指向分析のミッシングリング: プログラマの思索

ソフトウェア再利用の概念: プログラマの思索

ソフトウェアプロダクトラインが解決しようとするもの~品質と再利用: プログラマの思索

【4】一方、部品や共通ライブラリが共有化されているために、一つのバグが他製品にも影響し、マージするのも大変だし、それぞれの製品のリリース日にも影響してくる。

つまり、マージ作業だけでなく、リリース計画の整合性を取るのが管理作業として大変なのだ。
その部分は、Redmineのチケット管理のコピー機能を上手く使えば、一つのチケットから派生したタスクに対し、製品ごとにリリース日が異なっても、作業チケットは漏れ無く管理することはできるだろう。
しかし、それ以外の運用ノウハウも色いろあるはず。

つまり、メインラインモデルのような構成管理だけでなく、複数の製品系列のリリース計画の管理という部分も考慮に入れる必要があるだろう。
この辺りは組織や製品や案件ごとに制約条件が違うので、細かなノウハウを聞いてみたい。

|

« Redmineの画面レイアウトの微修正にこだわる改善要望はViewCustomizeプラグインを使え! | トップページ | セル生産方式の発想はRedmineによるチケット駆動開発に似ている »

Redmine」カテゴリの記事

ソフトウェア工学」カテゴリの記事

チケット駆動開発」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« Redmineの画面レイアウトの微修正にこだわる改善要望はViewCustomizeプラグインを使え! | トップページ | セル生産方式の発想はRedmineによるチケット駆動開発に似ている »