達人プログラマーには実践的なプログラマーとなるために常に心がけておくべきことや日々のソフトウェア開発で実践すべきことが具体的にまとめられています。
すべてを一度に行うことは困難だと思いますが、すぐに試すことができることについては実際に実践し、ひとつひとつ身につけていけばより優れたプログラマーになることができます。
・新しいもの好き(Early adopter / Fast adapter)
・研究好き(Inquisitive)
・批判的(Critical thinker)
・現実的(Realistic)
・何でも屋(Jack of all trades)
この5つの性格に加えて達人プログラマーのすべての人に共通している性格が
・自分の技術に関心をもつこと!
常に良いものを作り出していこうとすると必ず良いものに触れて、学んでいく必要があります。
新人は良いものを作っているからどうかよりも、動作するかしないかに注意を払うことで精一杯かもしれません。
しかし、先輩やチームリーダがソフトウェアは動作すればそれでよいという程度の関心しか持っていなようでだめです。
周りの環境はあなたの想像以上に大きな影響を与えます。
・あなたの仕事について考えること!
達人プログラマーになるためには、常に自分自身が何をやっているかということを考え続ける必要があります。
これは今行っている作業をどこかで1度だけ検証するということではありません。
日々の意思決定、あるいは各開発での意思決定すべてに対する継続的かつ批判的な評価です。
絶対に漫然と行ってはいけません。
絶え間なく考え続けてリアルタイムで自身の作業を批判するのです。
ビルの割れた窓ガラスを放置しておくと、さらにそのビルは荒廃し、さらにその周辺も荒廃が広がっていくという「割れ窓理論」があります。
ソフトウェアもこの「割れ窓理論」が当てはまります。
うまく設計・実装されたソフトウェアであっても、作り手の手を離れて他人が修正すれば修正者のレベルによってはどんどん壊されていきます。
また引き継ぎという名目で新人や若い人にソフトウェアを引き継いでいく場合もソフトウェアの破壊は容易に発生します。
「割れた窓」(つまり悪い設計、間違った意思決定、質の悪いコード)は発見したと同時にすべて修復すべきです。
もし、正しく修復するだけの十分な時間がない場合は、その旨をわかりやすくコメントで残しておきましょう。
チームは「割れた窓」を大目に見てはいけません。
チームは製品の品質に責任を持ち、「割れた窓」の哲学を理解した開発者を支援することにより、まだ発見されていない割れた窓を見つけるように推奨しないといけません。
しかしながら、何が割れているのかとか、何が正しいコードで何が悪いコードなのかを判断するには長年の努力と経験を必要とします。
”知識への投資は常に最高の利息がついてくる”
〜 ベンジャミン・フランクリン 〜
知識と経験はあなたのプロとしての資産の中でももっとも大事なものです。
しかし、そういった資産は残念なことに有効期限付きです。
あなたの知識は新しい技術・言語・環境が開発されると時代遅れのものとなっていくのです。
知識が時代遅れにならないために、以下のような提案がされています
・毎年少なくとも一つの言語を取得する
・毎四半期毎に技術書籍を読む
・技術書以外の書籍を読む
・講習を受講する
・異なった環境に慣れ親しんでみる
◆ DRY - Don't Repeat Yourself.
(繰り返しを避ける)
◆ 二重化について
◆ 基本的なツールを熟知せよ
◆ デバッグの心理学
◆ 完璧な開発などできない