技術があらゆるビジネスを変えていく時代に「企業」と「エンジニア」に求められる変化とは

自ら「変化」し続けることを選んだ2人のエンジニアの視点
2017/09/19 14:00
 

 近年、ビジネスの世界では「デジタルディスラプション」「デジタルトランスフォーメーション」といった言葉に多くの企業や経営者が関心を寄せている。変化し続けるビジネス環境に追従し、生き残るにあたって、ITによるビジネスの変化が重要なカギになるという認識は多くの企業にあるようだ。一方で、特に日本において変化への一歩を踏み出せている企業が多くないというのも、また事実だ。そのような中で、企業と、ITのエキスパートであるエンジニアには、どのような変化が必要なのだろう。今回、企業システムを支える主要技術の一つであるJavaのエキスパートとして、日本マイクロソフトでJavaエバンジェリストを務める寺田佳央氏と、Yahoo! JAPANの広告システムをPHPからJavaに移行した森下大介氏の2名に、日本の企業とエンジニアが起こすべき「変化」について語ってもらった。

「Microsoft Azure」を初めて使ってみて感じた「スタイリッシュ」さはYahoo! JAPANで生かせる?

森下:今回は、寺田さんとJavaや、これからのIT業界についてお話しができるということで楽しみにしていました。どうぞよろしくお願いします。

寺田:こちらこそ、よろしくおねがいします。森下さんには、以前Yahoo! JAPANとマイクロソフトが共同で開催した「Pivotal Cloud Foundry on Azure」のハックフェストにお力を貸していただいたりと、いろいろとお世話になっています。ちなみに森下さんは、あのハックフェストで初めて本格的に「Microsoft Azure(以下、Azure)」を触られたということだったんですが、実際に動かしてみて、どんな印象を持たれましたか。

森下:一緒に参加したメンバーにも感想を聞いたのですが、AzureはIaaSをコントロールする環境や開発環境がユーザーインターフェースを含めて統合されている点がスタイリッシュだと感じましたね。あのような形で統合されていると、個別のツールを人が運用でつないでいくという手間が省けます。それについては、とても便利だと思いました。

寺田:DevOpsを実現するための、サービス開発と展開に関わるすべての要素が統合されているのはAzureの強みですね。今までのように、1つのサービスを立ち上げたいというときに、人的な運用プロセスにのっとって、裏でいろいろと調整しなければならない環境では、スピード感のある展開は難しいです。その点で、Azureの統合環境は迅速なサービス展開に対して有利になります。

寺田:ハックフェストには、Yahoo! JAPANからも多くのエンジニアの方に参加していただきました。多くの技術者にAzureを初めて経験していただいたと思うのですが、このように、新しい技術にキャッチアップしていくためには、エンジニアの教育も重要だと思います。Yahoo! JAPANでの「技術者教育」はどのような感じで行われているのですか。

森下:まず、入社後間もない新人に「集合研修」があり、その後も年次ごとにテーマを選びながら必要な研修をしていくという感じですね。また、社内のエンジニアが自発的に行っている技術セミナーも月に数回といったペースで頻繁に開催されています。そちらでは、非常に多くの言語やテーマが扱われており、最新の情報を得る機会は多くあると思います。

寺田:社内の技術セミナーには、どのくらいの人数が参加されるのでしょう。

森下:小規模のものは数人程度から、大規模のものは数百人単位の参加者となりますね。特に、社内で重視しているPaaSまわりの技術に関するセミナーなどは全社規模で行われます。

森下大介(もりした・だいすけ)氏

 ヤフー株式会社マーケティングソリューションズカンパニー 開発本部 部長。36歳までSIerで、業務システムの受託開発案件に携わる。2011年にヤフー株式会社へ転職。現在は、Yahoo!プロモーション広告業務系システムのバックエンド開発などに従事する。

「Java SE 9」の新機能に対する評価と「Javaの未来」は?

