プログラマーの生産性

プログラマーの生産性は人によって5倍〜10倍は違うと考えている。
ひょっとすると何倍では測れない時もある  そんなバカなと言われそうだが、実際に「この人ならできるが この人ならできない」という時は出来るか、出来ないかの違いになりX倍という比ではなくなる。このようにプログラマーのスキルはものすごく違うのにシステム開発の現場ではみそもくそも一緒に計算されることが多い。

実際に非常に少数のチームで開発している現場と恐ろしく大量の人を投入して低品質のシステムを開発している現場の両方を見ていると、生産性とは何だろうと考えさせられてしまう。

この両者の違いは多くの場合マネージャの資質にかかっている。あまり技術的なことが分かっていないマネージャの場合、もしくは官僚的な組織の場合は大量の人を投入する開発スタイルを取ることが多い、また、技術的にポイントを押さえているマネージャの場合は少数精鋭で開発チームを組むことが多い。
このどちらが効率的かは一目瞭然だが、悩ましいのは大規模開発である。

大規模開発ではどうしても大勢で並行的に開発する局面が必要になる。その時はやはり少数精鋭というのは難しくなる。この時にものを言うのがアーキテクチャの存在でなる。

いずれにしてもシステムを技術者の頭数だけで管理しようとしているプロジェクトは注意が必要である。

技術者の頭数ではなくてスキルとチームの組み立て方やプロセスに気を配ったプロジェクト管理を心がけたいものである。