コードは書きやすく、しかして読みにくい

プログラマーが常にありもののコードを捨てて新しく書き直したがる隠れた理由というのは、こうだ。プログラマーは、古いコードはクソだと考えてしまうんだ。もうひとつ、おもしろい観察結果がある。彼ら(プログラマー)はだいたいにして間違っている。プログラマーが古いコードがとっ散らかっていると決めつける理由は、プログラミングにおける基本的かつ根本的な法則

コードを読むのは書くよりも難しい

にある。
コードの再利用が難しいわけもここにある。きみらのチームメンバー全員が、文字列を文字列の配列に分割するための関数に違うものを持っていて自分のを使いたがる理由もこれだ。みんな自分の関数を持っている。つまるところ、古い関数がどう機能するかを解明するより、書くほうが簡単だし楽しいからだ。

There's a subtle reason that programmers always want to throw away the code and start over. The reason is that they think the old code is a mess. And here is the interesting observation: they are probably wrong. The reason that they think the old code is a mess is because of a cardinal, fundamental law of programming:

It’s harder to read code than to write it.

This is why code reuse is so hard. This is why everybody on your team has a different function they like to use for splitting strings into arrays of strings. They write their own function because it's easier and more fun than figuring out how the old function works.

Things You Should Never Do, Part I – Joel on Software

(※邦訳版の Joel on Software にも掲載されているエッセイということだけれど、心に響くものがあったので自分訳を持ちたくなった次第。ああプログラマー、自分独自のものを持たないと気が済まないのね…)