寺田:新しい技術と言えば、近く正式にリリースされる「Java SE 9」についての関心はどうでしょう。森下さんが関わられている広告業務系のシステムをはじめ、Yahoo! JAPANでも多くのエンジニアがJavaに関わっていると思います。JDK 9では、けっこう大きな変化があるのですが、そのあたりについてもキャッチアップされているのでしょうか。

森下:社内では、各エンジニアがそれぞれキャッチアップし始めているところです。各サービスの開発現場での導入については具体的な予定はまだ立っていませんが、Java 8からの移行ではいくつか気をつけないといけないポイントがありそうなので、社内でノウハウをうまく共有しながらやっていければと考えています。

寺田:JDK 9では、モジュール化の概念を取り入れた「Project Jigsaw」や、「JShell」と呼ばれるREPLツール(対話型評価環境)などが、大きなトピックになっています。森下さんの目から見て、Yahoo! JAPANの場合には、こうした新技術をどのような形で適用できそうですか。

森下:Jigsawに関して私が注目しているのは、外部に公開するライブラリの管理がしやすくなる点です。Javaを使ってチームで同じサービスの開発を行っていると、隠したい内部実装クラスが、いつの間にか使われてしまっているようなことはよくあります。Jigsawによって、そこを隠すことができるようになれば、内部のリファクタリングが、よりきちんとできるようになるだろうと期待しています。

寺田:Yahoo! JAPANではマイクロサービスも多く作っておられますよね。Java SE 9で提供されるjlinkでは、カスタムなJREも作成可能になります。実行環境の軽量化も可能になりますが、これに対する期待はありますか。

森下:マイクロサービスを作る場合、そのフットプリントを可能な限り小さくしていきたいという希望は常にあります。マイクロサービスで作ると、どうしても実行時のプロセス数が多くなりがちですが、特にPaaSを使っている場合だと、その上でメモリをどれだけ食うかが無視できない問題になってきます。マイクロサービス化を進めるにあたって、軽量化は大事な視点ですよね。

寺田:マイクロサービス化やサーバレスコンピューティングは、今後も業界において引き続きトレンドになっていくと思います。特にサーバレス環境では、スクリプト系のライトウェイトな言語と比べて、従来のJavaは起動時間が遅く、メモリ・フットプリントが重いという課題がありました。私は、Jigsawによって、Javaがサーバレス環境でも、より使いやすい選択肢にならないかと期待しています。JShellについてはいかがでしょう。

森下:JShellはまだ、興味本位で触っている段階で、活用方法の検討までは進んでいません。ただ、Javaで何かちょっと試してみたいことがある場合、記述量を大きく減らせるという意味で、面白い技術ですよね。Lambda式やStream APIなどは、実際に書いて、動かしてみないと理解できない部分も多いですから。

寺田:Java SE 8で取り入れられたLambda式やStream APIは、本当に多くの開発者の方が関心を持って、実際に触ってくれたようです。JShellによって、そういった新しいフィーチャーをより手軽に試してみるという人が増えるかもしれませんね。

 Javaについては、今後もエンタープライズを支えるプラットフォームとして重要な位置づけであり続けると思います。ただ、最近、Javaの開発を幹事的な立場で主導してきたオラクルが、Java EEの開発をOSSコミュニティに移管したい意向を示すなど、ちょっと動きが出てきていますね(参考:「Opening Up Java EE」)。

森下:この発表には、歓迎すべき点と心配な点の両方がありますよね。Java EEについては、以前から開発のサイクルが遅いことが問題とされてきました。近年のエンタープライズ開発を取り巻く環境変化の速さを考えると、OSSに移管することで、そのスピードが速まるのであれば、それは歓迎すべき変化だと思います。

 一方で、仕様や規格の策定プロセスがOSSに準じたものになるとすれば、JCPを通じて標準を決め、それをベンダーが実装して対応製品を提供するという、従来の枠組みが大きく変わることになります。その変化がスムーズにいくかどうか、分裂の危険はないのかというのは心配ですね。

