レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

BLOCKVROCKリファレンス目次はこちら

進化的設計 Martin Fowler's Bliki

Martin Fowler's Blikiより、「進化的設計」
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?AConversationW%2FMF3%3AEvolutionaryDesign

以下の部分に激しく賛成。

設計をきれいにする時間が無駄だと思っているのでしょうか。
後から変更する時間を節約できた、今やるほうが簡単だ、とは考えないみたいですね。
今やれば、たかだか数分で済むことも、後からやれば何時間もかかるんですけどね。

デバッグの時間を軽視しているようにも思います。
頑固なバグを取るのにどれだけ時間がかかるか、分かっていないみたいです。
テストを行っていれば、バグが紛れ込んだことはすぐに分かります。
こうすることで、バグが潜り込んでしまう前にバグフィックスすることが出来ます。
デバッグほどフラストレーションがたまる上に時間が無駄なことはありません。
最初からバグがなかったら、ずっと早いってことじゃないですか?

目先の時間よりも後の効率を考えることがどれだけ大切かを、
常に忘れてしまうような気がする。

テストを中心に物事を考えるやり方は本当に理にかなっている。
デバッグは本当に時間のかかる作業で、デバッグに掛ける時間と頻度がプロジェクトの生産性に直結するのだと、今もプロジェクトに参画していて切々と感じる。


進化的設計(つまりアジャイルプロセス)には、時間をかけたチームビルディングが必要だと思う。
私が携わるプロジェクトの多くは寄せ集めのチームであり、そういう状況ではあまりうまく行きそうにない。

アジャイルはチームの中核となる文化が必要で、それを理解した中核メンバーが必要だと思う。

1つか2つのプロジェクトを経て、徐々に呼吸が合ったチームになっていくなかで
アジャイルを部分的に適用していくとうまく行くのではないか。