プログラミングプログラマーには、コーディングの生産性で10倍、コードレビューの速度では6倍もの能力差があるという2009年9月15日プログラマーの生産性をテーマにした有名な著書「ピープルウェア」には、最も優秀なプログラマと最低の成績のプログラマのあいだには約10倍にあたる生産性の違いがある、というデータが出てきます。プログラマーの生産性を計るコンテストでの結果のグラフ。最優秀者は最低者の約10倍の生産性がある(書籍「ピープルウェア」p57より引用)これは、1984年から1986年にかけて92社、延べ600人が参加したプログラミングコンテストのデータを分析した結果から導き出された結果で、課題として与えられたプログラミング作業の開始からコンパイル時のエラーを消すところ(第1チェックポイント)へ到達するまでにかかった時間を比べています。グラフを見ても分かるように、最優秀者と最低者のあいだには作業時間にして約10倍のひらきがあります。最優秀者は平均の約2.5倍の生産性だそうです。COBOLやFortranのような旧世代のプログラミング言語と、PascalやCのような現代的なプログラミング言語でのコーディングでの生産性はほとんど同じであったそうです。プログラミングの経験年数や得ている収入と、プログラマーの優秀さとの相関関係もほとんどなかったと記述されています。」に、興味深いデータが掲載されていました。ソフトウェアの品質を向上させる技術の1つである「ソフトウェアインスペクション」を専門にしています。いわゆる、コードレビューの方法論や効率などについて研究されていると言えばいいでしょうか。森崎氏の研究グループでは研究の一環として、一般のプログラマを対象にさまざまなコードレビューを実際に行ってもらっています。記事から一部を引用します。私たちの研究グループで実施した観察でもソースコードを読む速度は個人差が大きいことを確認しており、同じソースコードを理解するための時間に6倍の差がある事例を確認しています。プログラミングと同様に、コードレビューでもかなり個人の生産性には差があることが分かります。記事では、いくつかの書籍や論文を挙げて、コードレビューにおける平均的な1時間当たりの行数も示しています。181-211ちなみに上記の森崎氏の記事では、研究のためにオンラインでできるコードレビュー者を現在募集しています。誰でも参加できて、自分が参加者の中でどれくらいの生産性なのか、どこが弱い部分か、といった客観的な評価を知ることができるそうです。コードレビューの生産性として6倍という数字を示した森崎氏の研究グループの報告は現在作成中とのことで、公開されたらまたPublickeyで紹介しようと思います。生産性に深い関連があったのは「誰とチームを組んでいるか」だった!このようにプログラマーの生産性には大きな開きがあることが明らかにされています。能力を向上させるにはどうすればいいのでしょうか?書籍「ピープルウェア」によると、プログラマの生産性に最も深い関連があったのは「誰とチームを組んでいるか」だったそうです。パートナーの成績が良ければ、もう一人もやはり優秀な成績であり、いつまでたってもプログラムの出来上がらなかったプログラマーは、その相手も出来が悪いとのことです。優秀なプログラマーになりたければ、優秀な人と一緒に働くことが大事だというこの指摘は、もしかしたら多くのプログラマーにとって密かに実感していることではないでしょうか。」もぜひ参照してみてください。開発プロジェクトで技術よりも何よりも大事なもの――それは「人」。一人一人の人格の尊重、頭を使う人間にふさわしいオフィス、人材の選び方・育て方、結束したチームがもたらす効果、仕事は楽しくあるべきもの、仕事を生み出す組織づくり、という6つの視点から「人」を中心としたプロジェクト開発の大切をユーモラスに語っている。10)ソフトウェア業界はチームによる開発がほとんどです。この開発チームに必要なものは、自分たちの計画を作り、自分たちの進捗を追跡し、自分たちの作業を調整しなければならないのです。チームは共通のゴールを目的とし、共通の作業プロセスを持ち、自由かつオープンにコミュニケーションをとらなければなりません。本書(教科書)とそれに付随するコースは、チームソフトウェア開発の総合的な入門書として新たなページを刻むものです。Niino(jniino)IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。2.7サポートを発表Google、Lookerの買収完了を発表。Enterprise、BtoBスタートアップ向け支援プログラムで無料提供と発表。Networksの買収を正式発表。Terminal」機能確定版リリース。コマンドラインからIssueやプルリクなど実行可能に。usPublickeyについて/運営者についてお問い合わせ広告についてプライバシーポリシ。