プログラマが知るべき97のこと
本記事は、株式会社オライリー・ジャパンより出版された『プログラマが知るべき97のこと』の中からひとつのエッセイを取り上げ、そのエッセイをクリエイティブ・コモンズ表示3.0の条件下で転載したものです。
本書の各々のエッセイは、オープンソースモデルに従い、ほぼ無制限で利用が可能です。クリエイティブ・コモンズ表示3.0の条件下で、自由に使用することができるのです。つまり、どのエッセイも、著者の名前を明記すれば、自由に転載、改変が可能であるということです。
『プログラマが知るべき97のこと』はじめに(p.XII)
なお、原書(英文)のエッセイは、下記のWebサイトで公開されています。
Contributions Appearing in the Book – Programmer 97-things
64 プロのプログラマとは?
ロバート・C・マーティン(Robert C. Martin アンクル・ボブ)
「自分が責任を取る」という態度、責任感
プロのプログラマとは、どういう人のことでしょうか。
プロフェッショナルなプログラマの最大の特徴は「自分が責任を取る」という態度、責任感です。プロのプログラマは、まず自分のキャリアに責任を持ちます。責任の取れないような見積りやスケジュールは決してせず、作る製品の質にも責任を持ちます。ミスがあれば、必ず自ら対応します。他人に押しつけるようなことは一切しない、それがプロです。
なぜ会社から給料がもらえるのか
キャリアに責任を持つというのは、自分の力で自分の価値を高め、成長していくということです。自分の意志で新たな知識と技術を習得し、常に最先端にいられる努力をするのです。プログラマに教育を受けさせるのは雇っている会社の責任だと考えている人も多いようですが、それは残念ながら完全に間違いです。
他の仕事、たとえ医師や弁護士のことを考えてみてもわかるでしょう。彼らは誰かが教育を受けさせてくれるなどとは考えません。彼らは仕事が終わったあとや休みの日に、自費を使い自らの意志で学会誌や判例を読むなりして勉強をしているのです。そうやって自力で最新の知識を得ているのです。
プロのプログラマも同じことをすべきでしょう。プログラマと会社の間の関係は雇用契約書に明記されているはずです。それを見れば、なぜ自分が会社から給料がもらえるのかがわかるでしょう。プログラマは良い仕事をすると約束したから、その見返りに給料の支払いが約束されているのです。
プロの姿勢
プロのプログラマは自分の書いたコードに責任を持ちます。間違いなく正しく動くと確認できるまではリリースをしません。正しく動くかどうか確信のないコードをリリースしてしまう人をプロとは呼べません。当然のことです。
プロのプログラマは品質保証(QA)チームに問題を見つけてもらおうとは考えません。徹底的にテストをし、「絶対にもう問題など見つかるはずはない」と思えるまで、コードを QA には回さないのです。もちろん人間のすることなので、それでも QA では何か問題が見つかることになりますが、それは仕方のないことです。重要なのは、何も問題が見つからないよう努力する姿勢です。まさにそれがプロの姿勢なのです。
プロのプログラマはチームプレイヤー
プロのプログラマはチームプレイヤーです。一人一人が自分の仕事だけでなく、チーム全体のアウトプットに責任を持ちます。互いに助け合い、互いに学び合い、足りないところは補い合います。チームメイトが何か失敗したときには、誰かがカバーします。いつか必ず自分が逆にカバーしてもらうことになると知っているのです。
問題追跡システムはプログラマが怠惰であることの証拠
プロのプログラマは、バグリストが一定以上の規模にならないよう、常に注意を怠りません。バグリストが長大になってしまうのは怠惰の表れです。問題追跡システムに記録されるバグの数が何千にも及んでしまうのはまさに悲劇ですが、そうなってしまうのは、開発に携わる人間があまりにも不注意だからです。
実のところ、そういう問題追跡システムを必要とすること自体が、プログラマが怠惰であることの証拠とも言えるのです。よほど巨大なプロジェクトでもない限り、問題追跡システムは実は必要ないのです。巨大なプロジェクトならばバグ数が増えて管理を自動化させることもあるでしょうが、それ以外に問題追跡システムが必要になることはまずあり得ません。
プロの仕事をして欲しい
プロのプログラマは、絶対に、間に合わせのいい加減な仕事はしません。自分の誇りにかけて、美しく、完璧な製品を作ろうとします。余分な部分のない「きれいな」コード、構造化されたコード、読みやすいコードを書くよう常にこころがけます。業界標準やベストプラクティスは確実に守ります。決してあわてて仕事に取り組むようなことはしません。
たとえば、あなたがもし、心臓切開手術を受けるとします。そしてその様子を幽体離脱して上から見ているとします。医師に与えられた時間は限られています。他の仕事と違い、締め切り(deadline)を過ぎてしまえば、文字通りあなたは死んで(dead)しまいます、人工心肺を装着した状態で長時間経過すると、血球の損傷が激しくなるからです。
こういう時あなたが患者なら、医師にはどう行動して欲しいでしょうか。納期に追われるプログラマのような行動を望みますか。「とにかく時間内に終わればよい」というようないい加減な仕事をして欲しいですか。あるいは「今、ちょっと治せないので、後にします」などと言って欲しいですか。
やはり、時間の無い中でも平常心を保ち、その時にでき得る最善の処置をして欲しいと思うのではないでしょうか。間に合わせの仕事ではなく、プロの仕事をして欲しいと思うはずです。
プロであるということは、責任を負うということ
プロであるということは、責任を負うということです。自分のキャリアにも、製品の質にも責任を負います。製品の品質に責任を負うということは、無駄がなく、動作も正しいコードを常に書き続けるということです。たとえ納期に追われて余裕がなくなった時でも、決して手を抜くこと無く、最善の努力を尽くして良い製品を作るということです。
コメント