続・「ITエンジニアの『生産性』と、データ・サイエンスの微妙な関係」

プログラマの生産性は20倍違うという表現は誤り、プログラムはピアノだと思えば良い。 猫ふんじゃったならだれでも引ける。」 http://revilog.com/2013/07/10197.html

関連.

うーん,言いたいことは分かるが,危険な比喩かもしれない.

プログラマの生産性は20倍 という表現がマズイのではないか?と思い始めている。20倍なら20人雇えばいいよねとなる。

「少なく見積もっても30倍」だし*1,量的な差に加えて質的な差が決定的なのだけどね.


人月の神話

人月の神話

また人月において人と月が可換でないことは「人月の神話」で指摘されてたはず.*2

しかし、実際のプログラマの生産性は ピアノを引くようなものだ。
 
猫ふんじゃったならだれでも引ける。 だけれども、 そのレベルの人を500人集めても、ショパンは引けない.
ショパンを引きたければ、ショパンを引けるピアニストを連れてくるしかない。 一人か二人で十分。

ショパン」とか「猫ふんじゃった」とか「バイエル」とか言われても,経験のない人間にはどのくらいの難易度の差があるか分かり難い.


それはさておき,ピアノで例えた場合は,

最初から「猫ふんじゃった」を弾けた人なんていない.どんな名ピアニストだって,みんな何度も繰り返し練習して弾けるようになったんだ.

それと同じように,誰だって練習すればプログラムできるようになるんだ.Fizz-Buzzだろうとマルチスレッドだろうと,それは変わらない!(キリ)

という誤解をする管理職がいそうで怖い.


今のIT業界は500人集めれば、一人か二人ぐらい、ショパンを引けるピアニストが混ざってるから成功しているようなものだ
玉石混交だからだ。
しかし、そういう状態はもう起きなくなってきてる。そらそうだろう。

http://b.hatena.ne.jp/entry/revilog.com/2013/07/10197.html

見た目は違うけど,本質はそういう気もする.

1台のピアノでショパンを演奏するのに,一人のピアニストで1時間かかります.
では10台のピアノを用意し,100人の人間を集めたら,ショパンを演奏するのに何分かかりますか?

みたいな.*4


或いは,次のようなジョークが,ジョークですまないかもしれない.

Q:SIerで「猫ふんじゃった」を演奏するのに,派遣社員が何人必要ですか?


A:100人.
右手と左手の各指担当者が各一人ずつで10人.
譜めくり担当が10人.
プロマネが10人.
残りは10台のピアノが動かないように支える係.

  • id:kuippa だがしかし、日本はそのピアノですらバイエルを何番までやったかで技術力を推し量ろうとするのだよ。

面接の定番が「XXをやったことがありますか?」「XXを使ったことありますか?」.本当に人事はアホだと思う瞬間がコレ.*5

あー,あるね,そういう話.

「実装してコミットが終わるまでの時間が短い」のを「生産性が高い」と勘違いしてる管理職.コードが読めないので,可読性とかコード品質とかテスト可能性とかを全く分かってない.

  • id:mikage014 玉石混合の500人を後ろに控えて「今度の演奏会でショパンを演奏してもらうのにいくらかかりますか?」と聞かれて金額を出すのがIT業界のお見積
  • id:lets_skeptic できるプログラマは単純作業もすばやく完了する。比べられるところで比べれば、10倍とかの生産性の差になるのはまあ事実でしょう。
  • id:zz_sexy よくわかる。今やってる仕事、当初はインターンの子にアルバイトでやらせる予定だったのが僕に回ってきたんだけど、これインターンレベルじゃ100人いても完成しなかったと思う。
  • id:tamtam3 ルービットキューブじゃないかな? 1面そろえるレベルなら誰でもできるけど、全部そろえるのは 出来る人は即できるし、出来ない人は永遠にごちゃごちゃ弄ってる感じ?

「出来ないプログラマが,ルービックキューブをゴチャゴチャ弄くってるようなもの」というのはその通りだと思う.

ただしルービックキューブは虎の巻とかあるんだよな.そういうのでやり方を覚えると,できない人でもできるようになったりする.
google:ルービックキューブ 攻略法

プログラミングを分かってない管理職にルービックキューブのたとえを使うと「じゃあ虎の巻を用意して,新人にやり方をたたき込んでくれ.これは命令だ.それができないのはお前の教え方が悪いせいだ.」と言い出しかねない.

  • id:kazuneko 「しかし、そういう状態はもう起きなくなってきてる。そらそうだろう。」個人的にはまだまだ玉石混交なんじゃないのという気はしてる。

未だに玉石混淆,給料一律ではあるけれど,そのためにショパンを弾ける人が年々減り続けているという話だと思う.

バグを作るのが専門の人と取り除くのが専門の人で給料同じなら,そらそうなるだろう.

猫ふんじゃったに見るシステム開発の悲哀」

http://nekoya.github.io/blog/2013/07/11/neko-to-computer/

けど、きっとこんなこと言うオッサンが出てくるんだぜ…
「1小節だけならどうにかなるだろ。500人に1小節ずつ弾かせて後で編集でつないでよ」
「難しいところも右手だけ、左手だけなら以下略」
「大丈夫、ちょっとぐらい間違えたって分かりゃしないって」
そこだけ外注に出して弾いてもらえばいいんじゃないの。あとは猫が踏めりゃどうにかなるって」

そして、挙げ句の果てには

「天才がいないからショパンが弾けないなんて甘え。工夫すればどうにでもなるのに、これだから技術者ってのはいけませんな。ガハハ」

とか言われて世界滅びろとか思うんだ…

激しく同意.

*1:数字はあまり重要ではない.

*2:これも電子書籍で出てないんだよな.紙の書籍は全文検索できないから,チェックするのがめんどくさい.

*3:「遅れているソフトウェアプロジェクトへの要員追加は、さらにプロジェクトを遅らせるだけだ」という超有名な法則.なのだが,最近の日本IT業界においては,半ばロストテクノロジー化している.

*4:ブルックスの法則において,人や機械を増やしてもソフトウエア開発を高速化できない理由は,本質的にコミュニケーションコストが高いからということが指摘されている.

*5:しかもショパンは天才的に弾けるけどバイエルを弾いた経験がない人は,「バイエル経験なしなので書類選考落ち」とかやってるんだから.