寺田:私も、森下さんと同じような期待と不安を感じています。Java EEに関して、リリースサイクルの遅さが今の時代にそぐわなくなっているというのは事実でしょう。Java SE もつい先日、半年に一度のリリースにしたいとアナウンスがありました(参考:「Moving Java Forward Faster」)。Java EEに関して言うと、OSS化によって、より早く、最新の機能が使えるようになるのであれば、それは良い変化だと思います。一方で、仕様のバージョンをどのように決めていくのか、ベンダーが、それをどう調整し実装していくのかといった部分が、現時点では見えないというのは不安要素です。

補足

2017年9月12日にオラクルから「Opening Up Java EE - An Update」が発表された。これによるとJava EEをEclipse Foundationへ移行する計画があり、Red Hat、IBMなどのベンダー間でコンセンサスをとっての発表であるため、これを寺田氏は好意的に受け取っている。

森下:これまでJava EEは、標準に従って作っている限り、あるベンダーの製品がなくなっても、別の製品に移ってアプリケーション資産を守れるという安心感があり、それがエンタープライズでJava EEを採用する大きな理由にもなっていました。今後、Java EEがOSS化されるのであれば、そのJava EEがユーザーに対して提供する価値は「安心感」なのか、それとも「スピード感」なのかというのは気になるところですね。

寺田佳央(てらだ・よしお)氏

 日本マイクロソフト、コマーシャルソフトウェアエンジニアリング本部テクニカルエバンジェリズム部シニアJavaエバンジェリスト。サン・マイクロシステムズと、同社を買収したオラクルの日本法人において「GlassFish」および「Java」のエバンジェリストを歴任。日本マイクロソフトには2015年7月に移籍し、現在も「Javaエバンジェリスト」として、マイクロソフト・プラットフォームにおけるJavaの利用促進・啓発活動を展開中。2016年7月には、日本人で2人目となる「Java Champion」に就任した。

行き過ぎた「標準化」によって高まる「変化できない」というリスク

森下:今回の対談のテーマとして、これからの日本企業がITに対してどのように向き合うべきかといったことや、エンジニアはその中で、いかに自分の価値を高められるかといったことについて触れたいと思っています。寺田さんは、このテーマについて、何か普段感じておられることはありますか。

寺田:結論から言ってしまうと「多くの日本企業は、世界の状況や、その変化のスピードの速さに対して、今以上に危機感をおぼえるべきだ」と感じています。

 「デジタルディスラプション」という言葉もあるように、今、世界では、デジタルテクノロジーが、既存のビジネス環境を大きく破壊しています。分かりやすい例としては、テクノロジーをベースに旧来のタクシー業界のビジネスモデルを揺るがした「Uber」のような存在がありますよね。テクノロジーによる破壊的な変化は、何も特定の業界だけでなく、製造業、農業など、あらゆる分野で起きつつあります。

 自分たちのビジネスが、いつ壊されるか分からない状況の中で、多くの日本企業が「自分たちも変わらなければ」とは思っているでしょう。でも、具体的に変化のために踏み出せている企業は、まだまだ多くないように思うのです。

 私の意見としては、日本企業がデジタルディスラプションの波にのまれず、今後も世界と戦っていくためには、ビジネスのために必要な技術を見きわめて実装できる「良いエンジニア」を多くかかえ、エンジニアを厚く遇していくのが一番の近道だと思っています。

森下:そうした環境を作るためには、今の日本のIT業界に関わっているすべての人たちが、自らの頭で考えて、変わっていく必要があるでしょうね。

寺田:ちなみに、私も森下さんも、かつてSIerでエンジニアをしていた経験があります。森下さんも、SIerからYahoo! JAPANへの転職にあたっては、いろいろと考えた末に、自ら「変化」を選ばれたのだと思いますが、実際に職場を変えたエンジニアとして、どのような違いを感じておられますか。

