« 既存システムをハッキングする | トップページ | XEAD Modelerがベクター出力に対応 »

2014.11.04

エンタープライズ・アジャイル:手法論より大事なもの

 最近耳にするようになった言葉に「エンタープライズ・アジャイル」というものがある。業務システム(販売管理や生産管理といった大規模な基幹システムのこと)をアジャイル開発するやり方を意味する。そのためにSAFe(Scaled Agile Framework)やDAD(Disciplined Agile Delivery)といった洗練された枠組みが提唱されているが、次から次に登場するこの種の手法論が問題を解決してくれるとは私には思えない。

 「エンタープライズ・アジャイル」とことさらに「エンタープライズ」を強調するのは、それまでのアジャイル手法が業務システム開発にうまく適用できていないことを物語っている。じっさい、業務システムとアジャイル手法は水と油みたいなところがあって、業務システムの以下の特性ゆえにアジャイル手法の適用は簡単ではない。

特性1:ドキュメントが必要
複雑巨大な業務システムの可読性や保守性は、ドキュメントの品質で決まる。ところがアジャイル手法はドキュメントよりも「動くソフトウエア」を優先させる。優先させるだけとはいえ、その傾向はしばしば「コードが仕様書」であるような困ったシステムを生み出す。システムの完成後にドキュメントをまとめたらいいと思われるかもしれないが、けっきょくアプリとドキュメントが分離しているゆえに両者間の不整合が避けられない。

特性2:全体構想が必要
業務システムを開発する際には、DB構造を含めた全体構想が認識されていなければいけない。ところがアジャイル手法は、開発単位を小さく切り出して、その単位毎に実装しながらDB構造やアプリの仕様を探ることを旨とする。結果的に、アーキテクチャ不在な困ったDBが生み出される。DB構造を継続的にリファクタリングすればいいと思われるかもしれないが、それでは改修コストがかかりすぎる。DBはシステムの背骨であって、そういうものの改修は簡単ではないからだ。

 これらの問題はいずれも「複雑巨大なDBの上に構築されたアプリ群」という業務システムの特性に由来している。アジャイル適用のボトルネックになっているのはまさにここらへんであって、その部分を手当するには手法論だけでは限界がある。

 どうすればいいのか。それぞれの特性に対して、観念的な手法論ではなく、具体的な「兵器」をあてがえばよい。

特性1:ドキュメントが必要
 →仕様書駆動の開発基盤を使う

特性2:全体構想が必要
 →モデルライブラリを使う

 まずドキュメントの問題については、前回記事で紹介したような、コードではなく仕様書でアプリを制御できるような開発基盤を用いることで解決できる。書いた仕様書がそのままアプリとして動作するので、動くソフトウエアを優先させると同時にドキュメントを整備できるようになる。これには少数精鋭で進められるという効果もある。設計と実装を分業する必要がないからだ。

 ただし、そんな気の利いた開発基盤を用意できたとしても、それだけでエンタープライズ・アジャイルを実践できると考えるのはアマい。当該案件向けのレファレンスモデル(完結した基本設計情報)や、それらにもとづいてその基盤上で実装されたレファレンスシステム(実際に動く業務システム)が要る。

 なぜか。DB構造を含めたシステムの全体像をまとめられる技術者があまりに少ないからだ。その結果、住宅ばかり扱ってきた技術者がいきなり高層ビルに挑戦するといった蛮勇が発揮されたりする。まずは、設計経験の豊かな技術者によってまとめられた業種・業態別のレファレンスを確保して、これを設計・開発の起点とすべきだ。

 そしてその種のレファレンスは、完成したものであると同時にカスタマイズしやすいものでなければいけない(この点がERPパッケージと異なる)。そういう素材を要件に合わせてカスタマイズすることで、個別案件の全体像を効率的に導出できるからだ。結果的に、アジャイルに扱うための小さな開発単位を無難に切り出せるようになる。

 まとめよう。エンタープライズ・アジャイル実践の決め手になるものは、数年おきに鳴り物入りで登場する手法論のたぐいではない。「仕様書駆動の開発基盤」と「設計・開発の起点となるモデルや動くシステム」である。これらを配備することで、業務システムの開発プロジェクトは自動的にアジャイル化する。

このブログでの関連記事:
「アジャイル開発の進め方」はもう聞き飽きた

|

« 既存システムをハッキングする | トップページ | XEAD Modelerがベクター出力に対応 »

コメント

コメントを書く



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




トラックバック


この記事へのトラックバック一覧です: エンタープライズ・アジャイル:手法論より大事なもの:

« 既存システムをハッキングする | トップページ | XEAD Modelerがベクター出力に対応 »