昨日の夜に箱根湯本の旅館で読み、今日の朝昼に℃-uteのイベントの合間で読み、何とか読み終えたのは、これでした。
[itemlink post_id=”1853″]
北海道でアーキテクトになろう!とクラーク博士に誓い、最近は「役割としてのアーキテクトではなく、職種としてのアーキテクトが必要」と語っているので、この本はまさにベストマッチ。
箱根に行く直前に町田の三省堂書店で見つけたときには、これも運命だなぁ…と感動したわけですが…。
なぜ、「ですが…」と逆接で言っているかというと、この本を読んでアーキテクトの役割が、なおさら分からなくなったからなのです。
この本の主旨は、ソフトウェア業界ではエンジニアとサイエンティストしか存在せず、サイエンティストがやる仕事以外はすべてエンジニアが幅を利かせている。それはあまりに不明確だし、顧客としても明確な役割が見えていないのは不便。それが、ソフトウェア開発の失敗の大きな原因…という話だと思います。
そこまでは分かる。すごく、明確に理解できる。
実際、SEはあまりに広大な業務領域を持っていて、それこそ顧客へのヒアリングから、業務設計、システムとしての設計、プログラマの管理、場合によってはインフラの設計…と、プロマネがやるであろうプロジェクト体制の維持管理以外の仕事は、すべてやっているに等しい。
まぁ、はっきり言って、1人の人間がそんな広大な領域を一手に請け負うのは無理だと…。
だから、きちんと役割分担して、そこにアーキテクトが登場するというのは理解できるのです。
しかし、アーキテクトに割り当てられた役割が、最近言われているものとは、かなり違うような気がします。
ちょうど、ソフトウェア開発と建築のアナロジーを強調しているために、アーキテクト=建築士として扱われていて、故にアーキテクトは顧客の立場に立って、ビルダー(プログラマ)らとの仲介をする役割を演じることになっています。
エンジニア(SE)は、システムの堅牢性などを保証するために存在していて、建築とのアナロジーでは、最近流行の構造計算とか、そういうことをやる人となっています。
つまり、この本でいうアーキテクトは、広大な技術知識を持ちつつも、顧客に対するヒアリングは誰よりもやる人。
最近、言われているアーキテクトは、どちらかというと技術サイドに立って、ビルダー(プログラマ)の兄貴分的な活躍も期待されるような役割ですから、真逆とまでは言わないまでも、かなりズレているのです。(「最近、言われているアーキテクト」というのも微妙な表現ですが、ここでは「プログラマの本懐」に書いているようなアーキテクトを指しています。)
この本でよく出てくる建築家ウィトルウィルスの言う建築の3要素、ユーティリタス(=ニーズ)、ベヌスタス(=デザイン)、ファーミタス(=構造)を考えてみます。
ニーズの根源は顧客にあります。当然のことです。故に、ニーズに責任を負うのは顧客であり、そのサポート役としてコンサルタントが登場することもあります。
アーキテクトの最初の仕事は、顧客へのヒアリングであり、顧客と目指すシステムの姿を共有することとされています。ということは、アーキテクト=コンサルタントでしょうか。
アーキテクトはデザインに責任を負うとされています。ニーズの把握はしますが、第一義はデザインであるという点で、アーキテクトはやはりコンサルタントと同義ではないようです。
構造に責任を負うのはビルダーとされています。しっかりした構造はニーズを満たし、デザインを実現するとのことです。
あるシステムに対して、ニーズをより高いレベルで満たしてくれる技術を選定して提案するのはアーキテクトの仕事だと思いますが、これはニーズに沿ったデザインを行うことに相当しますから、やはりアーキテクトの役割と言えそうです。
では、そのシステムのニーズと、そのプロジェクトのメンバー構成を勘案して適したアーキテクチャとフレームワークを開発し、SEには設計方法の指示を、プログラマにはフレームワークの使い方やテスト方法の指示を行うのは、アーキテクトの仕事でしょうか。かなり構造(=ビルダーの役割)の領域に入り込んでいるような気がします。しかし、その構造はデザインをベースにしていますから、顧客に対してと同じようにビルダーとも分かち合う必要のあるアーキテクトとしては、役割に含むのかもしれません。
そう考えていくと、結局、拡大解釈されてしまって、業務範囲の広すぎる今のSEが、同じように広大な業務範囲で技術力が一般的なSEよりも上ならばアーキテクトと言ってしまうような、無茶が起きてしまいそうな気がします。
結局のところ、顧客とビルダーの仲介役というポジションにいる以上、両方との分界点が不明確になってしまっては、今起きている問題は何も解決しないのです。
それでは、この本の言いたいこととは明らかに逆を向いているでしょう。
ま、家を建てたことのない人(=私)には、建築士が何をやっているかは分からないし…。
いかに似ているといっても、そのどちらも良く分からない人には、何の意味もないですな。
そんな、終わり方で良いのか…?
そうそう、Amazon.co.jpでのカスタマーレビューを読んでみると、「ソフトウェア業界の危機が訴えられているが、答えが明確に述べられているわけではない」と書いている人が多めで、納得…。
あと、もう1つ思ったのだけど、プログラマの兄貴分的なアーキテクトならSIerの社員で良いけど、建築士のようなアーキテクトなら独立性が重要(少なくともエンジニアやビルダーの立場ではなく、顧客の立場に立つことが重要)なので、SIerの社員ではダメなような気が…。
早いところ、ソフトウェアアーキテクチャ設計士のような国家資格でも作って、その資格がないとアーキテクトの仕事が出来ないとかにして、独立したアーキテクト事務所が量産されないと、ソフトウェア危機は解決しないのかも知れない…とか思っちゃダメですか?