森下:SIerでの仕事の進め方は、それぞれの現場ごとにまったく異なり、現場に入った時点で決まります。使える道具も技術も「全体的な都合」で決まってしまうんですね。少なくとも一次請けとして入らなければ、技術選択もままなりませんし、一次請けだったとしても、お客様との関係によって、その自由度はまちまちです。システムを作った後も、できあがったものをお客様に渡して、そこで終わりというケースがほとんどです。

 一方、Yahoo! JAPANのように自社のビジネスのために開発を行っている会社は「作ったシステムを育てていく」という側面がとても強いです。技術選択も自主的に行えるというか、それを自分たちで主体的にやっていけなければ、未来がないところがある。そこが、以前とは大きく変わったところです。

寺田:自社のビジネスを回していくためのテクノロジーとして、どこに何を使うべきなのかを、その都度吟味して選択することは、今後あらゆる領域で必要になってくると思っています。「銀の弾丸などない」というテーゼは、ネットサービス系の企業に限らず、今後、どの領域、どの業界にも当てはまるものになるでしょう。現状、特に日本の企業では、「同業他社がこれを使ってうまくいった。では、うちでもそれを使おう」といった感じで、テクノロジーを決める傾向が強いように感じています。この流れを変えていくことが大切なのではないでしょうか。

 この点については、日本のエンタープライズ開発における「標準化」が進みすぎていることも、原因の一つになっているのではないかと危惧してます。標準化はもちろん重要ですが、「定められた」技術やフレームワークを使うことに無自覚でい続けていると、そこから抜け出すことが難しくなります。「標準化」された仕組みを使うことよりも、「実現したいサービス」を基準に「そのためには何を使うべきなのか」を考えるように変わっていくべきでしょう。

森下:さまざまなレベルの技術者が開発に携わる環境で、成果物のレベルを平均化するために「標準化」というのは有効な手段ではありますよね。ただ、技術の世界は「変化」することが基本です。あるタイミングで、ある技術を使って「生き残る」ことができたとしても、その後「変化する」ことを続けられなければ、すぐに行き詰まってしまいます。「変化」が普通であるという認識を持つことは大切ですよね。

寺田:ものの作り方自体を、根本から変えていかなければならない時代になっているということなのではないでしょうか。例えば近年、クラウドが一般的になったことで、オンプレミスで動いているシステムをクラウドへ移行するという案件も増えています。でもその際、オンプレで動いていたものを、そのままクラウドへ移して、オンプレと同じように運用するのであれば、ほとんどクラウドとしてのメリットが出ないんです。クラウドのメリットを最大限に引き出しつつ、サービスやアプリケーションを展開していくためには、クラウドに適した「作り方」や「運用のスタイル」に変えていかなければなりません。

 今、自分たちがやっていることは正しいのか、新しいものを作る上で今までの資産やプロセスをそのまま使い続けていいのか、そういったことを見きわめられる「エンジニア」が企業にとっては宝です。企業はこうした人材に対してしっかりと投資し、必要なサービスを最適な方法で作れる組織作りが、今後の企業間競争や成長に対して大きく影響していくでしょう。

森下:標準そのものも、常に見直し、変えていく必要があるということですね。

市場価値の高い「エンジニア」となるために必要なこと

寺田:1年前の正解が、来年も正しいとは限らないという認識は、企業だけでなく、エンジニアにも求められるでしょう。エンジニアにとっては、最新の知識をもとに技術の「見きわめ」が行える高いスキルが、自分の市場での価値を高めることにつながります。そうしたエンジニアのスキル向上に関して、森下さんが若い方にアドバイスしていることはありますか。

森下:そうですね…。自分から興味を持って、いろんな情報にあたっていくのが一番の近道でしょうね。Yahoo! JAPANのように、社内にエンジニアが多い環境だと、情報が発信できる人も多く、エンジニア間のネットワークも活用しやすいという強みはありますね。

寺田:ちなみに、Yahoo! JAPANには技術検証を専門に行うチームはあるのですか。

森下:技術の領域によります。例えば、Hadoopやインメモリデータグリッドのようなデータまわりのプラットフォームだと、最新の技術を検証するための専門部署があります。

