アーキテクチャのアンチパターン

2009年5月18日(月)
細川 努

Vendor Lock-In(ベンダーロックイン)

 アプリケーションを開発する際に、特定ベンダーの技術への依存性が高くなる場合があります。特定のベンダーの技術に依存性が高いと、ベンダー側製品のアップグレードが行われるたびに、従来通り機能するのか確認したり、場合によっては大幅な手直しをしたりする必要が生じます。

 こうした状況のことを、“ベンダーロックイン”と呼んでいます。

 以下のような症状があれば、ベンダーロックインアンチパターンにかかっている可能性があります。

・ベンダー製品のアップグレード時には、アプリケーションのメンテナンスを行う必要性が高い
・ベンダー製品側の機能リリースが遅れたりするとアプリケーション開発に大きな影響が生じる
・ほかのベンダーと相互互換性のない製品を使っている

 こうした症状を回避するためには、分離層(Isolation Layer)といって、OSやミドルウエアの実装に直接影響を受けないための層を設けることによって、ベンダー製品への依存性を低くすることができます。

 かつては、こうした分離層をプロジェクト毎に手作りしていた時代もあったのですが、現在では、一般的に提供されている製品や技術を使うことができます。

 例えば、OSへの依存性を低くしたいのであれば、アプリケーションをJava VMなどの仮想マシン上で稼働させることによって対応できます。また、ミドルウエアのAPIなどに依存性を低くしたいのであれば、SpringやS2などのフレームワークを用いることが有効です。

 こうした手段を用いて、ベンダーロックインからなるべく解放されるようにしないと、特定ベンダーからの呪縛に悩まされることになるのです。

Design by Committee(委員会設計)

 システムを構築する際には、経験が豊かで、優秀なアーキテクトが設計した、適切なアーキテクチャに基づいて開発を行うことが、本来のあるべき姿です。しかしながら、アーキテクトが不在のまま、実際に設計の妥当性を検証しないまま、複雑であいまいな仕様を作成しているプロジェクトも多く見受けられます。

 こうした場合、たくさんの設計者が仕様作成に参加し、ドキュメントの量は膨大になるにも関わらず、その設計は明確なコンセプトに欠けるのです。

 このようなケースを、“委員会設計”と呼びます。

 以下のような症状があれば、委員会設計アンチパターンにかかっている可能性があります。

・設計文書が複雑である反面、一貫性に欠ける
・設計文書に欠陥が多い
・設計文書が異様に分厚い
・多数の人が設計の会議に参加しているが、議論が散漫で一向に進展しない
・会議をしないと何事も決まらなくなっている

 こうした状況に陥ると、時間がたち、ドキュメントが分厚くなっても、システムが期待通り稼働できるかどうか、誰も自信を持てないことになるのです。

 委員会設計のアンチパターンから脱却する方法は2つあります。1つは、会議のやり方を変えることです。つまり、会議の目的を明確にして時間内に効率よく物事を決定する運営に変えることです。

 2つ目のポイントは、プロジェクト組織の見直しを行うことです。特に、システム全体のアーキテクチャを決定するアーキテクトは誰か、役割分担を明確にすることが重要なのです。

株式会社アーキテクタス
(株)アーキテクタス 代表取締役 技術士(情報工学)大手シンクタンクで金融系システム構築等を経験。現在、総務省CIO補佐官として、総務省内のシステム構築への助言等を担当している。要求開発アライアンス理事 日本Javaユーザー会(JJUG)監事

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています