【81】武器は慎重に選べ、安易に手放すな
長年ソフトウェアの設計・実装に携わってきたベテランとして、アーキテクトは、成功を積み重ねるために使い込んできた武器をいくつも持っています。これらのテクノロジーは、何らかの理由があって、評価され、望ましいソリューションリストの上位に浮かび上がってきています。これらの武器は、熾烈な競争を勝ち抜いて武器庫のしかるべき場所を占めているはずですが、それでも新しいテクノロジーが次々に現れて、それらの地位を脅かしています。新しい武器のために昔から使ってきた武器を手放さざるを得ない場合がよくありますが、信頼してきた武器をそう簡単に捨ててはなりません。新しい武器は、使い慣れた武器のように何度も試したわけではありませんから、信頼している武器を安易に捨ててしまうのは危険です。
だからといって、お気に入りリスト入りしたテクノロジーがずっとリストに居座るわけではありませんし、現実から目を背けてソフトウェア開発の進歩を無視せよと言っているわけでは決してありません。どのテクノロジーにも、置き換えが必要になるときが来ます。技術の移り変わりは速く、より優れたソリューションが出番を待っています。アーキテクトとして、私たちは業界のトレンドに遅れないようにしなければなりません。しかし、新しいテクノロジーを真っ先に支持する必要はないのです。通常、新しいテクノロジーを最初に採用したからと言って大きなアドバンテージはありません。それどころか、さまざまなマイナス要素の足を引っ張られることもあるのです。
リスクをかけて新しいテクノロジーを選ぶには、そのメリットが飛躍的に優れていなければなりません。多くの新技術は、大きな前進であると主張していますが、本当にそれを実現できているものはほとんどありません。新しいテクノロジーを見れば、技術的に進歩していることはすぐにわかりますが、それらの進歩は利害関係者にとってそれほど魅力的でないことが多いのです。新技術の先駆者となる前に、ビジネスのためにどのような利益があるのかを考えましょう。ビジネスの立場から見た効果が誰にも気付かれないようなものであれば、考え直した方がよいでしょう。
新技術の欠点としてもう 1 つ認めなければならない重要なポイントはコストです。新技術導入にかかるコストは高くなるかもしれませんし、簡単に予測できないかもしれません。よく知ってるテクノロジーを使う場合には、癖や特徴もよく理解しています。新技術に癖や落とし穴はないだろうと思うなら、ずいぶんと愚かなことです。解決したことのない問題が追加されれば、見積もりが狂ってしまいます。使い慣れたテクノロジーでソリューションを実装する場合には、どのようなコストがかかるかははっきりわかるはずです。
最後に考えなければならないのは、将来性です。優れたテクノロジーが簡単に見つけられてそれを選択できればすばらしいところですが、話はそう単純ではありません。偉大なテクノロジーだからかならず成功するとは限りません。早い段階で、成功するテクノロジーを予測しようとしても、あまり配当の期待できない賭けになってしまいます。騒ぎが落ち着いて、テクノロジーが役に立つことがはっきりするのを待ちましょう。多くのテクノロジーは、ただ消えていきます。未来のないテクノロジーのために、プロジェクトを危険にさらさないように注意すべきです。
問題解決のためにどのテクノロジーを使うかを選ぶのは、ソフトウェア・アーキテクトの仕事の中で大きな部分を占めます。武器は慎重に選び、簡単に手放さないようにすべきです。過去の成功を活用して将来の成功を確かなものにし、新しいテクノロジーを取り入れるかどうかは慎重に決めましょう。