読者です 読者をやめる 読者になる 読者になる

たごもりすメモ

コードとかその他の話とか。

尊重されたいすべてのソフトウェアエンジニアへ

自分はソフトウェアエンジニアとして毎日の糧を得ている。今のところはサラリーマンエンジニア以外の存在になる予定はない、が、とはいえ唯々諾々とつまんない仕事ばっかりやる毎日はできればごめんだと思っている。コードを書くのは楽しいからコードを書ける仕事をしたいし、特に面白い問題やまだ誰も手をつけてなさそうな問題を解決する仕事ができれば最高だ。

つまり、そう、尊重されたい。自分のやれること、やりたいことを尊重されるようになりたい。自分がやった仕事には価値があると思われるのは嬉しいし、そのように(勤務先以外の)他人から認められれば面白い話も聞けるようになるかもしれない。尊重されるソフトウェアエンジニアになれれば楽しそうだ。
尊重されるソフトウェアエンジニアであれば、もしかしたら自分の仕事についてある程度の自由が効くかもしれない。突然わけのわからない政治でがんじがらめの炎上プロジェクトのPMをやってこい、半年帰ってくるな、みたいなことを言われる可能性は減るかもしれない。

尊重されるソフトウェアエンジニアになりたい、と、そう思っている。いささか欲張りな面を自覚しているし、エゴ剥き出しでみっともないなーとも思うけど、最近はあまりそのことを隠しもしないようにしている。
たぶん同じように思っているソフトウェアエンジニアは多い。スラッシュドット2chプログラマ板には人月商売で売られる自分に対する怨嗟の声が常に上がっているし、SIerのビジネスモデルや勤務実態についてやこれからの在り方についてのネット記事やblogエントリはいつでも大繁盛だ。
が、自分はSIerにはもういないし、今のところ戻る予定もない。だからSIerという形態の会社自体についてはどうでもいい。ただ、SIerで今も働いているソフトウェアエンジニアのあなた、Webサービス会社で働いているソフトウェアエンジニアのあなたが、自分はもっと尊重されるようになりたい、と思っているなら、たぶん今と同じことを同じように続けていても駄目なんじゃないかとも思っていると思う。*1

あなたがもし仮に現在に人月いくらで働いているソフトウェアエンジニアだとして、周囲を見回して自分が明らかに際立っている、と思えないのなら、たぶんその境遇にずっと居座ってても、なにも状況は変わらないと思う。巨大なビルの1フロアに200人からが座っていて、それが何フロアもあるような環境で、その中の大勢のうちの一人がある日突然特別に尊重されるなんて話はライトノベルの中にしかない。

誤解を招かないように書いておくと、周囲10人の中でよく働けるエンジニアとして尊敬を勝ち取るのは、たいへんすばらしいことだと思う。たぶんいくらか給料も良くなるし、そのプロジェクトあるいはその会社が担当する案件の中では主導的な立場に行けるかもしれない。数百人に一人の尊重されるエンジニアにまではならなくても、数十人のうち数人の、比較的敬意を集めるソフトウェアエンジニアになるだけでも十分だ、という考えかたで人生を生きる、それで素晴らしい人生を送る人も多いだろうと思う。もちろんたまには突然炎上プロジェクトに放り込まれて3年ばかり夜の遅い生活を送ることがあるかもしれないが、まあこの業界そういうものだもの、仕方無いさ。

それで十分だ、それ以上のことは何もいらない、という人はこの先を読まなくていい。

尊重される方法

さて、それでは不十分だ、もっと尊重されたい、という場合、じゃあどうしようか。とはいえ結論は簡単、本当に非常に簡単で、マジョリティに埋没している限りでは絶対に尊重されないから、マイノリティになりましょう、というだけの話だ。簡単。シンプル。

例え話で申し訳ないが、たとえば世の中に服飾デザイナーという仕事がある。服飾デザイナーのうちごく一部の人達は極めて有名で世間的にも尊重されていることを自分達ですら知っている。
が、もちろんそれをもって服飾デザイナーという仕事に就いている人々全体が尊重される位置にいるかというと、そんなことは、もちろん全くない。尊重される位置にいるのはごくごく一部であり、その他の大多数については特別な尊重を受けるということも多分なく、淡々と毎日の仕事をしている。どのような給与体系・契約習慣なのかは寡聞にして知らないが、おそらく特別に優遇されるということはないと思う。そのような人達が、たとえば自分やあなたが毎日着ているTシャツや短パンやポロシャツやトランクスや靴下のデザインをやっている。

だから、世の中の人が毎日使っている給与計算システムや税金収集システムや銀行ATMや流通管理システムのプログラミングだけをやっている人間が、特別に尊重もされず、特に名前を知られることもなく、他の仕事とあんまり変わらない契約体系(時間あたりいくら)の金額で仕事をしているのは、たぶん正しい。他に同じことをやっている人が大勢いるからだ。ソフトウェアエンジニアだけがそうであってはいけない、なんてことはない。*2

