YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

(翻訳)開発者の寿命について思うこと

はじめに

@voluntas が面白記事を発見してくれたので翻訳しました。本文よりもコメント欄がかなり盛り上がってるので、そっちも読んでほしいです。個人的にはオープンソース系コミュニティで一線行ってる人はあんまり関係ないんじゃないかなあと感じてます。ただ世間一般の場合はどうなんでしょうかね。日本だと「プログラマが知るべき97のこと」もでてるのであわせて読んでみるのもいいかもしれません。

開発者の寿命について思うこと

40歳以上の開発者をどれだけ知ってますか?かなり多くの人が0人と答えるでしょう。では、40歳以上の開発者を1人以上知っていると答えた方にさらに質問。その内何人が素晴らしい開発者ですか?もし40歳以上の素晴らしい開発者をご存知なら、お願いがあります。彼らの脳みそを取り出して、何が彼らの能力を研ぎ澄ましているのかを判別してください。それができたら、私たちのためにそれをどこかに公開してください。なんでかといったら、この業界では年をとった(この記事を読んでいる古参の方々へ。あくまで「いい意味で」ですよ。)開発者には本当に良い評判を聞かないからなんです。

この原因は大きく2つあります。まず最初の理由は、多くの開発者が数年経つとマネージャになってしまうからです。これは始めからそういう目標を持っていた(好むと好まざるとに関わらず、多くの人はそれが開発者が望むべき方向だと思っています)か、偶然マネージャになってしまったかどちらかです。後者の場合、ここで言っている良い開発者というのは余計な責任を持たされてもいつでもパフォーマンスが良い人のことを指しています。しかし、大半の時間は会議室に閉じ込められて、たとえコードを書くことを重視しているような人だったとしても、コードを書く時間はほとんどなくなってしまいます。どちらのケースでも、遅かれ早かれ、というかすぐに開発者としては活発ではなくなってしまいます。

2つ目の理由として、長い期間開発をしてきた人の多くが知るべき事はもうほとんど知っていると思いはじめて、新しい問題解決方法を学ばなくなったり、開発者コミュニティで他の人が学んでいることを追いかけなくなったりするからです。彼らは自分自身がすべてを見てきて、あらゆる種類の技術的チャレンジを既にしてきたかのように振る舞います。「なんでうまくいってる方法を変える必要があるんだ?」と思いながら、同じテクニックやアプローチを何年も何年も使いつづけます。彼らの解決策は実際うまくいくし、それどころがかなりいい方法だったりするんですが、一方で実装自体は古くさかったり無駄が多かったりします。この点において、開発者の価値は減り始めて、(どんな理由でも)スキルが時代に追いつけなくなるまで価値は下がりつづけます。

私はあなたの事は知りませんが、私は自分のこれからのキャリアにおいてはこういった進路はまったくもって取りたくありません。コーディングが興味深いもので面白いものだと思える限り、コーディングを続けたいと思っています。そしてもっと重要なのは、自分のスキルが時代遅れにならないことを確認したいのです。私は開発者として多くの価値を提供してきましたし、年を経るにつれて、顧客へ提供する価値を増やしつづけていきたいと思っているのです。経験からだけでなく、この業界ではどのようにソフトウェアを開発しているかも常に追いかけていきたいと思っています。そこで質問があります。あなたはどうやってそれを実現していますか?あなたはどうやって「ぼくちゃん、私を信じなさい。私は20年以上もコードを書いているんだ。いいから、うまくいくから。」と言うような古参にならないようにしていますか?

どう見ても、私には明確な答えはありません。まだたった8年しか開発者として働いていないからです。しかしこれからも自分の開発者としての価値を増え続けさせることが出来るような簡単な計画ならあります。

  • 自分はバカと意識し続ける

一度すべてが分かったと思ってしまうともうおしまいで、ただ自分、顧客、あなたと一緒に働いている運のないかわいそうな人にとって害があるだけです。代わりに、あなたよりも頭が切れると思う人や理解が及ばない人のブログや本を読みつづけましょう。この方法はとてもいいと思っています。なぜなら新しいことを学ぶときが一番心が開いているからです。理解できるまで読みつづけ、理解できたらいま学んだことを試してみます。これを何度も何度も繰り返します。要するに自分はバカだと感じつづけることです。それが学びつづけるたった一つの方法です。

  • 自分が知っていること考えていることを常に問い続ける

ソフトウェア開発においては、すべての知識には賞味期限があります。いまあなたがソフトウェア開発について知っていることは10年後にはまったく意味がないものになっているでしょう。いま知っていることのうち、5年後には半分も必要なくなっているでしょう。もっと言わせてください。いまあなたが知っていることのうち半分は、5年後によいソフトウェアを書くときに害すらあるでしょう。いったい誰が知っているんでしょうか。あなたが知っていることは何なのかということを頻繁に自問自答してください。あらゆる方法、パターン、実践、などあなたがいいと思っていることすべては時代に応じて改訂される必要があります。まだ意味があるものだって言い張るのですか?なにか状況を変えるか、そういう風に感じさせるように促すコンテキストなどの影響を及ぼしている新しい要素があるんでしょうか。こういうようなことを1年か2年以上感じるようになったら気をつけましょう...それは自分がバカだと思うことをもうやめている証拠で、まさになるべきではない状況です。

再度言いますが、これが価値ある開発者としての寿命を長くする最善の方法だとは確信しているわけではありません。しかしこの方法でチャンスを手にしていこうと思います。

コメント欄より

もうコメント欄がかなり盛り上がってるんで、興味がある人は読んでみてください。個人的に面白かったコメントを抜粋。

3つ目にTipsを追加したいな。「自分よりできる人とつるむようにする--彼らは常に自分の考えや意見に対してはっとするようなことをしてくれる。それは直接的(一緒に働いている場合)だったり間接的(できる人が言ってることや会話を読んだりする)だったりする」

40歳以上のできる開発者なんていくらでも知ってる。自分の世界が平均だと思わないほうがいい。

Python界はこれが当てはまらないと思う。40歳近い開発者で面白い人をたくさん知ってる。(たぶん推測--実際に年齢を聞いたわけじゃない):Guido van Rossum, Raymond Hettinger, Ian Bicking, Kevin Dangoor, Fred Drake, Martin von Loewis, Ed Leafe, Barry Warsaw, Nicola Larosa, R David Murray

他の人はたいていマネージャかアーキテクトだけど、開発もしている。: Alex Martelli, Jeremy Hylton, Laura Creighton

いまあげたのは関わりがある人でパッと浮かんだ人だけ(もし年齢が間違ってたらごめんなさい!)です。他のコミュニティでは違った状況になっているんじゃないでしょうか。Pythonは*かなり*オープンソースよりで、自分の能力をコミュニティで自由に発揮できる環境になっています。Pythonは商用にも広く使われているけど、40歳以上というのが障害にはなっていないと思う。

あわせてこれも読みたいですね。

プログラマが知るべき97のこと

プログラマが知るべき97のこと