生産性について
もはや投資とは全然関係なくなってしまったんですが、
プログラマにおける生産性について、なんとなく書いてみたくなったので書いてみます。
最近ではもうないですが、
日本の労働者は生産性が悪いとかなんとかを目にしたことがありました。
そもそもプログラマにおける生産性とはなにかから自分の考えを述べたいなと思います。
(もしかすると見当違いなことを書いているかもしれないです)
簡単に考えると、
例えば、それぞれ一つの機能を作成するのを通常であれば5日で完成することができる見積もりをした場合に、
Aさんが5日で完成しましただと、「普通」といわれるものになる。
Bさんは10日かけて完成しましただと、「悪い」といわれるものになる。
Cさんは3日で完成しましただと、「良い」といわれるものになる。
しかしそれは仕事の速さだけであって生産性ではないような気がする。
もしCさんが完成したといわれる機能にバグが含まれていた場合、
テスト中ならば、再度直してローカルで確認、テスト環境にリリースして再度確認するコストを積み上げですみますが、
本番稼働後ならば、再度直してローカルで確認、テスト環境にリリースして再度確認し、客に説明、受け入れ、納品、エンドユーザに告知など
さまざまなコストが積みあがっていき、
10日ほどかかりましただと一時は良いといわれたCさんも結局生産性は「最悪」になるのではないかと思う。
まあ、本番までいっちゃってたら、テストの精度に疑問を持ったほうが良い気がするが。
AさんBさんCさんの完成の定義が異なっていたら、生産性なぞ測ることはできない。
Bさんはカバレッジ100%の精度をもって完成で
Cさんはとりあえず作ってなんとなく動けばよいよねで完成だと思っていたら。
・・・まあ、この完成の定義がそれぞれ異なっているようなプロジェクトは、ないと思うが・・・いやあるか今の現場がそうだったw
そもそもその生産性を図るための見積もりも正しいのかどうかがわからない。
世界標準的な見積もりを作れることができる人がいれば、
その人は日本の生産性が悪いなんていってもいいと思うが。
ごちゃごちゃ書きましたが、私の中の結論としては
プログラマの生産性とは、リリースして問題がないというところまでいかないとわからない、とてもあやふやなもの。です。
でも一緒に仕事していれば生産性がいい人悪い人ってなんとなくわかりますよね。
これが面接や面談の段階で判定できたのなら、すばらしい職場になると思います。