【26】再利用は、アーキテクチャーだけではなく人と教育の問題と心得よ

ジェレミー・メイヤー

 よく設計されたフレームワークや、よく練られ、巧妙に実装されたアーキテクチャーは、当然社内で再利用されるものだと考えてよいのでしょうか。そんなことはありません。実際には、もっとも美しくエレガントで、再利用に適したアーキテクチャー、フレームワーク、システムでも、次のような人々がいなければ再利用されません。

再利用できるものがあることを知っている人

 設計、フレームワーク、ライブラリ、コードの断片などが再利用されるためには、それらがあることを知っていて、ドキュメント、バージョン、互換性などの重要な情報がどこにあるかがわかっているデベロッパー、設計者が社内にいなければなりません。単純な論理ですが、あると思わないものを探す人はいません。再利用可能なものについての情報を「プッシュ」していけば、再利用に成功する確率が上がります。

 組織内で再利用できるものについての情報をプッシュしていく方法はいくつもあります。RSS フィード付きのウィキページは、更新情報を提供してくれますので、非常に大規模なチームでは役に立ちます。ソースレポジトリでアップデートが発生したときに電子メールで通知する方法もあります。ごく小規模なチームなら、個人的な会話や、オフィス内で少し大きな声を出すなどの方法で、同僚に情報を伝えることができます。再利用可能なものについてどのような方法で伝えるにしろ、かならず 1 つ手段を持つことです。チャンスが来るまで手放してはなりません。

使い方を知っている人

 再利用のしかたを理解できるかどうかは、能力と訓練によって左右されます。もちろん、中には、ドナルド・クヌースが言うところのコーディングや設計に「共振」できる人もいます。感心するのを通り過ぎて恐ろしく感じるほど、理解が早く深い才能に恵まれたデベロッパーやアーキテクトはいるものです。しかし、そういう人はごくわずかです。大半のデベロッパーや設計者は、知的で確かな力はありますが、教育を必要としています。

 デベロッパーや設計者は、設計の中で使われている特定のデザインパターンについて知らなかったり、フレームワーク設計者が使うつもりだった継承モデルを完全に理解していない場合があります。彼らには、最新のドキュメント、あるいは研修という形で、知らないことを手軽に理解できるようにする必要があります。わずかな研修を施すだけで、再利用ということでは全員が同じレベルを維持しているという状態に大きく近づけることができます。

自分で作るよりも再利用した方がよいと思っている人

 人間は、とかく助けを求めるよりも白分で問題を解きたいと思うもので、デベロッパーには特にその傾向があります。あるものが動作する仕組みをたずねるのは、弱点、さらには無知をさらけ出すことだと思ってしまうのです。もっともこの辺の考え方は、個人の個性や成熟度によって大きく異なります。「自分で作るよりもよい」の意味は、人によってまちまちです。チーム内の「若手のホープ」は、自我が強いので、何でも自分で書きたがるでしょうし、経験を積んだ人なら、誰かが同じ問題領域について考えたのなら、ソリューションのために役に立つ何かを提出しているだろうということを受け入れやすいでしょう。

 あなたのチームが再利用できるものがどこにあるかを知らないか、どうやって再利用したらよいかを知らなければ、人間として自然なところに落ち着くでしょう。自分で作ってしまうということです。あなたはそれにお金を払うことになるわけです。