Re: 従来のソフトウェアエンジニア人事工学が決定的に間違っている点

ダンコーガイ氏に反応されるとは、ワシもえらくなったのー。

まず一番の誤解が、これ。頭の悪い大人100人も、教育次第で頭が充分よくなる可能性があるし、実際そうなっている。

404 Blog Not Found:従来のソフトウェアエンジニア人事工学が決定的に間違っている点

うーん、可能性がないわけじゃないけど、かなり低いよね? 凶悪犯が刑務所で更生する可能性ぐらい低い。Dan氏のまわりは教育次第で頭が良くなった大人が多いのかもしらんけど。

しかし、これが「Ruby on Rails の開発」だったら、どうか。MatzさんやさきださんはDHHを上回る生産性を上げられるであろうか。そして「twitterの開発」だったら? DHHの方が twitter.com の中の人々よりも生産性が高いのだろうか。

回答としては「そんなのやってみないとわかんない」。DHHは十分すぎるぐらいsmartなんだから、彼の得意分野でまつもとさんやささだ先生が勝てるかどうかは分からない。つーかお二方ともWeb系はさほど興味なさげだし、負けるんじゃない? これはDHHが言語開発でまつもとさんやささだ先生を上回るかどうかわかんないのと一緒。
それよりも、この質問に何の意味があるのか知りたい。

なぜMatzやDHHといった人々の生産性が高い--ように見えるし実際そう--かといえば、好きな仕事をしているからだ。客の望んだものではなく、自分の作りたいものを作る。それがたまたま「みんなの望んでいたもの」だからこそ、彼らはそうしていられるのだが、しかしそれだけでは「客が注文した」ものは出来ない。「作ってほしいもの」と「作りたいもの」が常に一致していれば双方ハッピーなのだが、そうはよっちゃんイカを食べながら年収1億円とはめったにならない。

これはその通りですね。好きなことなら生産性は高くなる。
で、それがもとの趣旨とどう関係するの? という疑問が。


なんか、Dan氏は

にも関わらず、

ソフトウェア開発も同じような体制にしたほうがいいのではないか。生産性が 30 倍違うのであれば、バカプログラマー 30 人を雇うより、スーパープログラマー 1 人にサポートスタッフ 5 人つけたほうが安くていいものができるだろう。

とならないのはなぜか。

と言っていて、その理由として

  • 生産性は定数ではない
  • 生産性は何を生産するかで多いに変わってしまう
  • 「生産性が高い」プログラマーほど仕事を選ぶ

ということを上げているんだけど、なんでこれが理由になるのか分からない。「スーパープログラマーでもいつも生産性が高いとは限らない」ことの理由としてならわかるけど、体制が変わらない/変えられないことの理由としてはさっぱり分からない。誰か解説して。
#でもタイトルの『ソフトウェアエンジニア人事工学』はいい言葉っすね。これ、Dan氏の力でぜひソフトウェア工学の一分野にしていただきたい。


つうかさ、みんな「スーパープログラマー」とか「天才プログラマー」とか、大好きだね。こんな言葉が出ると、いちいち反応してんでやんの。もとのエントリは単に「個人の能力差はとても大きいのにそれを無視して属人性をなくそうとするのは間違ってる」というだけの話。スーパーで天才なプログラマーがいなくても、個体能力差が大きいことには変わらないでしょ? 別に 30 倍も違いがなくて 5 倍程度の違いだとしても、その違いを無視するのはおかしいでしょ? ただそれだけのことなのに、スーパーとか天才とかいう単語にこだわるよねー。
なんだろう、コンプレックスでもあるんかな。

確かに効率は悪いよ。でも実際問題、コーディングをしている時間なんて全体の三分の一にも満たないわけで、そこをスーパープログラマーに置き換えて削れる工数なんてたかが知れている。とても単純な話、量が多いだけ。

スーパープログラマのSIにおける限界 - novtan別館

これとかそうだよね。もとの趣旨を外してコーディングだけに限定している。個人能力差が大きいことや属人性のことは、別にコーディングに限った話じゃないことぐらいわかるだろうに。
「スーパー」とか「天才」とかに反応して書くと、こういう内容になるんだろうね。

北島が目指すのは一個の金メダルであるけれども、システムが目指すのは1000画面あるシステムかもしれない。一個の人間の持てる能力を搾り出すのが果たして効率的か。10000円の肉が1000円の肉の10倍おいしいわけじゃないのと同じくらい、1人の力の限界を引き出すことに価値はない。一人の人間が限界を振り絞る、という前提がある競技だからこそチーム北島に意味はある。システム開発においてそういった意味があるケースはごくまれだ。

こういう人ほどプロジェクトに人員を投入したがるんだろうなあ。『搾り出す』とか、なんでそんな言葉を選ぶかね。普通に、生産性の高い人の能力を引き出す、でいいじゃん。プロジェクトが佳境になっているのに生産性の高い人が雑用をしているような状況はおかしいから、サポートスタッフをつけてみてはどうか、という案がそんなにおかしい? 『一人の人間が限界を振り絞る、という前提がある競技』じゃないとサポートスタッフをつけるのは意味ないの?
もうね、『10000円の肉が1000円の肉の10倍おいしいわけじゃない』とか、はぁ? ですよ。月70万の人材より月140万の人材が4倍5倍の生産性を出すような世界で、何言ってるんだか意味不明ですよ。

普段から総工数1000人月を軽く超えるようなプロジェクト内で生活しているせいで、麻痺しているのかもしれないけれども、SIerの仕事ってやっぱり理解されていないなあと思うことはある。

麻痺してるでしょうなあ。人月が多いことに疑問を持たないような人は。