[#TiDD] プロセスプログラミング1 - ソフトウェアプロセスもソフトウェアである -
プロセスプログラミングという言葉をご存知の方は少ないかもしれませんが、4半世紀も前に生まれたこの言葉は、その後のソフトウェア工学を大きく発展させました。すでに死語となった感もあるプロセスプログラミングという言葉ですが、原点回帰すると見えてくるものもあるものです。そこで、プロセスプログラミングの観点で、今あるプロセスの議論を考えてみたいと思います。
ソフトウェアプロセスの議論は1980年代半ばに、ソフトウェアプロセス国際ワークショップ(IWSP)を中心に議論されていました。ハンフリー氏のプロセス成熟度の話や、ベーム氏のスパイラルモデルも議論されていました。見聞きした話では「旅行は想定外のことが楽しいよね」とか「ウォータフォールを繰り返すスパイラルはフラワーモデルと呼んだ方が良い」などという議論もあったようです。
そのような中で最もインパクトのあったのはオスターワイル(Leon J. Osterweil)氏のプロセスプログラミングです。氏の
“Software Processes are Software, Too”
(ソフトウェアプロセスもソフトウェアである)
という言葉はソフトウェア工学に大きな衝撃を与えました。そして第9回ICSE(ソフトウェア工学交際会議)で発表された論文は、後に最も影響を及ぼした論文として表彰されました。
プロセスプログラミングは2つの流れを生みました。一つはプロセスのインスタンスともいうべき実世界のプロセスのモデリングによって、表現し、伝え、議論し、実行支援や自動実行する、というプロセスモデリングの流れ。もう一つはプロセスのクラスともいえる標準プロセスの流れです。
プロセスモデリングでは、複雑なプロセスをどのように記述するかが注目されました。ソフトウェア開発のプロセスは、予期せぬ事態により、あるプロセスから別のプロセス群が生まれたり、別のプロセスに変質することがあります。このようなプロセスの動的な変化をどのように記述するか、共通例題が作られペトリネットのように図的なものを含めて多くの言語が提案されました。
一方の標準プロセスの流れは、成果物を中心とした標準化から、組織プロセスの成熟度を考慮したものに発展しました。当時はコーディングルールや仕様書の体裁に見られるような成果物の標準化が多く行われていました。そこにソフトウェア工学の技術が組み込まれ、CMM/CMMIのような組織プロセスの成熟度を考慮したものに発展しました。
CMMIの元になったCMMは、段階モデルが特徴ですが、SEPGにプロセスプログラミングの影響を見ることができます。CMMの段階モデルは、開発組織の成熟度ランキングから、ソフトウェア工学の技術を組織の成長すべきと思われた順にならべたものです。そのような組織の標準プロセスを構築し、技術を導入しつつプロセスを改善するのがSEPG(Software Engineering Process Group)です。言うならばプロセスプログラミングと保守によって、標準プロセスを進化させることが仕事です。
このように、プロセスプログラミングはソフトウェア工学の世界に大きな影響を及ぼしました。しかし、その中心はプロセスのクラスともいうべき標準プロセスでした。この歴史を考えると、現在のソフトウェア開発に必要なものが見えてきます。
以降、プロセスプログラミングの観点から、ウォーターフォールとアジャイル、ファシリテーション、チケット駆動開発について考えてみたいと思います。
« [#TiDD] チケット駆動開発の事例を集めたい | トップページ | [#TiDD] プロセスプログラミング2 - ウォーターフォールとアジャイル - »
「私のアジャイル」カテゴリの記事
- One fact in one placeとチケット駆動開発 - Software Processes are Software, Too -(2021.12.21)
- マルチスレッド処理と進捗管理・配員・作業分割/割り当て- Software Processes are Software, Too -(2021.12.20)
- カプセル化と組織パターン - Software Processes are Software, Too -(2021.12.20)
- Greedy algorithmと2割8割の法則 - Software Processes are Software, Too -(2021.12.12)
- 「任せて、任せず」「魚を与えるのではなく"釣り"を教えよ」(2021.08.16)
「ソフトウェア」カテゴリの記事
- One fact in one placeとチケット駆動開発 - Software Processes are Software, Too -(2021.12.21)
- マルチスレッド処理と進捗管理・配員・作業分割/割り当て- Software Processes are Software, Too -(2021.12.20)
- カプセル化と組織パターン - Software Processes are Software, Too -(2021.12.20)
- 論文研修会(導入編)- 論理的思考のすすめ -(2019.12.01)
- デブサミ関西でNode-REDとペンギンと勇気の話をしました #devsumiB(2018.10.28)
「プログラミング」カテゴリの記事
- Greedy algorithmと2割8割の法則 - Software Processes are Software, Too -(2021.12.12)
- 論理的に考え伝える – SEA関西「開発現場で役立つ論文の書き方のお話」 -(2021.05.09)
- 論文研修会(導入編)- 論理的思考のすすめ -(2019.12.01)
- スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会(2019.01.27)
- デブサミ関西でNode-REDとペンギンと勇気の話をしました #devsumiB(2018.10.28)
「チケット駆動開発」カテゴリの記事
- One fact in one placeとチケット駆動開発 - Software Processes are Software, Too -(2021.12.21)
- マルチスレッド処理と進捗管理・配員・作業分割/割り当て- Software Processes are Software, Too -(2021.12.20)
- カプセル化と組織パターン - Software Processes are Software, Too -(2021.12.20)
- [#TiDD] ポケモンGOにチケット駆動開発のポイントを学ぶ(2018.05.01)
- [#TiDD] プロジェクトを成功させるチケット管理(2017.07.02)
« [#TiDD] チケット駆動開発の事例を集めたい | トップページ | [#TiDD] プロセスプログラミング2 - ウォーターフォールとアジャイル - »
コメント