なんか連休前後に複数の人と会話していて思ったことを書きたい気がしたけど、XP白本にある「完璧にやる」が全てを表しているので書くことがなくなってしまった。

完璧にやる

手を抜くのはそもそも完璧にやってないし(レビューで手を抜いてるのわかるし、レビュー負荷あがってよくないし)、割り当てられた作業についても「それは目的を達成するための最小の手数ですか?本当にそうですか?」って自問して作業していれば無駄をなくして時間あたりの作業としては最大限のことをやっていることになるだろうし。

(プログラマに対して「手を抜く」って表現使うのムズカシイ…怠惰も同じ…サボる・妥協する・なんも考えてないって表現するのが正解なのかな?)

見積もりがだいたいできて、作業が最小の手で実現できていれば、プロジェクトでソコソコ活躍できると思う… さすがに仕事で解決しないといけない問題に対しては真摯に対応しないと信頼貯金が貯まらないので、自分の首締まるだけ

コードが書ける、とは?

会話して気がついたのは、「(プログラマが)コードが書ける」って「仕事ができる」って意味で使っていることがあるってことかな。

アルゴリズムとか言語機能とか、ライブラリの機能を知っている、活用できるっていうのは求められるところなんだけど、仕様を理解するとか、相手が求めている機能を察知するとか、コードが書ける状態までもっていく力 がこの中に含まれている。求められている期間内に ってのを追加する必要があるかもしれない。前者ができていれば、後者は勿論できているよね?というイメージがあると言ってもいいかもしれない。コード書くときには必要になる能力だから。

完璧な詳細設計書が手渡されてあとはそれをコードに落としていくだけ、という作業がどれだけあるの?と言われるとそんな機会はないので、そりゃそうなんだけど、「コードが書ける」という字面にはそういう情報が抜けているような気がした。前提条件化されているので明文化や言語化されることが少ないということかな。

技術があっても仕事できないと仕事こないので、仕事以外でしか活躍できなくなってしまう。技術を評価してもらう土俵まで到達しないことになってしまうので、実際にコードを書くところ以外も鍛えなければならない。勿論、技術も両方鍛えないといけないのだけれども。

終わりに

おっさんがルーキーみたいなこと書いてしまったけど、夏休みがいろいろ思い返すよい機会になった。