| 連載 | “街づくり”で理解するシステム構築入門(1) |
“建築”と“システム構築”の類似点・共通点
鈴木 雄介
2005/4/7
| - | 現在のシステムアーキテクチャは、数世紀前の建築 |
- - PR -
ところで、システム構築では、納期の遅れ、バグの多さ、使えない仕様など、多くの問題点が存在する。建築では、納期の遅れはあるかもしれないが、何もないのに建物が壊れることなど、ほとんどあり得ない。建築とシステム構築が似ているならば、この違いはどこから生まれているのだろうか。筆者は、システムアーキテクチャが未発達であるうえ、体系的な知識が不足しているからだと考えている。
そもそも建築には長い歴史がある。人類が初めて家を建てたのは数千年前のことだろう。一方で、システム構築の歴史は、最初のコンピュータといわれるENIAC(※)が作られたのが1946年、多くの企業でシステム構築が行われた期間と考えればここ30年、インターネットを利用する企業システムに限ればここ10年程度だ。
※世界最初のコンピュータに関しては、コンピュータの定義、完成度などをどう見るかによって諸説ある。
とすると、現在のシステム構築というのは、技術や体系化が未発達であった数世紀前の建築のような状況ではないだろうか。つまり、システム構築が理解しにくい理由は、最先端で複雑だからではなくて、未成熟で体系化が遅れているからだと考えた方がよいのだろう。
実際、18世紀のヨーロッパでは、石で造られたビルが崩壊する事故が発生していたそうである(20世紀になってもビルや橋の崩落はあるが、大きな──珍しいニュースとして扱われる)。
そんな時代の建築家に、現代のビルの仕様を渡せば、同じような結果に陥ることが予想されるだろう。ここから、現在のシステム構築が抱える問題点も明らかになる。
- 2×4のような規格化された工法が存在しないため、エンジニアの習熟度が生産性や品質に大きく影響する
- 重機のような有効な生産性向上ツールが存在しないため、人に依存する工程が多い。コストの大半が人件費である
- 建築学のようなシステムアーキテクチャを体系的に教える学問がないため、スキルが学びにくく習熟格差が大きい
- 業界基準のような標準的なコスト、安全基準が策定化されていないため、値段の根拠が不明瞭で品質も不安定
| - | 100年前の建築家に仕事依頼するためには |
![]() |
では、こうした現状を踏まえてシステムを構築するのはどうしたらよいだろうか。これは、数世紀前の建築家に建築を依頼するためにはどうしたらよいかという問いに答えることに似ている。いろいろな考え方があるだろうが、最も重要なのは、単純ではあるがコミュニケーションということになるだろう。
システムアーキテクチャに関する方法論や技術は、発達中であるがゆえに進歩が速く、またエンジニア(アーキテクト)の知識格差が大きいことから、どんなに信頼できるシステム構築者に依頼したとしても、最適なシステムアーキテクチャを選択するのは容易ではない。
また、企業情報システムでは規模や機能の変更が頻繁に行われるが、システムアーキテクチャはシステム規模に応じてドラスティックに変化しがちである(一軒家と10階建てのビルでは、工法がまったく異なる)。
このように、失敗する確率が高い状況では、発注者の価値観に合わせて、完成度に合意を形成しながら進めるしかない。
すなわち、施工主は自身の要求(システムの目的、機能、パフォーマンス、拡張性)をできる限りきちんと定めて建築家に伝え、建築家が作った設計が要求を満たすものであるかどうかを確認していく──つまり、施工主と建築家が、お互いの垣根を越えて、1枚の設計図に向かい協力し合うということだ。
建築も多くを学びながら発達してきた。システム構築も同じように、ここ数年で急激な発達を遂げている。近い将来、もっと良いシステムアーキテクチャが登場することは間違いない。しかし、建築工法がどんなに発達しても施工主と建築家の間のコミュニケーションが不可欠なように、システム構築においてもシステム発注者とエンジニアの間の協力は欠かせない。お互いの守備範囲を定め、漏れ・抜けのない協力体制構築がまず、最初の一歩だといえるだろう。
次回は、アプリケーション形式と開発手法について解説していこう。
| 関連記事 | ||
| 【ビジネスの“モジュール化”メタファで語るSOA】 特集:ビジネスから見るSOA(1)(@IT情報マネジメント > 企業システム構築) | ||
| 【建築家の視点、アーキテクトとしての共通認識】実行可能な知識とソフトウェア(8)(@IT > IT Architect) | ||
| 2/2 | 第2回へ |
|
||||||||
|
この記事に対するご意見をお寄せください |
managemail@atmarkit.co.jp |
|
|
| ■要約 家を建てる際、その建物の構造が重要な問題となるが、構造に決定的な影響を与えるのが工法である。工法が異なれば、設計方法や大工に求められるスキルも異なる。工法を選択するということは、設計方法や部品・道具を決定することを意味する。 これをシステム構築に置き換えれば、工法・構造に当たるものがシステムアーキテクチャであり、部品・道具に当たるのがプログラミング言語だ。 建築において、施工主の目的・予算によって適した工法を選択する。システム構築においても同様だ。システムの目的によって最適なシステムアーキテクチャは変わってくる。最近では、システムアーキテクチャを決定する重要度はより増している。 しかし建築に比べ、システム構築の歴史は浅く、システムアーキテクチャが未発達で、体系的な知識が不足している。こうした現状を踏まえてシステムを構築する際に重要なのは、単純ではあるがコミュニケーションだ。お互いの守備範囲を定め、漏れ・抜けのない協力体制構築がまず、最初の一歩だといえるだろう。 |
|
|
| ▲記事の先頭<Page1>に戻る |
| profile | |
|
“街づくり”で理解するシステム構築入門 バックナンバー
- 第1回 “建築”と“システム構築”の類似点・相違点
- 第2回 住居入手と比較する“システム構築の特殊性”
- 最終回 街づくりモデルによる「成長する企業システム」
| 「“街づくり”で理解するシステム構築入門」 |
|
ホワイトペーパー(TechTargetジャパン)
|
|


