TDDBC in Tokyo のUstを見て、ウォーターフォールとアジャイルの違いについて気づきがあったのでまとめてみる。ちなみに、僕は本当のアジャイル開発をやったことがないので、アジャイル開発に対する記述はイメージが大部分を占めていることを先に断っておく。 ちょっと前まで、僕はアジャイル開発を難しいものだと思っていた。ウォーターフォール開発でうまくできないのに、アジャイル開発でうまくできるはずがないとも。最近はちょっと、それは違うんじゃないかと思っていたけど、確信がなかった。けど、以下を見てそれは確信に変わった。 動作するきれいなコードを書くには きれいな設計をしてそれをコードに落とし込む きれいな設計を追求するとコードを書くところに辿り着けない(完璧主義の呪い) 動作するコードを書いて、それをきれいにしていく(リファクタリングしていく)という手法もある コードを書いてみて初めて気づくこともある。 前者はウォーターフォール開発、後者はアジャイル開発と置き換えるとイメージ沸きやすい。 念のため断っておくと、前者をウォーターフォールと見立てたのは僕の感想であって、