アーキテクトの役割とは―ビルダーとユーザーの境界

鈴木雄介(アークランプ)
2007-12-13 10:00:00
  • このエントリーをはてなブックマークに追加

アーキテクトの役割とは

 アーキテクトの役割とは何か。筆者の考える答えのひとつが、使うことと作ることの融合、言い換えれば「ユーザーとビルダー」の融合である。システムは使われて役に立たなくては意味がない。一方できちんと完成し、長期的にメンテナンスできるものでなくても意味がない。使うことと作ることの両者がそろって初めて優れたシステムと呼ぶことができる。この両者を融合することがアーキテクトの重要な役割なのだ。

アーキテクチャとは「技術の組み合わせ方」

 このためにアーキテクトが取り組むのが「技術の組み合わせ方」だ。Wikipediaによれば技術とは「社会の各分野に於いて目的を達成するために用いられる手段・手法のこと」である。特定の分野に限っても、たとえばシステムを構築するための技術も様々な種類がある。ハードウェアからネットワーク、ドライバ、OS、データベース、アプリケーションサーバ、言語、そしてアプリケーション・フレームワーク。それぞれの層には複数の手段・手法があり、さらに細分化していけば無数といえるほどの技術が存在している。システムとはこれらの技術を組み合わせたものの総体をあらわす。アーキテクトの役割は全体の指揮者となり、技術を組み合わせてシステムを構築することにある。逆にいえば、システムの持つ要素を分析して技術要素に分解していくことともいえる。

 こうしてアーキテクトによって決定された「技術の組み合わせ方」をアーキテクチャと呼ぶのだ。もちろんアーキテクチャにも様々な層がある。一般的にアプリケーション・アーキテクチャといえば言語やフレームワークの選択であり、システム・アーキテクチャといえばハードウェアやネットワークまで含むこととなるだろう。最近ではエンタープライズ・アーキテクチャという言い方をして、IT技術にとどまらず内部統制やビジネスプロセスまで含めて定義することもある。

 ただし、アーキテクチャを策定する作業は容易ではない。前述のとおり使うことと作ることの融合が必要だからだ。ユーザー都合だけで無茶な要求を受け続けても、ビルダー都合で要求の変化を拒否してもうまくはいかない。全体の整合性を乱すことなく、部分のバランスを取っていくことが求められる。また、それが長期的に持続可能なように設計するとなると、その難しさは図りしてないものになる。

エンジニアにも必要なアーキテクト的発想

 さて、こうしたアーキテクトの仕事は、なにも職業アーキテクトと呼ばれる人の中にだけ存在するものではない。すぐれたプログラマやエンジニアもまた、アーキテクトの発想を持っている。システムは一人の力で作り上げられるわけではない。時間を節約するためには何を自分がやり、何をやらないかを決めなくてはいけない。そして、やらないことについて、いかに性能を確保し、システム全体としての能力を発揮できるかを考えているはずだ。こうした判断はアーキテクト的発想といえるだろう。

 むしろプログラムを書くすべての人がアーキテクトとしての発想を持っていなくてはいけないといえる。分業化された仕事の中に自分を埋没させることはない。常に全体を考え、最適な答えを見出す姿勢は、これからのエンジニアには必須といえる。

技術は単体では意味がない

 筆者はアーキテクチャについては技術固有領域を超えて横断的に学ぶことができると感じている。たとえばWebを活用したメッセージ指向の統合技術という視点では、RESTもSOAPもあまり変わるものではない。大きくとらえればSOAとAjaxは似たようなアーキテクチャを持っているのだ。だからこそ、似たような問題点を持ちうるし、そこに対する解決策も似たようなものになりうる。特に現在はこうした技術の越境が大量に発生しているといえる。

 技術も製品も単体で意味があるものではない。それらはシステムの中に適切に統合されて初めて価値が生まれる。アーキテクチャとは統合方針そのものであり、アーキテクトとはその判断にかかわるすべての人をさす。そして、概念として互いに学びあえるものである。こう考えれば、本サイトにおけるアーキテクトの役割も明確なものになってくるだろう。この連載では特定の技術や製品を入り口としながらも、複数のそれらが互いに広い視点で学びあい、刺激しあい、切磋琢磨するための場を用意できればと思う。

 次回以降、まずは主流になっているメッセージ指向という考え方について注目していきたい。現状、多くのアプリケーションはメッセージの交換によって成り立っている。Web2.0の中核技術であるAjaxとエンタープライズ・システムの中核技術であるSOAをはじめ、多くの技術が横断的に見えてくるはずだ。

  • コメント(2件)
#1 サクヤス   2007-12-24 23:25:49
ITアーキテクトって、最近良く耳にしますが、本質を理解できました。
#2 hirom9999   2008-02-19 15:14:06
私は、この記事に記載されている内容を、
・技術の適材適所
・運用性の考慮
として考えています。
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]