寺田:ビジネス環境の変化も早いですが、技術はそれ以上に早く変化していますよね。仕事としてシステムを組み上げるエンジニアにとっては、フロントエンド、Javaを含むバックエンド、DBやミドルウェア、クラウドなど、あらゆるスタックで次々と新しい技術やコンセプトが生まれていて、その全体像を把握するのさえ、大変な状況になっていると思います。森下さんの経験から、そのような状況のなかで、どのように勉強すれば、効率的に技術や知識を吸収できると考えていますか。

森下:たしかに、それは難しいテーマだと思います。でも、エンジニアであれば、まずは新しいものに興味を持ち、自分の手を動かして、使ってみることが一番なのではないでしょうか。今なら、ちょっと動かしたいという時には、パブリッククラウドを含めて動かせる環境が充実しており、個人レベルでもすぐに使えます。「自分の手を動かして試す」ことができる人は、断然有利だと思います。

寺田:あと、現在「変わらなければ」と感じている企業の中にも、優秀なエンジニアは何人もいると思うんです。そうした優秀な人たちが、個別に持っている技術や知識を、どうやって「会社全体を変える」ために活用できるのか。リーダーの立場から、自分の部隊にどう働きかけていけばいいのかといった点で、森下さんが実践しておられることはありますか。

森下:まずは、勉強会でも、ベンダーのイベントでも、そうした場に積極的に行ってこいと言いたいですね。資料を読むだけでなく、実際にその場へ足を運ぶことで得られるものも多いというのが私の考えです。社内では参加した人によるシェア会なども開催されたりしますが、やはり後で要約を聞くのと実際に聞くのとでは情報量が違いますし、またその場に参加している人数や熱意など空気感を感じ取れるのは大きいです。

 寺田さんは、企業を変えられる実力を持ったエンジニアの条件として、どんなことが必要だと考えておられますか。

寺田:まずは「時代の変化」に追従していけることですね。加えて、自分の中に「この分野だけはだれにも負けたくない」という核を持っていることが重要だと思います。例えば、自分の場合はそれがGlassFishでありJavaだったわけです。

 あと、ある分野で誰にも負けない努力を続けながらも、常に「自分を最高だとは思わない」ことも大切です。あらかじめ自分の限界ラインを低く見積もることはせず、常に限界を目指す感覚を持ち続けられる人は強いと思います。

森下:自分の「核」となる領域を持つことは大切ですね。私の場合、新卒の柔軟な時期にC/C++を核として身につけることができたのが大きかったように思います。その核があったからこそ、その後Javaに進むことができたんです。

寺田:自分の考え方は、外資系に長くいたことで培われた部分が大きいかもしれません。一般に言われているとおり、外資系は非常にシビアです。業績が下がれば、すぐさまリストラが始まります。そのとき、他の人が「取って代わることができる」役割しか持たない人は、真っ先にリストラされるんですね。「自分にしかできないこと」を持っている人だけが残ることができる。今後は、日本の会社でもそうした傾向が進むだろうと思っています。

森下:先ほど寺田さんが指摘されたとおり、技術の世界は今、非常に広範で、変化も早くなっています。その中で、他の人に負けない「核」を作るためには、まず何とかして自分の好きな領域を見つけ出し、継続して触れ、キャッチアップしていくことが大切です。また、その核が、時代の変化に合わなくなったときの保険としての意味も込めて、周辺の領域に対しても目を向けておくことも大事ですね。

エンジニアにとって「英語」の重要性はこの先さらに増していく

森下:日本のエンジニアが最新の情報を得たり、世界規模で他のエンジニアと交流したりするにあたっては「英語」の壁というものもあると思います。

寺田:残念ですが、たしかにそうですね。私としては、これからエンジニアとしてやっていくのであれば、新しいプログラミング言語を1つ覚えるよりも「英語」をきちんと使えるようになったほうが効果的だと思っています。

