http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm

ちょいとインスパイアされたので、最近書いたみたいな感じでいく。

どうしてプログラマがプログラムをかけないのか、それはプログラマじゃないからだ。しごく明快な話だと思う。

そもそもプログラマというのは、コーダー(Coder)ではない。プログラムを自分で考えて作る人というのも少々甘すぎる。プログラマというのは、PCなんかなくてもプログラムが書けるし、理解できる、それがプログラマだ。

じゃあ、どうしてプログラマじゃないのにプログラマって言っている人が多いか。それは、プログラムは必ずしもプログラマがつくっているものじゃないからだ。

あなたの周りを見てみよう。基幹系、業務系はSIerがちがち、パッケージでバリバリな状況だが、IT業界でない限りプログラマがいる会社なんてそれほどたくさんじゃない。(少なくはないだろうけど)

でも、業務でちょっとした集計や、帳票、定型処理をPC上でやりたいなんてのはごまんとある。じゃあ、誰がそれをやるのか?

プログラマじゃない人だ。PCに詳しい人、触るのが好きな人が上司から「じゃあちょちょっとやってみてよ。簡単でしょ」的に、そういうものを作らせたり、自分でつくったりする。

それはExcel上だったり、Accessだったり、少しかじった人だとASPPHPとかに手を出す。だけど、彼らはプログラマじゃない。何しろ「ちょっと頼まれた」「ちょっと必要なので」な人なので。
で、そうやってつくってしまうと後から後から色々やらされて、いつの間にかPC管理者なんてものに納まってしまって、にっちもさっちもいかなくなったり。

中小企業は、結構そんな感じが多いんじゃないかなと思います。だから、正しいプログラムとか、きちんと考えられたシステムにはなっていないことが多い。

そういう人たちは、作りたいプログラムについての勉強はするかもしれないが、プログラムそのもの、エッセンスについては勉強しない。動けば、それでよし。業務で支障なければそれでよし。
だから、メンテナンスや拡張で困るんだよ。どういうことをしているのか、わかってないから。

しかしプログラマは、そういうことをいっちゃいけない

よく言われる「動けばイイ」的発言は、プログラマ的には意味が違う。プログラマは、技術に妥協しちゃいけない。レガシーだろうが、Web2.0なものだろうが、技術を駆使して、正しくプログラムとデータと人間を動かすべきだ。業務的に政治的に妥協しても、技術に妥協し続けるならば、プログラマではないはずだ。

プログラマは、プログラムを作成することで人間を動かすのが仕事だ。

うん、適当な文章だ。