デジタルトランスフォーメーション時代に生き残れるエンジニアに求められるものとは何か。長らく、日本のJavaコミュニティで存在感を示し続け、現在は日本マイクロソフトでJavaエバンジェリストとして活動する寺田佳央氏に聞いた。
デジタルトランスフォーメーション時代に生き残れるエンジニアに求められるものとは何か。長らく、日本のJavaコミュニティで存在感を示し続け、現在は日本マイクロソフトでJavaエバンジェリストとして活動する寺田佳央氏は、「変革」をキーワードに挙げる。
「今、ITの世界ではクラウドやソーシャル、ビッグデータ、AIと、数々のメガトレンドが同時に起こっています。それに呼応するように、企業もIoTやFinTechに代表されるように、先進テクノロジーを積極的に取り入れて競争優位性を確保しようと、必死になっています。こうした動きに後れを取らないようにするには、企業もエンジニア個人もマインドを変革していく必要があるでしょう」
マインドを変革している企業として寺田氏は、楽天、ゴールドマン・サックス、クレディ・スイス、SOMPOシステムズ(旧:損保ジャパン日本興亜システムズ)を挙げる。これらの企業はITのソリューションやシステムを提供する側ではなく、ITを活用するいわば“ユーザー企業”だった。そのユーザー企業が、現在、Java仕様の標準化団体「JCP(Java Community Process)」に参加しているのである。
その理由について、寺田氏は「次の時代の自社システムを作っていく際に、標準のJavaがより良い仕様であってもらいたいという思いがあるから。そして、仕様策定に早期から携わることで、次のJava標準仕様が出て来たときにいち早く対応できるからです」と話す。Javaの仕様にまで関わるのは、これらの企業が、ビジネスを拡大する上で自社システムにITサービスを取り入れることの重要性を十分に認識している表れに他ならない。
全ての企業がJavaの仕様にまで関わるべきか否かはさておき、「先進テクノロジーを積極的に採用する企業になるためには、現在のトレンドをつかむこと、それに柔軟に対応する組織作り、そして優秀なエンジニアの確保が必要です」と寺田氏は力を込める。
このように前置きした上で、寺田氏は、企業やエンジニアに必要になる要素として、次の3つを挙げた。
「まず企業や組織は、常に継続的なシステムやサービスの改善が可能な開発手法を意識する必要があります」
日本企業におけるシステム開発のプロセスは、設計時に要件を完全に固め、その後は仕様変更がないことを前提に全ての機能の開発を進めていく、いわゆるウォーターフォール型が主流だった。これは、建築物のようにライフサイクルが長く、一度作ったらその後ほとんど変更の必要がないものには向いていた。
しかしソフトウェアは建築物よりはるかにライフサイクルが短く、しかもビジネス環境の変化や技術革新が激しい今日においては、一度作ったソフトウェアを一切変更せずに10年、20年と使い続けるケースは多くはない。であれば、常に改善や育成を繰り返し行うアジャイル手法や、その先にあるDevOpsも検討すべきだという。
一方、エンジニア個人に求められる変革マインドの最たるものとして寺田氏は、「情報感度」の重要性を強調する。
「最新の情報に常にアンテナを張り、それをいち早くビジネスに生かせるよう能動的に動ける人材がこれからは求められてくるでしょう。逆に、ただ周りに言われるがまま、目の前にあるものを作っている受け身の姿勢では、より安い人件費で雇える別のエンジニアにあっという間に取って代わられてしまいます」
高い「情報感度」を保つには、当然「常に学び続ける姿勢」が大事だ。業務以外で必要な知識の習得にも積極的に取り組み、時には社外のコミュニティにも積極的に参加して最新の情報に触れることも大切だ。それとともに、自らもそうした機会をとらえて自ら情報を発信することで、より自身のエンジニアとしての価値を高めることもできる。
また、「これからは英語スキルの重要性がより一層増してくるでしょう」と寺田氏は指摘する。
「かつて日本のIT技術は世界のトップレベルにありましたが、今日、日本発の技術が世界の標準技術として使われる例は少なくなっており、むしろ最新のIT技術は海外から入ってくることの方が多くなっています。そこで、世界の最新情報をいち早く入手するため、もしくは自分が作成したサービスを世界で利用してもらうためには、英語の読み書きのスキルは必須といえるでしょう。
そして、世界の優秀なエンジニアたちとコミュニケーションをとることで、いち早く問題解決ができ、またグローバルにおける自身の認知度も広がっていくでしょう。日本人は非常に優秀なエンジニアが多くいるため、もっと世界を視野に活躍の場を広げてほしい」
Javaエンジニアが今後身に付けるべきスキルは情報収集力や英語力だけではない。情報収集によって、ビジネス課題に対して最適なテクノロジーを選び、使いこなせるよう、自身のスキルやスタンスを、時代に合わせてモダナイズしていくことが求められる。
身に付けるべきスキル/テクノロジーとして、寺田氏は迅速で柔軟なITサービス開発に欠かせない、TDD(テスト駆動開発)、CI(継続的インテグレーション)と、CD(継続的デリバリ)を挙げる。
CIについては、下記Jenkinsの一例で示すように「CIツールで、ビルド、単体テスト、ソースコード解析、負荷テスト、テストカバレッジ計測、UIテストなどを自動化するべきです」と指摘する。
一方、CDについては「Infrastructure as Codeを実現することが非常に重要。コードベースでインフラを作ることで、環境の差(開発、テスト、本番)を極力なくすことができます」と話す。そのInfrastructure as Codeを実現する上でも、「環境構築」「環境設定」の側面で、以下のようなさまざまなツールが存在する。
加えて、寺田氏は「環境構築」と「環境設定」を共に実現する技術としてコンテナの重要性も説く。コンテナの構成をコードで管理することで、開発環境が簡単に用意でき、かつ本番環境と共通化できるなど、移植性や相互運用性を高めることができる。また、アプリケーションの実行環境を使い捨てとし、環境を都度作り直すことによって管理しやすくするため、実行環境を継続的にデリバリしやすくなるためだ。
これらのツール/テクノロジーを挙げた上で寺田氏は次のように補足する。
「ひと言でCI/CDといっても、組み合わせはまさに千差万別。非常に多くのやり方があります。ここで挙げたツール/テクノロジーは、CI/CDを実現するための単なる一例にすぎず、どれを使ってもいいですし、どのような形で実践しても構いません。これらを1つ1つ試し、企業に最適なやり方を見つけることが可能です」
ただ、寺田氏は「ここで1つ課題が出て来ます」と指摘する。「数多くあるツールの中から特定技術を選定し、どのように組み合わせるべきか」「セキュアに環境を構築するにはどうすべきか、すなわちエンタープライズレベルの安全性を担保するにはどうするか」という課題を解決する上では、多大な時間と労力、さらに人的コストが掛かってしまうことだ。
「そこでこうした環境をスピーディかつ安全に構築する上で、最近注目を浴びているのがコンテナ技術をベースとした次世代PaaS”です。例えば、Microsoft Azure上ではRed Hat OpenShift、Pivotal Cloud Foundry、Microsoft Service Fabricが利用できます。そして、これらをマイクロサービスのプラットフォームとしても利用できます」
Copyright © ITmedia, Inc. All Rights Reserved.