Island Life

< 発言する必要がないなら出なくて良い | らむ太と変身 >

2010/02/01

プログラマもいろいろ

業務の一環として文章を書く人が全て文筆家ではないように、 コードを書く人をひとくくりに「プログラマ」とまとめることに 無理があるのかも。

プログラマに正社員的な「勤務」はフィットしない

「日々の学習や訓練と仕事が切り離せない」というのがこの話の要点のひとつだが、これはプログラマに限らず、デザイナーや建築家、文筆業、料理人、役者など、「プロフェッショナル」と呼ばれる専門的な職業のほとんどにあてはまるだろう。

今やってる仕事にはフリーランスのソフトウェアコンサルタント (という肩書きのノマド的プログラマ)が数人参加してて私もその一人。 こんな具合に、あるプロジェクトに向けて専門家をえいやと集めて 短期集中でものを作るのは、確かに映画製作とか芝居のプロデュース公演に似ている。

地理的にヨーロッパ、米国両海岸、ハワイと分散してるため、 テレカンファレンスのために朝5:30に起きるのは億劫だけど、 仕事自体はやりやすい。みんな自律的に自分の役割を見つけたり 調整したりすることに慣れてるので。そのへんも映画や芝居の感覚と似ている。 (そういえば、業界界隈では一過性のプロジェクトのことを"gig"と言うことがある。 "I was in Boston that summer for a Lisp gig." とか。)

ただコンピュータソフトウェアは、映画や芝居と違って継続的に手をかける必要があり、 「できました、はい解散」というだけでは済まない。 一発もののソフトウェア (ビデオゲームとか) でもなければ、 誰かが製品やサービスのライフサイクルを見届ける必要があり、 その誰かはやっぱりプログラミングが出来ないとならないだろう。

つまり「特定の技術の専門家としてのプログラマ」ばかりがプログラマではない。 ある製品なりサービスなりを組み上げて手をかけて行くのが仕事で、 その手段としてプログラムをしている、というプログラマもいるはずだ。 現実には後者の方が圧倒的に多いだろう。 役者や文筆業に例えられる「技能でもって独り立ちしているプロ」というのは 前者のプログラマにはよく当てはまるけれど、 後者のプログラマに当てはめても良いものだろうか。

例えが微妙だけれど、法学部を出ても弁護士になる人もいれば企業の法務部に 勤める人もいる。どちらも法律を扱うけれど、仕事で求められることも キャリアパスもかなり違う。一般的には別の職業とみなされるんじゃなかろうか。 同様に、共通するのはプログラムを書くということだけで、 仕事内容もキャリアパスも異なる別の職業が、今は「プログラマ」といっしょくたに されているのかもしれない。

(追記2010/02/03 01:31:17 UTC): このエントリでは「プログラマ」と呼ばれる人々のうち、 特定の技術を武器にプロジェクトを渡り歩くノマド的プログラマというカテゴリを 設定してみたが、そうではないプログラマ ("後者のプログラマ") にも 様々な業態が考えられるのでひとくくりにできるものではない。ノマド的 プログラマに含まれないプログラマとしては、例えば以下のような カテゴリがあり得るだろう。

  1. いわゆる日本の「システム・エンジニア」で、 システムデザインやインテグレーションと同時にコードも書く人。
  2. Web2.0系のトッププログラマだけれど、 特定の技術そのものの追求よりはサービスの提供にコミットする人。
  3. プログラミング専業じゃないけれど、職場の効率化のために Excelのマクロとかイントラネットのcgiを書いてる人。

このうち、「Web2.0系のトッププログラマ」については 24x7で努力が求められる「独り立ちするプロフェッショナル」という パスがあるかもしれない。ただ、そのキャリアパスはどっちかというと 「技術もわかるプロデューサ」的なポジション (肩書きはVP of Technologyとか CTO) につながるもので、プログラミング技術を提供して渡り歩く ノマド的プログラマとは若干違うものになると思う。

3番目のカテゴリについては、現在ではこういう「片手間プログラミング」が 正当な業務の一環として扱われてないきらいがあると思うのだけれど、 「高レイヤでプログラムを書くこと」が「論理的な文章を書くこと」くらいまで 一般的なリテラシーとみなされる時代が来れば、 「業務の一環としてプログラム書いてます」ってのが普通になってくるだろうし、 そうなると業務システムの開発も、システムインテグレータが全部作るんじゃなくて、 ユーザ側で書ける人がカスタマイズに参加する形になってくかもしれない。

ともかく、「プログラムを業務の一環として書く人」のうち、 プロフェッショナルとして公私別無く研鑽を積まなくちゃならないって人は 特定のキャリアパスを目指す一部の人たちだけだろう、というのが要点。 今現在、そうなってない (将来独り立ちする技術者になるつもりは無いのに、 四六時中学習することを求められる) のは、コンピュータエンジニアリングが 未成熟だからだ。これについては項を改めて書くかもしれない。

Tag: Career

Past comment(s)

hu2 (2010/02/02 22:17:15):

"後者のプログラマ"が"Not プログラマ"だとすると、 そのような職業に名前をつけるとしたらなんだろう。 世間(日本)で言われるところの"システム・エンジニア"、"システム・デベロッパー"あたりか。

shiro (2010/02/03 01:04:16):

"後者のプログラマ" は単一のカテゴリではなく、いわゆる「システムエンジニア」も含みますが、他にも様々な業態があると思います。エントリに追記しときます。

hu2 (2010/02/13 09:31:27):

自分の現状に当てはめてみると、 私は(DB管理者としての役割の比重が大きい)システム・エンジニアとして各プロジェクトに参加する為、"後者のプログラマ"で1の分類になると考えますが、「公私別無く研鑽を積まなくちゃならない」状態にあると思います。("前者のプログラマ"の事はわからないので程度の差はあるかもしれませんが)

また、「今現在、そうなってないのは、コンピュータエンジニアリングが未成熟だからだ。」 という部分には、なるほど、と感じるところがありました。 というのも現在、特定ベンダのDBソフトの新機能のキャッチアップや(物理的な)チューニングに公私別無く多くの時間を割いており、 「(DBソフトの)ユーザである自分がなぜこんなことをしなければならないのか」とふと感じる時があったからです。 モーターエンジニアリングがまだ未成熟だった頃に、ドライバ(ユーザ)がボンネットを開けて自らある程度の修理・調整を行っていたように、コンピュータエンジニアリングも過渡期にあるのだと考えると妙に得心のいくような気がしました。

shiroさんの主張の意図とはちょっと違うかもしれませんが。。 次回の関連エントリを期待しています。

shiro (2010/02/13 09:42:48):

車のたとえは近いです。いますぐとか数年とかのスパンで変わって行くのは難しいでしょうが。

Post a comment

Name: