GeekFactory

int128.hatenablog.com

自分で手を動かさずに方式を決めること

ここ数日、自宅サーバの仮想化方式を決めるためにkqemu, Xen, Linux-VServer, jailやらを試していました。Webで評価記事がたくさんありますが、正直なところどれも実際に使ってみないとわからんなと思います。

自分で手を動かさずに方式を決められるか?

サービスを作っていく上でどの技術(方式)を採用するか分かれ道があります。早い話が、Windows ServerにするかLinuxにするか、Javaにするか.NETにするか。方式を決めるには、必要な条件を洗い出し、どれがどう優れているかを評価します。

グラスと煎茶碗

ここに面白い喩えがあります。

方式としてどちらが優れているのかを、わかっていない人に説明するのって大変だよね。説明しないことはないけど手間はかかるし、そもそもなんでそんな上司が以下略。

例えば、グラスと煎茶碗、どちらも飲み物を給仕することは出来る。では、コーラを給仕するときにどちらを用いるべきか、理由を添えて説明しなさい。という例えが面白いと褒めてもらったので記しておくwww

http://d.hatena.ne.jp/katzchang/20081104/p2

グラスと煎茶碗のどっちかしか使ったことのない人もいるかもしれません。

  • グラスと煎茶碗の両方を使ったことがある人→「コーラならグラスでしょwww」
  • グラスしか使ったことない人→「煎茶碗でもコーラ飲めそうだけど?」
  • 煎茶碗しか使ったことない人→「煎茶碗でコーラはなんか微妙だけど、どうして微妙なのか説明できない」

そこで、どちらが良いかをいろんな指標で評価します。

評価観点 グラス 煎茶碗
機能性
信頼性 ○(冷たいコーラであればOK)
使用性 △(爽快感がない)
効率性 △(容量が小さい)
保守性
移植性 - -

評価観点は wikipedia:ISO_9126 を参考にしました。かなり無理があるけどw

専門分野の断片化

いろんな原因があるのでしょうが、専門とする分野の断片化が進んでいます。Javaは分かるけどロードバランサは知らない、Oracleは詳しいけどTomcatは知らない、とか。そうやって断片化が進むと、全体的に整合性の取れた設計ができないだけでなく、ひとたび問題が起これば大騒ぎになります。

文字コードなんかは良い例です。Webサービスは、JSPビジネスロジックJDBCドライバ、DBなど複数の構成要素から成ります。文字化けの発生原因を特定するには、情報の流れと構成要素の特性を理解しておかなければなりません。Oracleは詳しいけどTomcatを知らないのでは解決できません。

すべての分野に詳しくなるのは不可能ですから、自分の得意分野を作って、そこから浅堀していく感じになると思います。

専門分野の断片化は、なんちゃら機構の仕業とか、マスコミの作り上げた虚構とか、いろいろ言われていますが、原因の一つに極度の外注化があるのではと思っています。

新しい技術を採用する時、その技術に詳しい人を育てるのが理想ですが、そうもいかないので外部から詳しい人を呼んでくることが多々あります。SIer的に言えば、ベンダから人を連れてくるということです。元請けとしては「詳しい人がいなければ連れてくれば良いし、その方が安い」と思うため、内部に詳しい人が育ちません。

二次請も人の入れ替わりが激しいため、体系的に勉強する機会は少ないと思います。

わたしはこのあたりの選定や泥臭い性能試験をそこそこやっており、手広く知識を仕入れることが、今のところチームにおける自分の存在価値であると考えている。わたしが「元請けの仕事にシフトする」と言ったのは、こうした仕事を徹底的にやる、という意味である。これは、プログラミングが好きで、できるならこの「好き」というポテンシャルを活かしたいと考えた上での、自分なりの選択でもある。元請けなんかやめちまえ、と、そう簡単にいくものでもないだろうしね。

http://d.hatena.ne.jp/yuripop/20081211/p1

これは難しいと思います。自分でもこんなことを言うのは嫌なのですが、単価の安い人に仕事を取られると厳しいです。id:yuripopさんはポジションを突き進んでいて本当にすごいなと思います。

それぞれの分野に詳しい人を外から調達して、それを取りまとめる役を一人置く方が安いかもしれません。それで失うものがあるとすれば、本当に安いかどうかは分かりません。実際にどう考えるかは、上司や環境次第です。どんなに優秀な技術者も、それを評価してくれる上司や環境があってこそです。

話が長くなりました。

自分で手を動かさずに方式を決めるのは、私は難しいと思っています。煎茶碗を使ったことがないのに、煎茶碗がコーラに適さない理由を説明するのは至難の業です。ただ、スーツな仕事を続ける限り、そういう場面は今後ますます増えていく気がします。