« 2009年05月 | メイン | 2009年08月 »
2009年07月19日
「ハードウェア」プログラマと「ソフトウェア」プログラマ
プログラマ・ソフトウェアエンジニアと呼ばれる人間には、 2つのタイプがあるような気がしています。 ひとつは、もともと機械いじりやハードウェアが好きな 「ハードウェア」プログラマ、もう一つはその反対の「ソフトウェア」プログラマ。 それぞれどういう特徴があるか、独断と偏見でまとめてみました。 (私自身ハード出身なのでそちらに偏重していますw )「ハードウェア」プログラマ
「ソフトウェア」プログラマ
個人にしろチームにしろ、この2つのバランスが重要なのは言うまでもありません。 ハードウェアプログラマだけだと、些末なタコツボ議論に陥りがちで本来時間を かけなくていいような最適化に無駄にリソースを投入してしまいます。 出来上がるものもすごーく平凡になりがちです。「ソフトウェア」プログラマだけだと、 プロトタイプはすぐに出来上がるのですが、そのあとの地道な安定性の向上 高速化や省メモリ化スケールアウトに苦しみます。
最後に、経験上「ハードウェア」から「ソフトウェア」に転向することは 比較的簡単ですが、その逆は難しいです。若いときはハードウェア (もっと簡単には機械いじり)をやっておいた方がいかもしれません。 私も元々電気の出身ですが、そこでの経験や考え方は今の ソフトウェア開発に役に立っています。
2009年07月12日
ファンに支えられるプロダクトとユーザにdisられるプロダクト
世の中には熱狂的なファンに支えられるサービスやプロダクトがあります。 Appleファン、Googleファン、日産ファンといえばピンときますが、 Microsoftファン、Yahooファン、トヨタファンと言うとあまり聞きません。ファンに支えられることは素晴らしいことですが、ファンが多いからといって プロダクトの完成度やクオリティが高いとは限りません。私がファンになるのは アイドルぐらいで、ソフトウェアに関してこれとってファンはないのですが (いやむしろありとあらゆるプロダクトを触ってみては〇〇はウンコと言っていますが...) 某製品の改善点をそのファンに伝えると「愛が足りない」とか 「そんな所誰が気にするのか」とかわされます。
あるプロダクトのファンになるかどうかは、中の人がどれだけカリスマ性があるかとか、 彼らの長期的なビジョンや理念がどれだけ魅力的かと言ったハイレベルなところで 決まります。そのため、いったんファンになってしまうとバイアスの影響で その製品の正当な評価が出来にくくなってきます。個々の機能の完成度の許容量が低くなり、 少しのことではイライラしなくなります。この状態は実は危険です。 開発者はファンの声に満足してしまい、一般ユーザがイライラするような 改善点を見落としてしまいます。
開発者が自身のプロダクトでユーザを「驚かせる」方法には二種類あります。 前者は正の驚き。セクシーなインタラクションやビジュアル、クールな機能。 もう一つは負の驚き。ウンコなインタラクション、直感的ではない動作、 データ喪失、甘い作り込みなどです。開発者はどうしても正の驚きにフォーカスをあて、 合コン受けするようなプロダクトを作りたがりですが、私に言わせれば、 1000個の正の驚きを生み出すぐらいなら、1個の負の驚きを潰すほうがはるかに重要です。
ファンも同様に正の驚きを誇張しがちです。ファンじゃない普通の ユーザは「この部分はウンコだ」と負の驚き、改善点を正直にぶつけてきます。 Microsoftのスゴイところは、ユーザ(not ファン)にdisられまくってますが、 それらを真摯に受け止めコツコツと改善していっているところです。Vistaになって セキュリティモデルが一新され、IEが乗っ取られてもシステムには 影響がないような設計になってますし、VistaのウンコなUIは Windows7で それなりに改善されています。
私もオープンソースのソフトウェアをいくつか公開しています。 ポジティブなファンの応援は確かに励みになりますが、改善点を 正直にぶつけてdisってくれるユーザ(not ファン)を大事にしていきたいと思います。 良くも悪くも言われないんだけど、誰もが空気のように使っている というのが私の理想のプロダクトです