枯れた技術と未成熟な技術、でもホントは…

タイトルが長すぎて表示されてないので再掲。『枯れた技術と未成熟な技術、でもホントはエンジニアのセルフマネジメントについてのはなし』
ここ数年感じていることについて、標準的な開発者にとってはすでに常識となっているかもしれないことについて吐きだしたいと思う。


ある種の開発業務の現場では、基本“未成熟な”技術よりも“枯れた”技術が求められる。
Webサーバで言うなら、「Nginx」よりも「Apache」だ。 ※ Nginxもそろそろ枯れた方に入るのかもしれませんが…
それにはもちろん理由があって、それは間違いではない。しかし、本当にそれは間違いではないのだろうか?

ApacheIISとNginx

具体的な数値はググってもらうとして、Apacheといえば世界でもっともよく使われているWebサーバであることは間違いない。その実績はダントツだし、恐らく会社の中にもそれなりのノウハウは蓄積されていることと思う。
もし、Apacheを採用しない理由があるとすれば、それは開発元によるサポート(の義務といった方が適切か?)がない点だろう。それによって、IISを選択するというケースはある。それもまた間違いない。
一方、Nginxを採用する動機は、それが「大量のリクエストを少ないリソースでさばけるから」が多いのではないだろうか?

Apache/IISとNginxとの違い

この違いは、単なる要件の違いではないと思っている。
それはWebを使うユーザ層とボリュームの変化、インターネットが普及したとはいえまだまだコンピュータに関心がある人たちのものだった時代から意識するしないはさておき本当に誰もが使うようになった時代へと移ったことを意味する。すなわち、Nginxを選択するということは今の時代における普遍的な問題(大量のリクエスト)を抱えており、それを解決する必要に迫られているということだ。
Apache/IISであってもその問題に対処する方法はいくらでも(AWSでサーバ台数を増やすとか)あるが、それはまた別軸での未成熟な技術の話となって複雑なので、今回はスルーします。

怖くないですか?

もし自分がインフラに関わっているエンジニアで、Apache/IISを使う(使わないといけない)仕事をしているとしたら、怖くありませんか?
あなたのスキルに価値がないとまでは言いませんが、それを必要としている人は昔からずっと同じことをしている(そして恐らこれからもずっと同じことをし続ける)人たちです。果たして今後も一緒に価値を生み出し続けていけるのでしょうか?生み出せなければもちろん自分の価値も下がっていきます。

私が考えるセルフマネジメント

ずばり、『(たとえ未成熟であっても)新しい技術が必要とされる仕事をすること』
会社から与えられるがままに仕事をこなすことで自然にそれが実現されるなら、それに越したことはありません。あなたはきっと最高の職場にいるのでしょう。もしそうでないのなら、そうなるように自分で行動を起こす必要があります。
これらを意識的にやること、それがセルフマネジメントだと私は考えます。