森下:少なくとも「英語で情報を受け取れる」レベルにはなっておくべきですよね。不思議なのですが、日本人エンジニアの中には、情報が英語で書いてあるだけで、中身を読もうとしない人も多いのですよ。システムが英語でエラーメッセージを出していると、そこに原因が書いてあるのに、ちゃんと読まずに「なんでだろう?」と悩んだりしていることがあるんですよね。

 技術が進化するスピードが加速しているせいもあるのですが、現在、最新の技術に関する日本語のきちんとしたドキュメントは、ほとんど出てこないというのが実情です。翻訳のスピードが追いつかないのですね。だからこそ、英語が読めることは、エンジニアにとって必須のスキルになっていると思います。万が一読めなくても、少なくとも、ブラウザの翻訳機能くらいは使いましょう(笑)。

寺田:英語は「慣れ」ですよね。私も、最初から英語ができていたわけではなく、学生時代はむしろ不得意なほうでした。最初は無理やりでも、たどたどしくてもいいので、読んだり書いたりしていれば、絶対に読めるようになるし、書けるようになります。森下さんがおっしゃったように、今、技術に関して最新の情報に触れたければ、グローバルのコミュニティに積極的に関わって、自分の世界を広げていくことが必須です。

 そういった形で、自分のレベルをいかに上げるかを考えて、行動できる人が、これからエンジニアとして生き残っていくでしょうし、そういうエンジニアを大切にできる企業に多くの優秀なエンジニアが集まってくると思います。結果として、企業の将来をこうしたエンジニアが明るくしてくれると信じています。

森下:どんな組織の中にいても、すべて自分の思い通りにいくことなんて、ほとんどないですよね。でも、エンジニアであれば、その中でも「自分はこうしたい」という思いを常に持ち続けてほしいと思います。私は、Yahoo! JAPANの広告システムをPHPからJavaへ移行することに取り組んだ経験があるのですが、こうした大規模な移行は、みんなが「やったほうがいいのではないか」と思いながらも、ビジネス上の都合もあって、なかなか着手できなかったんです。でも、あるタイミングで、上長がそれを後押ししてくれて実現できたという経緯があります。今は難しくても、何かのタイミングで、思いを実現できるチャンスは巡ってきます。その時にすぐに動けるよう「思い」を持ちつづけることをやめないようにしましょう。

 あと、エンジニアは「変化」していくことを拒まずに受け入れられるようになりましょう。今は、ビジネス環境も、技術も、半年あれば状況が大きく変わる、特殊な時代になっています。エンジニアであれば「技術で世界が変わる」ことが、本能的に好きなはずですよね。変化を受け入れて、自分の力で技術を使い、いろんなものを変えていくことを楽しんでいきましょう。

 寺田さんからも、最後に、特に若いエンジニアに向けてメッセージをお願いします。

寺田:昔の「IT」は、仕事を効率化するための仕組みとして使われていました。そして、これからの「IT」は、わたしたちの未来や社会をより良くするための仕組みとして使われるようになっていきます。

 これから、企業が市場の中で戦っていくためには、これまでと同じやり方ではなく、自分たちのビジネスが「世の中をどう良くするのか」「社会をどう変えるのか」を見据えて、戦略的にITに取り組むことが必要になるでしょう。また、そうした視点で技術を見きわめ、ものを作れる「エンジニア」が、これからの世の中で大きな役割を果たしていくことになるはずです。

 エンジニアの皆さんも、ITの世界に身を置いた以上「一生勉強」になることを受け入れてください。そして、変化の波を楽しみながら、その波に乗り、成長していってほしいと思います。また、企業も、そうした姿勢で技術と向き合っているエンジニアを高く評価していくべきだと思います。良いエンジニアが、常にハッピーでいられるIT業界を、われわれで作っていきたいですね。

 (「Yahoo! JAPAN Tech Blog」Yahoo! JAPANから、最新の技術情報を発信しています。併せてご覧ください)

著:高橋美津
写真:小倉亜沙子

  • このエントリーをはてなブックマークに追加