はじめに
なんとなくふわーっと浮かんできた内容をメモがてら書いときます。
プログラマーの仕事の評価はコードだけでは測れないと思っています
私たちの仕事はコードを書いてシステムを提供する事がメインです。なのでまずコードを書けなければ話になりません。もちろん素晴らしいコードの書き手は評価が上がるべきだと思っています。ただ、単純にそれだけじゃ無いよね、というのが私がよく思う事です。
- 素晴らしいコードを書く能力があったとしても、安定して能力を発揮してくれなければそのケアが必要なので周囲の人のコストを食っていきます。
- 素晴らしいコードを書く能力があったとしても、チームのメンバーとうまく連携できなければトータルで見ると高い成果を出せない場合があります。
- 素晴らしいコードを書く能力があったとしても、責任感が無いと顧客からの評価が大変下がります。
仕事でのシステム開発は、楽しいことばかりでは無いです。地味な作業も多いですし、どうしても複雑になる仕様も苦しいです。個人で楽しんでコード書いている時の高揚感が得られないこともしばしばです。ただ、システムを作り出して誰かに使っていただき、お金を得るというのはそういうことなのかもしれません。そうして純粋に高揚する楽しい部分は、各プロジェクトの中の一部や、顧客に依存せずに会社が提供する時間の一部などに含まれるのだと思います。
コードを書ける・書けないだけを純粋に見た時に一定のラインを越えている人がいたとしても、先述したような周辺事情も鑑みると評価を高めにくいことがよくあります。特に私が相対するのが完成された実力者よりも、発展途上のこれからの人という事が多い為に確率としては高くなるでしょう。「いびつな状態」になってしまう事が多いのですね。
もう少し掘り下げ
仕事である以上、コストというものを考えながら物事が進みます。そして評価を上げるのは「他者のコストを減らせた時」が最もわかりやすいタイミングであると私は考えています。「新しい事ができるようになった」時も評価が上がるはずですが、これだけだとなかなか見えにくい時もあるなと感じる為です。
心を安定させる
気に入らないことや、ちょっとした不安や失敗にいちいち動揺してしまう人は、なかなか仕事を手放しで任せる事ができません。仮に手がかかっていないように見えたとしても、上長はそっと見守ったり心の隅に置いていたりします。もしかしたら定期的に意識して何か働きかけているかもしれません。この「他人が心を配ってくれている時間やコストを減らすこと」は、その人の評価を上げます。
チームプレイができるようになる
言動や立ち居振る舞いによって他人の成果を落としてしまうと、他者のコストを増やします。もしも「その人がいない方が他者の心が安定するので成果が出る」レベルにまで達してしまえば、一人で閉じた仕事しか任せられないので大変評価しにくい状態になります。適材適所でうまくはまる場所を考えるのもコストです。その人に合った仕事を用意するのもコストがかかるでしょう。
責任感を持つ
仕事の正確性を上げるのは責任感が問われる事が多い気がします。面倒なことでもやり遂げられる人には安心して仕事が任せられる為、「チェックをする」という上長のコストを減らします。また、他人のやっている仕事を奪って自己の責任を増やそうとする行動は、わかりやすい他者コストの減少なので評価しやすいです。
おしまいに
ちょっと雑に書いたエントリですが、私だとこういう感じで評価というものについて考えますよってことで。