【79】自分の判断に責任を持て

イ・ジュウ

 ソフトウェアプロジェクトにおいて、ソフトウェア・アーキテクトは他の誰よりも大きな影響力を持っていますので、アーキテクトは自らの判断に責任を負わなければなりません。研究によれば、2/3 を越えるソフトウェア・プロジェクトは、何らかの形で失敗しています(納期の遅れ、予算超過、顧客満足度の低さなど)。多くの場合、失敗の根本的な原因は、ソフトウェアアーキテクトの判断ミス、あるいは詰めの甘さにあります。

 アーキテクチャーについて効果的な判断を下せるソフトウェア・アーキテクトになるにはどうすればよいのでしょうか。

 第 1 に、アジャイルであろうがなかろうが、自分の判断プロセスが完全には把握できていなければなりません。次の 2 つの条件が満たされるまで、アーキテクチャー上の決定を下したと言ってはなりません。

 第 2 に、決定したアーキテクチャーを定期的にレビューしましょう。要件に対して決定がもたらした結果を検証します。そして、アーキテクチャーの中でまだ有効な部分とそうでない部分を見極めます。

 第 3 に、アーキテクチャーとして決めたことが実際に行われるようにしなければなりません。多くのソフトウェア・プロジェクトは、設計段階にしかソフトウェア・アーキテクトを関与させません。設計が終わると、彼らは他のプロジェクトに移るか、コンサルタント契約満了になるかです。しかし、そのようなことで、アーキテクトが考え抜いて作ったアーキテクチャーを正しく実装させることができるでしょうか。彼らが最後まで参加していなければ、決定されたアーキテクチャーはよい考えとして祭り上げられるだけに留まるでしょう。

 最後に、決定の一部をドメインのエキスパートに委ねましょう。多くのアーキテクトは、すべての判断を下さなければならないと勘違いしており、自分のことを何でも知っているエキスパートとして位置づけています。実際には、全能の技術者などいません。アーキテクトには、非常に優れている領域、かなりよく知っている領域、単純にそれほど優れていない領域があります。優れたアーキテクトは、自分があまりよく知らないドメインについては、その道のエキスパートに譲るものです。