前回書いたプログラム・デザイナーと職人プログラマープログラム・デザイナー宣言と同じような感覚を持っている人は意外と多いのではないかと思って探してみたところ、はてなの伊藤さんのエントリ(こちらも)が見つかった。伊藤さんとは何度か話をする機会があったが、ウルティマ・オンラインの話で盛り上がってしまって、今までIT関連の話はしたことがなかった。ブログを読んでいて、伊藤さんもきっとプログラム・デザイナーなのだろうな、と思った。

高林さんのUNIXにみる世代間の断絶にならって職人プログラマー/プログラム・デザイナー/UIデザイン・プログラマーを表にすると次のようになる。

比較項目 職人プログラマー プログラム・デザイナー UIデザイン・プログラマー
譲れない点 ・パフォーマンス最適化
・フットプリント最適化
・プログラムの可読性
・メンテナビリティ
・フレームワークの拡張性
・ユーザビリティ
提供できるサプライズ ・速い!
・軽い!
・読みやすい!
・拡張しやすい!
・どこを変えればいいかすぐわかった!
・使いやすい!
・操作に無駄がない!
言い分 「マシン語も書けないやつなんてプログラマーとは言えない」 「メンテナンスできないプログラムなんて捨てて書き直した方がいい」 「ユーザビリティを最優先してソフトウェアを設計すべき」
危険性 チューニングしなくて良い箇所までチューニングし始める。 職人プログラマーを化石扱いする。画面デザインなんて後で適当に決めればいいと考えてしまう。 ユーザビリティを追求しすぎて実現不可能なソフトウェアを設計してしまう。
適した場所 ・携帯/組み込み系
・コンパイラ
・エミュレータ
・エンタープライズアプリケーション
・パッケージソフト
・大規模Webアプリのフレームワーク
・BtoC系サービス
・業務アプリケーション
機械との関係 近い 中間 遠い
ファッション業界的要素 弱い 中間 強い

エンジニアの分類としては経産省のITSSが有名だが、上のような表をつくってみると、ここでやりたいのは、ITSSでやっているような分類とは明らかに違う種類のものだと改めて思う。

上にリンクした高林さんのオールドタイプ/ニュータイプの分類と合わせて表にしてみると、次のようになる。

分類名 分類方法
ITSS 対象領域と責任範囲による分類
オールドタイプ/
ニュータイプ
古きを良しとするか、新しきを良しとするかによる分類
職人プログラマー/
プログラム・デザイナー/
UIデザイン・プログラマー
プログラマーとしてこだわりたいポイントによる分類

オールドタイプ/ニュータイプは両者の良いところを学んでハイブリッドタイプを目指していくために定義されたものだが、私がこの分類を定義したいのは、本来異なる種類の指向性を持つ人々が、プログラマーという一言でまとめられてしまっているために発生している混乱に対して、それぞれ尊重すべき指向性なのだということをよりはっきりさせるための升目をつくりたいからである。

もし世の中に文系や理系といった分類が存在せず、学生という言葉しかなければ、「数学ができないやつなんて学問をやっているとは言えない」とか、「世界史を理解していないやつなんて我が大学の恥部だ」とか、そういう不毛な啀み合いがあるかもしれない。

文系と理系と同じように、プログラマーにだって、一言でプログラマーとまとめるべきでない、それぞれ異なる指向性がある。

この分類はまだまだ未完成だし私の個人的な偏見がかなり入っているので、今後アップデートしていきたい。


コンピュータは、むずかしすぎて使えない!
アラン クーパー Alan Cooper 山形 浩生
翔泳社 (2000/02)
売り上げランキング: 39,054
おすすめ度の平均: 3.25
3 原書を読みたくなりました
3 ユーザビリティを考える本
5 訳者あとがきが不快