進化を続けるIT技術。時代と共に変化・淘汰されながらその技術は常に加速していく中、エンジニアのみなさんにはその速度に合わせ、新たな技術の獲得が必要です。
では、今後はどのような技術が求められるのでしょう。「IT技術に関する調査(2016) 」では、今後「1年以内」・「3~5年以内」でニーズが高いと予測される技術についての調査結果を発表しています。
こちらの結果を基に全3回に渡って各分野別に詳しくご紹介します。
第1回となる当記事では、「プログラミング言語」と「開発思想」についてご紹介します。
ニーズの高まりが予想される「プログラミング言語」と「開発思想」
VSNの調査結果を見ると、「IoT(Internet of Things)」がトップになっており、今後は「IoT」を活用し、それによって取得したデータを活かした開発ニーズが高まると予測されています。プログラミング言語では「Java」「Python」。開発手法としては「アジャイルスクラム開発」「DevOpes」に期待が寄せられています。
Java
現在も重要視されているJava。
Javaは長期に渡ってニーズの高い言語ですが、それはJavaがOSに依存されることなく、Windows系サーバやLinux系サーバなど、さまざまな環境で稼働できる事や、OSS(Open Source Software)なので、運用コストを抑えられる点も大きな強みであると言えます。
規模感に関わらず、システム構築を行う際、Javaを基盤にしている企業は多く、特に比較的大きな法人がユーザとなるエンタープライズ領域では、これまでの実績から信頼性が高いため、現在も幅広く活用されています。
一方、学習コストや構築コストの面から、スタートアップ企業や小・中規模のサービスではJavaに代わり、Ruby(Ruby on Rails)やJS(node.js)等が使用されるケースも増えてきているようです。
Python
「3~5年以内」でのニーズは、Java以上にPythonのニーズが最も高い結果になっています。PythonはGoogle社が使用していることで、以前話題に上がっていたのですが、日本のビジネスシーンの中心になることはほとんどありませんでした。
Pythonは文法的に定まった形式で書かないとコンパイルが通らないため、スキルが異なるレベルのエンジニアがコーディングをしても、同じように記述され、他の言語よりも比較的分かりやすいといった特長があります。そういった事から、仮想化環境等の設定技術言語として採用されたり、統計処理や機械学習のライブラリが充実している事から統計解析や機械学習の分野で使用されたりと最近では取り上げられるケースが多くなってきました。
Webサービスエンジニアでは、従来のPHPやPerlからPythonやRubyに移行しているエンジニアも増えています。エンタープライズ系サービスでも、業務処理にPythonを使って、業務プロセスの最適化を図っている現場もあり今後、さまざまなシーンでの活躍が期待される言語となっています。
続いて、プログラマであれば知っておいていただきたい開発技術/開発管理。
開発をより効率よく進める考え方や具体的な手法についてご紹介します。「開発プロジェクトが遅れて炎上…」、なんて話もよく聞きますが、そうした問題を少しでも発生させないような考え方です。
アジャイルスクラム開発
従来は「ウォーターフォール型開発」が多く取り入れられ、「要件定義」→「基本設計」→「詳細設計」→「開発」→「テスト」と各工程で手戻りが起こらないように、しっかりと検討が行われ、次の工程に進む開発手法が主でした。この場合、十分な要件定義が行われていないと、完成した際に顧客が望んでいたシステムと異なってしまうケースや、前工程に戻るのが難しいため、開発現場でトラブルが発生、その結果、大幅な納期遅延に繋がる場合も多々見受けられることがありました。
それに対して、アジャイル開発(と、言ってもさまざまな手法があるのですが)は、基本は「設計」→「開発」→「テスト」→「フィードバック」の期間を短縮し、顧客からの提案を素早く開発にフィードバックできる体制を整えて、求められている形に効率よく開発していくことを目的としています。
その中で、近年ではプロダクトマネジメントの枠組みである「スクラム」が特に着目されています。スクラムではスクラムマスターを軸に、自身が顧客との協調を大切にし、サービスをいち早くユーザに届けるために自分たちの組織運営をよりよい形にする「自己組織化」の動きを高めていくところが大きな特長です。
日本では主にJames O. Coplien氏が認定研修を行っていて、多数のスクラムマスターが誕生しています。
DevOps
DevOpsとは開発側(Development)と運用側(Operations)が協力し、ビジネス側からの要求を柔軟に対応し、顧客やユーザにビジネス価値をいち早く届けていく事を言います。(下図参照)
ITのサービスには、ビジネスの企画があり、それを基にサービス開発を行い、そのサービスを運用側がダウンしないようにしていく流れとなっています。
開発側は前述にあるようなアジャイル開発を行うことで、顧客やビジネス側の要求をサービスに盛り込み、比較的短期間でリリースを行えますが、運用側はサービスの実環境構築や運用テスト等に手間が掛かり、そのスピード感に追いつけず、サービスリリースをタイムリーに行えないケースや、強引にリリースした結果、トラブルだらけ、といったケースは珍しくありません。
ここにChef等の自動化ツールや、前出のスクラムやリーン、カイゼン等と言った「ものづくり」に対する姿勢を導入し、さらに開発側とのコミュニケーションアップを図り、迅速にビジネス価値を顧客に提供する体制や環境づくりを行う考え方を言います。
Web系エンジニアを目指すなら 当メディアを運営しているCodeCampでは、マンツーマンで現役エンジニアからプログラミングコースを提供しています。このコースの特徴は
バックからフロントまでエンジニアとしての基礎スキルを着実に獲得できる プログラミング未経験から転職・フリーランスへ挑戦できる 実際にWebサービスを開発するのでポートフォリオとしても使用できる
調査結果からは、大規模化・複雑化をする一方で高速化も求められる開発現場においては、目的に沿った言語の選択や開発効率を上げる取り組みが重要視されていることがわかります。
次回は、プログラミングから少し離れて、サーバやネットワーク、セキュリティに関する技術についてご紹介していきます。
プログラマとはあまり関係ないように感じるかもしれませんが、エンジニアとして、全体を理解している事は大きな強みになりますので、まずは、どんな技術が求められているのかを確認していきましょう。
著:須賀俊介(株式会社VSN )
未経験でも、現役エンジニアの手厚い指導が受けられるCodeCampのレッスン【無料カウンセリング】とは? 【CodeCampの無料カウンセリング】で知ることができる内容 自分にあったプログラミング言語とは? 初心者のための挫折しない 学習の進め方
独学よりも速く、確実に プログラミングを習得する方法
満足度97.1%、現役エンジニアのマンツーマンレッスンとは?
CodeCampがプログラミング初心者から選ばれる理由
未経験からエンジニア転職・フリーランスとして活躍するステップ
開催時間:毎日9時〜21時迄(所要時間40分) PCとインターネットがあれば、日本全国どこからでも受講できます
CodeCampで学習できる言語・技術