尊重されるためには、他に同じことをやっている人がぜんぜんいないようになるしかない。もっと正確に言うなら「あの人と同じことをやっている人は全く(あるいはほとんど)いない」と、他人に思われるようにならないといけない。
あなたの近くに業界全体を見渡せる広い見識と下す評価の影響力が極めて大きい人がもしいるならその人にだけ思われれば良いかもしれない、が、普通世の中にそんな人はそうそういないので、あとは世の中のできるだけ多くの人にそのように思われるようになるしかない。あなたの普段の仕事で周りにいる人の数では全然足りない。もっと大多数の、不特定多数に対してアプローチしないと全く追い付かない。

だから、あなたは自分の見識と実行力、そして何よりもソースコード自体を、公開する必要がある。公開されているソフトウェアを実際に試し、それについての見解を述べ、同じ問題意識を抱えている誰かと議論し、必要であれば作者にフィードバックを送る必要がある。それがマイノリティになる一番の近道だ。
公開しないコードを書いていても誰にも知られることはないし、公開ソフトウェアを使ってみただけでは大多数に埋没するだけだ。書いたコードは公開しなければならないし、得た知見はまとめて公開するなり、作者に(それも公開の場で)フィードバックする必要がある。そうすることで初めて、見ず知らずの他人から認識してもらえる。
世の中にそこまでやる人は(なぜか)まだ数少ないので、逆に言うと、そういうことを地道にやるだけで比較的簡単にある種のマイノリティになれる。それは保証しよう。

逆に言おう。あなたが尊重されたいと思って他人にアピールするとき、公開された知見の集積所(blogなど)、公開されたコード、そういったものがなければ、たぶんあなたは信用されない。「自称、技術力のある技術者」がどれだけ世の中にいるかはもう充分に知れわたっている。だから、自分は問題に対して調査を尽くして回答に迫れる、そのプロセスを踏めるということをblogエントリで示さなければならないし、あるいはどの程度の水準のコードが書ける、ということを公開されたコードで示さなければならない。

もちろん、公開された証拠など無くても、面接の場で言葉を尽くせばわかってもらえる、高く買ってもらえる、という人もいることと思う。だけど考えてみてほしい、見せられるコードや技術的証拠も無しに自分という人間を高く売り込める技術、それは本来ソフトウェアエンジニアに求められる技術じゃない。あなたが一番嫌う、人売りの営業に求められる技術だ。売る対象が自分なだけで。

「仕事で書いてるコードは公開できないし、仕事以外のコードを書く時間なんてあるわけがない」と思っているあなた。おめでとう、周囲にいる大多数のソフトウェアエンジニアも多分同じことを思っているぞ。飲み屋でこれをネタにして楽しく盛り上がるといい。マジョリティの特権だ。

まとめ

あなたがソフトウェアエンジニアとして尊重されたいなら、どのような意味かでマイノリティになるしかない。

「ソフトウェアエンジニアとして」尊重されるためには、ソフトウェアエンジニアとしての仕事の成果を知ってもらう必要がある。コードを書けること、OSやミドルウェアと格闘して問題を解決できること、将来的な問題を予防できるように筋道の立った運用を行うこと、こういったことを知られたい人が見てくれる場で明らかにする必要がある。
ごく少数の人に知ってもらえれば充分尊重される、という極レアなケースを除けば、あとはもう、一般に公開するしかない。The Internet のパブリックスペースに、自分の署名をつけて置いておくことだ。

世間の人は、あなたが何をやりたいかには興味がない。何かをやりたい人はどこにだって溢れているから、その中からあなたを拾い上げて尊重する理由はほとんどの人にはない。あなたが何をやったかだけがいつでも重要だ。

これはここでだけこっそり教えるが、実はソフトウェアエンジニアという職種は、これらの観点において、他の職種に対して圧倒的に恵まれている。自分はそう思う。
なぜなら成果も効果も途中経過も、コンピュータとインターネットというすばらしい物のおかげで、誰にでも簡単に読めて再現可能な形で置いておくことが簡単にできるからだ。あなたが書いたコードを他の人が動かして確認することも簡単だし、あなたがとったベンチマークの追試だって簡単だし、あなたが詳細に記録したオペレーションログは見る人が見ればすぐに理解できる。対象は簡単に日本中に広がるし、あるいは言語の壁をなんとかすれば世界中にだって広がりかねない。
機械制作をする人はそうはいかないし、すばらしい接客技術を持つ人だってそうはいかない*3し、会計に深い造詣を持つ人だってなかなか難しいだろう。

だから、たぶんここまでこのエントリを読んだあなたは希望を持ってもいいと思う。自分もそう自分に言いきかせてる。割と頻繁にね。

*1:今と同じことを同じように続けていてそれなりに尊重されている、問題ない、と思っている人、あなたはこのエントリを読むのはたぶん時間の無駄だからやめたほうがいい。

*2:誤解を招かないように注記しておくと、そのようなシステムのうち特に世間に知られる重要度の高いシステムにおいて極めて重要な決定や判断を下して全体の方向性を主導できるような人であれば、それはたぶん充分に尊重される位置にいると思う。ただそのような位置に辿り着くために効果的な方法が何かあるかというと多分明確には確立されていないし、極めて狭い道だから運が必要だし、確実に5年や10年という単位の時間が必要だ。

*3:まあ、その人を撮影したビデオがYoutubeでたまたまヒットすることは、ごく稀に、あるかもしれないけど