ROI変数を意識せよ
著者: ジョージ・マラミディス私たちがプロジェクトのために行っているすべての判断は、技術的なものであれ、プロセスや人員に関連したものであれ、一種の投資と考えることができます。投資には、金銭的なものもそうでないものも含めてコストがついて回り、いずれ利益になるはずだという期待もあります。私たちの雇い主は、会社の収支がよくなることを期待して私たちに給与を支払っています。私たちは、チームの生産性が上がることを期待して特定の開発メソドロジーに従っています。また、長期的には利益をもたらすことを信じてアプリケーションの物理アーキテクチャーを再設計するために1か月の時間を費やしています。
投資が成功したかどうかを測る方法として、得られた利益がどのくらいの割合になったかを計算するものがあります。これをROI(投資利益率)と言います。たとえば、「私たちはテストを書くためにより多くの時間を割くことによって、次の本番システムのリリースではバグが少なくなると予想しています」という場合、投資のコストは、テストを書くために費やした時間から計算できます。投資によって得た利益は不要になったバグフィックスの時間とふるまいがよくなったソフトウェアから顧客が得る満足です。
たとえば、現在は1週間の40労働時間のうち、10時間をバグフィックスに当てているものとします。1週間のうち4時間をテスト作成に当てれば、バグフィックスにかかる時間は週2時間に減ると予想される場合、8時間を節約して他のことに設資できます。予想ROIは、バグフィックスで節約できる8時間を、テストに投資した4時間で割った200%になります。
投資による効果は、必ずしも金銭的な利益に換算できなくてもかまいませんが、投資をするからには何かしら付加価値が必要です。たとえば、現在のプロジェクトの利害関係者にとってもっとも大切な要素は、いかに早く発売できるかだとします。おそらく、頑丈なアーキテクチャーを作っても、最初の設計フェーズに長時間を必要とする分、速やかにアルファリリースを行った場合と比べて、高いROIがねられないという判断なのでしょう。リリースを早めれば、ユーザーの感想に対応できますし、それによって将来の方向やプロジェクトを成功に導くための判断材料が得られます。しかし、綿密な計画を立てられない分、必要になったときにアプリケーションのスケールを簡単に変えられなくなるというコストがかかるかもしれません。個々の選択肢のROIは、かかるコストと予想される利益によって決まります。そして、ROIは、どれを選ぶかを決めるための基準として使うことができます。
アーキテクチャー上の判断を一種の投資と考え、それに伴う利益の割合を計算するようにしましょう。これは、1つ1つの背kん宅がどの程度現実的で適切かを判断する上で役に立つアプローチになります。