ボクココ

サービス開発を成功させるまでの歩み

新技術とどう向き合うかについて

ども、@kimihom です。

テクノロジーの進化は速く、追いついていくのは大変だ。全部を完璧に吸収するってのは理想ではあるが、当然のことながら一人では限界がある。私たちはどう新技術と向き合えば良いのだろうか?

今回は私の思う技術を見極める方法について書いていこう。 ちなみに私はどちらかと言うと新しくサービスを作る側のエンジニアであり、何かに特化するスペシャリスト側のエンジニアではない。その目線からの話である。

その技術は本質的に “新しいか”

私は何か技術が生まれた時に、"その技術は本質的に新しいか" を見極めるようにしている。よくある新技術として、以下のような例があるだろう。

  • 新しい技術分野
  • 新しい仕様
  • 新しいプログラミング言語
  • 新しいフレームワーク
  • 新しいミドルウェア
  • 新しいインフラストラクチャ
  • 新しい設計思想

さて、同じタイミングでガッと色々と出てきた時、何を選ぶだろうか。

もちろん興味の度合いなどあるだろうけど、私は常に顧客目線を大事にするようにしている。新しく出てきた技術が、本質的に顧客体験を変えることができるのかという視点である。"今までできなかったことが、その技術でできるようになるのか"、とも言い換えられる。

例えば新しい言語やフレームワークってのは、得てして今までもできたけど純粋にちょっと速くなったり、ちょっと使いやすくなったりする程度の話が多い。その言語しかできないことってのは案外少ないものだ。フレームワークも同様だ。そのフレームワークの登場で、今までできなかったことができるようになるのか。その答えに対し明確に Yes と答えられるフレームワークと出会えることはほとんどない。 これまで色々な技術が出てきたけど、個人的には Rails, jQuery, Heroku (Postgres, Redis) 以上に素早く正確に新しいもの開発できる技術はないと思っている(私が単に得意ってのもあるし、私の判断なので人それぞれのはず。好みの技術で書き換えて欲しい)。新しいフレームワークをざっと見てみても、上記テクノロジー以外で新しくできるようになることってのが見つからない。だから新しいものに対して事前に調査はするけども、磨いていくってことはしていない。もっと他に学ぶべきものがあるはずだと考えるようにしている。

じゃあ例えばどんな技術に注目すべきかって話になるけど、例えば HTML5 の主要技術 はこれから一般的に普及するものであり、今までできなかったことができるようになるという点で注目すべき技術だ。また、新しく登場した各種 API も今まで難しかったことが簡単に実現できるようになったって意味で貴重だし、もっと大枠で言えばスマホアプリ開発技術も当てはまる。何かしらのプログラミング言語で作られたミドルウェアが今までできなかったことができるようになるレベルのものだった場合、その新しい言語を学ぶ価値があるかもしれない。そのような判断基準だ。

この基準でテクノロジーを見渡すと、学ばなければならないものがはっきりする。一部で話題になっている技術に飛びつくようなことをしなくなる。人と比較しないってのは大事なことだ。自分が目指す理想のサービスやシステムを実現することだけを考える。私にとってテクノロジーは自分の理想を実現する上で必要なものだけを取り入れる。それだけの話だ。

それでも終わらない技術への探求

ここまでの話は、あくまで学ぶものを選ぶことによって自らがすべきことを明確にするってだけの話。つまり、私たちは常に学び続け成長しなければならないことには変わりない。当初は甘くみていた新技術がいつのまにか革新的な開発効率を生むようなものになっている可能性だってあるし、そもそも新らしく出てきた技術にアンテナを立てなければ今までできなかったことなのかどうかも判断できない。だから、そもそも学ばないとかアンテナを立てないとかってのは問題外の話である。

エンジニアにとって一番大切なのは探究心/好奇心だ。新しいものをまず見てみて、それが自分の方針に合いそうだったらしっかりとやる。

師匠/先生がこれをやれと言ってるからやっている?教科書に次はこれってあるからやっている?なんか流行ってるからやっている? このような周りに流されながらの学習方針は、エンジニアとしての成長を鈍くさせるだろう。もっとも大切なのは、繰り返しになるが、自らの好奇心だ。湧き出る好奇心から生まれた技術への探求が四六時中そのことを考えられるようになるための、ついては自らが成長し続けられるようになるための条件だ。

私の磨く技術は私が決める。それが結局一番自分の技術力を高められることだと信じている。

“いい師匠を持つことが大事だ"って意見をよく聞くが、本当にそうだろうか。確かに凄い人を見ればモチベーションは上がるけど、私はその人が言うからやるみたいなことはしたくない。その人から言われてやっていることをやり続けたところで、その人を超えることはいつまで経ってもできないのだ。

終わりに

新技術と向き合った時、それは一つのチャンスである。まだ誰もタッチしたことのない新しい領域だから、極めれば自らが第一人者になれることができるかもしれない。ただし、自分がそこまで没頭してでも磨きたい技術なのか。その磨いた先にある未来は見えるのか。そうした冷静な分析が、今後の学習を正しい方向へ誘ってくれるだろう。

共に次なる高みへ進んでいこうじゃあないか