文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

「5年後のあなたはどうなっていると思いますか?」はもう無意味な質問かもしれない

世界のトレンドが変わるのが速すぎ問題です。


f:id:treeapps:20180418122452p:plain


あなたは5年後、何をしていますか?

あなたの目標を聞かせて下さい。

この手の質問ってよくありますね。
しかしこの質問、プログラマは答えにくくなってきているのではないかと感じています。抽象的な目標は立てられますが、以前と比較して具体的な目標がたてにくいように感じます。

いくつかの例とともに考えていきます。

技術の進化スピードの爆速化


strutsフレームワークを使って開発効率を上げて利益率を向上させます!


今使ってるFWなんて半年後には時代遅れになるよな・・

それに最新のFW使ったからといって爆発的に生産性が上がる訳じゃないしな・・

本当に技術の進化スピードは速いです。
酷い時は2ヶ月後くらいには競合の優れたライブラリやFWが登場し、一瞬で陳腐化してしまいます。
例えば「AngularJSを習得する」という目標を建てたとしても、数ヶ月後には更に凄いFWが登場するかもしれません。Knockout.jsが急激に台頭してしまい、AngularJSがマイナーになるかもしれません。

かつてjsのライブラリは「jQuery」「dojo」「yui」「MooTools」が主要jsライブラリとして台頭しましたが、今見るとどうですか?jQuery一色ですよね。yuiはまだしも、dojoやMooToolsを頑張って習得した人たちは新たにjQueryを習得するハメになったことでしょう。現場で最も使われているのはjQueryですからね。

他にも、Objective-Cでiphoneアプリ開発をしていたのに、突然swiftが台頭してきてしまい、今後の主流はswiftになる可能性もあり得ます。

このように陳腐化の速度が非常に速いので、「◯◯を習得して◯◯する」系の目標を立てる場合、どうしても抽象的な曖昧な目標になってしまうのではないでしょうか。恐らくですが、以下のような目標になりがちだと思います。

  • 上流工程に携わる。
  • マネージメントに携わる。
  • ユニットテストを可能な限り行い、品質を向上させる。
  • 極力過去の資産を使い、車輪の再開発をしないようにして納期短縮をする。
  • 部下への指導をより行い、1人前の技術者に育てる。

どれもこれも曖昧で、どちらかというと中・長期的なあやふやな目標になりがちなんじゃないでしょうか。そんな目標なものだから、評価する側も困っているでしょう。

進化の爆速化がもたらすもの

私だけかもしれませんが、

(具体的な)目標をたてる事自体が難しい

と感じています。


君は目標もたてられないのかね?

と言われても、正直なところ困ってしまいます。
例えば、ほんの数年前くらいのクラウドが台頭する以前、インフラ屋さんは色々な目標を持っていたと思います。しかし今はどうでしょう。

AWSやGCEによってインフラ屋さんの需要が激減した

ので、インフラ屋をやめたりAWSの運用支援サービスに鞍替えするようになりました。業務内容が一変し、ビジネスの方針転換も行われました。

IT業界では、ほんの1・2年の間にここまでの変化が起きてしまうので、目標をたててもあっという間にその目標に意味がなくなってしまったり、別のものの習得に方針転換せざるを得ない事が多々有ります。

私も最近では、

  • play frameworkを業務で使おうとしたらDropwizardが台頭してしまった。
  • vagrantで仮想マシンの自動化ができた!と喜んでいたらDockerが台頭してしまった。

という事を味わいました。せっかく覚えたのに、もう新しいものが出てきしまいましたよ・・・

今後どうしたらいいか

5年後では市場が変化し過ぎている

ので、5年という数値はよくありません。
では3年?いえ、それでも期間が長すぎます。
では1年?いえ、それでも長過ぎると思います。

では半年ならどうだ!! 半年でようやくギリギリじゃないでしょうか。

期間が半年以上の目標設定は期間が長すぎて意味を成さない

と私は考えています。それくらいの速度で進化しているのです。

できれば営業職のように「売上N%アップを目標にする!」等と言いたいところですが、開発現場を大きく変える程の技術革新が起きるスピードが速くなってきているので、具体的な目標をたててもあっという間に過去の遺物と化し、周回遅れになってしまいます。

技術者の視点からみても、


前回の目標設定でplay frameworkの習得って言っちゃったけど、今はDropwizardがやりたいな。他にもObjective-Cよりswiftの方がやりたいな・・・でも方針転換したら上司が怒るんだよなあ・・・

なんていうように、最新技術に触れたいので、結構な頻度で方針転換をしている人も多いでしょう。

雑感

技術の進歩が目標設定の短期化をもたらしていると私は考えています。

まさか5年後にクラウドが急に台頭して、インフラ屋さんの立場が危うくなって業務内容が激変するなんて誰も考えていなかったでしょう。まさかクラウドの台頭でビルド・デプロイ方式が激変するなんて、誰も考えていなかったでしょう。

昔と違って技術の進歩が速すぎて、5年後どころか3年後どうなってるのかさえ解らない状況なのです。

これからの時代は、非常に短いスパンで次々と新技術を習得し、実戦投入する、そんな形の目標設定が必要になるのかもしれません。

中・長期的な曖昧であやふやな目標設定をたてるぐらいなら、いっそ目標設定なんて無い方がいいのではないでしょうか。


今の時代、5年後なんて呑気な事言ってる人間に未来はネーヨ!!


ニートのお前よりかは将来性あると思うけどな