Plan to Throw One Away

Stoyan Stefanov(YUIの開発者)「Javascript Patterns」より引用。

Talking about first drafts, there's also the idea of "plan to throw one away."
It may look a little extreme at first, but it makes a lot of sense,especially when you have mission-critical project at hand(and human lives depend on it).
The idea is that the first solution you come up with should be thrown away and then you start from scratch.
The first solution may be working solution,but it's nothing more than a draft,one example way to solve a problem.
The second solution will always be better,because you now have a much deeper understanding of the problem.
In the second solution,you're also not allowed to copy-paste from the first one,which helps prevent from taking shortcuts or settling for the nonperfest solution.

最初の下書きについて言えば、”それを捨てる計画をする”というアイディアがあります。
最初はちょっと極端に映るかもしれませんが、これは道理にかなっています。特にあなたがミッションクリティカルなプロジェクトを担当している場合は。
あなたが最初に思いつた解決法を捨てて、一から作り直すのです。
最初の解決法はちゃんと動くかもしれませんが、それは下書きで、問題を解決する方法の1つにすぎません。
より深く問題について理解するようになるため、2つ目の解決法は常により良いものになります。
2番目の解決法では、ショートカットや不完全な解決法に妥協しないためにコピー&ペーストは禁止されます。

アジャイルとかスパイラルモデルも同じような思想に基づいていると思うし、「人月の神話」にも最初に作ったシステムは捨てようみたいな話があった。
Stoyanの主張が独特なところなコピペを許さないってとこ。
小さなシステムだったらコピペなしで作り直しってもの現実的に考えられるけど、大規模システムだとどうかなあ。