ソフトウェア技術者の分類例

漠然とした概念を、恣意的な基準でもって2つに分けるというのは、古典的だが非常に有効な分析方法で、これがために人類が知能を獲得したといってもいいすぎではないと思うのですが、そのテクニックをソフトウェア技術者に当てはめてみようという話。
2つに分けるときに気をつけておかないといけないのは、「グループAはこういう特徴があり、グループBはこういう特徴がある」とやらないこと。これは間違った使い方。略語の好きな方に言わせるとMECEでない分け方。適切な分け方は、「グループAはこういう特徴があり、グループBにはそれがない」とする。
まず最初に分けるのは、「プログラミングが好きな技術者」。おそらく、ハッカーという言葉を考えたときに、一番典型的に想像されるのがこの人たちではないかと思います。この人たちは、「道具を使うための道具を作る」仕事に取り組んでいると、一番楽しいのではないかと思います。
それに対して、次に分けられるのが、「プログラミングで問題解決をするのが好きな技術者」。最も企業プログラマらしい人たちがこの人たちではないかと思います。この人たちは、「業務を遂行するための道具を作る」仕事をするのが、似合っています。
1つ目の人たちと、2つ目の人たちは、同じような職場で同じような仕事をしているのに、全く違うモチベーションで働いていることがあるので、相互理解に欠けて反目や対立を生み出すことが起こり得ます。でも、この2種類の技術者が協力し合わないといいソフトウェアはなかなか生み出せないのが常です。理由は、わざわざ書くまでもないですよね。だから、モチベーションの源の違いや、それに起因するワークスタイルの違いに寛容になることは大事なことですし、どちらかに責任を押し付けるようなことも自戒しておくほうがいいです。
http://dev.ariel-networks.com/Members/inoue/culture-shockで見かけたカルチャーショックも、この2種類の技術者の違いを良く表しているようで、興味深いですね。
さて、残りの人たちもまだまだ分けていくことができます。
次に分けるのは、「ソフトウェアを使って問題解決をするのが好きな技術者」。いわゆる、ITコンサルタントが典型ではないかと思います。この人たちは、「業務を遂行するための道具の使い方を考える」仕事に適していそうです。
さらに、「問題解決を遂行することに興味のある技術者」。まさに、エンドユーザーコンピューティングのエンドユーザーです。この人たちは、「道具を使って業務を遂行する」仕事に向いていそうです。
ハッカーから始まって、エンドユーザーまでたどり着きました。もう分けるところはないでしょうか? いやいや、まだあります。ハッカーよりももっと技術よりの人たちが。
「プログラミングの背景にある理論が好きな技術者」。まさに、研究者に典型的にあるタイプではないでしょうか。この人たちは「道具の作り方を考える」仕事をやるべきでしょうね。
もうないでしょうか? まだ余りはありますが、これ以上いい分け方を思いつかないので、この辺で終わりにします。こうしてみると、端から端までは、かなりの開きがありますね。