生産性
生産性向上

システム開発における生産性ってなんだ?

初めての投稿が愚痴っぽくなってしまいました。
でも我慢できなかったので

生産性について考えた理由


昨今の働き方改革の推進により、自分の所属する企業で生産性の計測が始まったが、その方法に疑問を持った為、調べてみました。

結論から言うと・・・。


自分の調査ではシステム開発における生産性の適切な評価方法を見つけることができませんでした。
皆様のお知恵を拝借させていただきたいです。

私の会社の生産性の計測方法


一時間でアウトプットできた成果物の量を計測してるようです。
一週間ごとに集計し、前週と比較して「先週よりも下がってるぞ!」
とお叱りを受けます

ここでいう成果物とは

  1. 設計書等のドキュメント
  2. プログラムのステップ数

になります。

例を書くほどでもないと思いますが

  • Aさん→1時間に100ステップを書きました
  • Bさん→1時間に200ステップを書きました

つまりこの計測の評価ではBさんはAさんの2倍仕事をしたということになります。

本当にそうでしょうか?

私が疑問に思ったのは以下の2点です。

  1. 大量のコードを書くこと=生産性が高い?
  2. 機能の難易度が考慮されていない

という点です。

1.大量のコードを書くこと=生産性が高い?


私の会社の計測の仕方では一時間当たりに書くコードの量が多ければ多いほど、生産性が高いという評価になります。

沢山コードが書けるというのは評価すべきだと思いますが、
少ないステップ数で同じ処理を実装した場合評価が低くなってしまいます。

沢山コードが書けることと同じぐらい、最低限の処理数でコードが書けること1も重要であると個人的には思っております。
また極端な話になってしまいますが、バグが存在しているようなダメなコードを大量にコーディングした場合でも、生産性は高くなってしまいますよね。

2.機能の難易度が考慮されていない


ステップ数だけで評価しようとすると、
同じ100ステップの機能でも実装難易度が違うのに、同じ評価になってしまいますよね。

このように、ステップ数や成果物の量だけで生産性を計測しようとするのは平等とは思えないのです。

ではなにで生産性を評価するのがいいのか?

これだ!というものを見つけることができませんでした。
ここまで読んでくださったかた申し訳ございません。

大事なのは計測の仕方ではなくその理由


生産性を計測する目的をはっきりさせることが重要だと感じました。

生産性を上げて、一つのプロジェクトの開始から完了までの期間を短くするという目的ならば、

日々の成果物で生産性を計測するのではなく、テスト作業やデプロイ作業の自動化を推進するほうが効果が計測しやすいのでは?という結論に至りました。


  1. 可読性を低めない範囲で