優秀なプログラマを数値化してみる

引き続きマネーボールネタ。

マネーボールに触発されて昔やったのが,優秀なプログラマの数値化。

マネーボールでは野球選手のプレーでデータ化されているもの(被本塁打の数や四球の数など)を解析し主観的でなく客観的な評価を行い,従来の評価ではあまり良くない(つまりトレード等で金銭的な負担が少ない)が優秀な選手をさがそうというのがテーマ。

このテーマにそって優秀なプログラマを客観的に調べられないかと考えていた。

まず野球選手が野球に勝つ事を目的にしているが,プログラマは製品を完成させるのが目的だ。
製品が完成されるまでにプログラマが行う行動(プレー)は調査や,プログラムを書いたり,仕様書を書いたり。

で,一番大事な行動というか目的を達成するために絶対に必要なのがプログラム(かかないとはじまらない)。

ではこのプログラムを書くという行動で測定できそうなものはどれだろうか?

そもそもおかしいというかもう笑うしかないのはコード量。
これは意味がない。
問うべきはコードの質。

コードの質,例えばすごいアイデアや難しい数式を使ったものは客観的なデータとして測れるだろうか?
仮にAさんというプログラマが書いたコードによってそれまであった処理の速度が2倍になったらそれをどのように評価したらいいか?

これは難しい。
そもそも全員一斉に同じ問題を解いて,速度を測るなんて事は仕事では無い。
比較対象がいない処理とかで速度をはかっても優劣は付けがたい…。


ではバグはどうだろうか?
バグはあって当然みたいな事を言う人も多いが,基本的に少なければ少ないほどいいプログラムだ。
これは簡単に測定できそうだ。

例えば

  • 書いたコード量に対してのバグ発生の回数から割出されるバグ率

これはとても分かり易い。

それと

  • バグの修正回数

他人のプログラムを直した回数は評価が高いと思う。

この二つなんかはルールをもっと詳細に決めていけば測定はできると思う。