91-良いプログラマになるには

プログラマが知るべき97のこと」の91個目のエピソードは、良いプログラマの条件に関する話です。きのこ本に書かれているエピソードは97+10本ありますが、大きくテストに関する話とプログラマとしてどうあるべきかという話がかなりの割合を占めています。このエピソードでは、良いプログラマの条件を次のような事を常に意識していると定義しています。

・どんな場合でも、「とりあえず動きそう」というだけのコードは決して書かない。
・わかりやすいコード、保守しやすいコード、正しいコードを書く。本当に正しいと言えるかはあらゆる手段を使って確認する。
・他のプログラマと協調する。
・自分が扱ったコードは、必ず、自分が最初に見た時よりも少しでも良いコードにする。
・絶えず積極的に新しい言語、イディオム、テクニックを学ぶ。ただし、学んだことをむやみには使わない。

このような事を常に意識しながら、コードを書いていく事で「良いコード」が作られていきます。それが実践できるプログラマが、良いプログラマです。どんなに条件が厳しくとも、良いコードを書く努力します。
しかし、現実のソフトウェア開発では、リソースや納期など、プログラマが解決できない制約がたくさんあります。また、プロのプログラマであれば、一度受けた仕事は最後までやり遂げるという責任を持ちます。極端な言い方をすれば、仕事としてコードを書くプログラマの責任は、動くソフトウェアを提供する事であり、良いコードを書くことではありません。
もし、リソースに制限がなければ、「良いコード」を書いた上で「動くソフトウェアを提供する」事は可能です。しかし、現実としてはどこかで妥協しなければなりません。「動くソフトウェアを提供する」事は妥協することができないため、必然的に「良いコード」を書くことを妥協せざるを得ません。良いプログラマを目指しているプログラマであれば、誰もが経験したことがあるでしょう。
自分は「良いプログラマ」であると自信を持って言うことはできません。しかし、「良いプログラム」を書くことに妥協しなければならなかった時、ほとんどいつもですが、とても悔しく思います。自分にもっとスキルがあれば、もう少し良いプログラムを作れた、といつも感じます。だから、少しでも妥協しなくて良いように、日々の学習を欠かさないようにしています。
おそらくは、生涯かけたとしても、妥協しないソフトウェア開発は実現できないでしょう。それでも、少しでも自分の納得が出来るソフトウェアを作りたいと思います。自分に妥協し、学習を止めてしまったならば、そこで終了です。

プログラマが知るべき97のこと

プログラマが知るべき97のこと