アプリケーションのソースコードは負債のこともある
2008.10.09
昔々,「ザ・ゴール」と言う本を読みました。製造工程で部分最適化じゃなく全体最適化をしましょうと言う内容です。その中で在庫は負債であると言うことが書いてありました。まあ,手っ取り早く言えば在庫は悪と言うことです。これは基本的にアリエルの社内のお話です。
アプリケーションの開発では,日々,膨大な量のコードが生まれます。一日に一人の人が千行のコードを書くこともあります。 で,テストを行ない,出荷されるのですが,テストの途中でコードにバグが見つかることはよくあることです。出荷の間際にバグが見つかると,リリースを延期するか,その機能を削るかと言う選択にせまられます(実際にはもう少し選択肢はおおいですが)。
なるべく機能を落とさない方向で調整しているのですが,そのリリースでは機能を削ることが必要だと判断されれば,そうします。そうやって,出荷されない(できない)テストにパスしていないコードができます。ただし,そのリリースでは機能が落ちだけなので,次のリリースには復活する必要があります。まあ,機能を落とすのはよくないことで,落ちちゃうのはエンジニアの力不足のことが多いので,社内ではとても恥ずかしいことになっています。すくなくとも,誰も何も言わないですが自分の力不足と認識してほしいです。
落ちた機能は,リリース後速やかに復活してテストにパスする必要があります。 理由は,テストにパスしていないコードは誰にも何の価値も提供しないからです。そんなコードは単なる趣味です。次に,人は忘れる生き物です。自分のコードもすぐに忘れます。昨日のコードと一年前のコードでは,昨日のコードの方がメンテナンスし易いです。なので、すぐに機能を復活してテストにパスすれば,最初の実装コスト+今回の修正コストになります。それが時間が経つにつれて思い出すコスト,自分のコードを理解し直すコストが発生して,当初の予定してい工数をどんどんオーバーします。
このことは,機能を実装してからテストをするまでの時間でも同じことが言えます。実装とテスト,修正までの時間を短くしないと,余計なコストがどんどん発生します。
まあ,僕は物覚えが悪いので,自分の書いたコードもすぐに忘れるからかもしれません。
投稿者 : 大谷 弘喜 | 投稿日時 : 2008.10.09 18:52
あすなろBLOGのトラックバック・コメントは承認制になっています。
すぐにブログに反映されませんので、ご了承ください。





