
2017年、ZOZOTOWNをより多くのお客様に使っていただけるサービスにするべく、ZOZOTOWNのリプレイスプロジェクトが始まりました。VBScriptからJavaへ、モダンアーキテクチャへの移行に向けて、新しい技術スタックに習熟していくこと、そして強いSREを育てることを目的に、ZOZOとカサレアルは総勢72名のエンジニアに対してJavaエンジニア育成研修を開催しました。
Javaエンジニア育成研修 担当者


成長し続けるZOZOTOWNを、より安定的・効率的な運営に
ZOZOTOWNといえば誰もが知っている日本最大級のファッション通販サイトです。2004年にオープンしてからアーキテクチャをほとんど変えずに拡大してきたZOZOTOWNですが、さらなる成長のため、2017年にリプレイスプロジェクトが開始されることとなりました。段階的に始まったリプレイスは「スピードをあげる、コストをさげる、人材をふやす」という3つの目標に向かってさらに加速できるよう、2020年には新アーキテクチャと新体制の計画が打ち出されました。具体的にはマイクロサービスの立ち上げを全社レベルで目指し、マイクロサービスアーキテクチャを反映した組織体制の確立、ZOZOTOWN APIガイドラインの策定などが実現されていきました。
こうして成長していくZOZOTOWNには、それを支えるエンジニアの成長が欠かせません。リプレイスプロジェクトに携わるメンバーが増えていくのは必然で、すると当然「全員が新しい技術スタックに習熟していく必要があると思いました」と技術本部長である瀬尾さんは振り返ります。
リプレイスプロジェクトの一環として、従来使用してきた開発言語をVBScriptからJavaに移行するにあたり、ZOZOはカサレアルでJavaとSpring Bootに関するトレーニングを実施することに決めました。
今回、カサレアルはZOZOにインタビューを行い、カサレアルに研修を依頼しようと思ったきっかけ、研修の成果、今後の展望についてお話をうかがいました。

まずはカサレアルに研修を依頼されたきっかけを教えてください!
はい。ZOZOでは2017年から進めているZOZOTOWNのリプレイスプロジェクトについて、モダンアーキテクチャへのリプレイスをしているところです。リプレイス以前の言語はVBScriptで、新しいシステムはJavaになるのですが、まだJavaを触っていないメンバーもいます。でも、最終的には全員が新しい技術スタックに習熟していく必要があると思っているので、その土台作りのために今回研修をお願いして、トレーニングを開催することになりました。

「リプレイスプロジェクトの土台づくりが必要だったのも研修をお願いした理由ではあったんですが、もうひとつ理由があります」と、瀬尾さんは続けます。
アプリケーション開発側もそうなんですけど、インフラエンジニア側もコードの読み書きができた方が強いSREになるというのが私の持論としてありまして。そういう、強いSREを育成するというのも目標のひとつにありました。だから今回、SREにもトレーニングを受けてもらいました。
リプレイスプロジェクトを通じて、より安定的かつ効率的な運営を実現して、ZOZOTOWNをより多くのお客様に使っていただけるサービスにしていきたいという目的で、今回研修をお願いしました。

※SRE…Google社が提唱、実践しているシステム管理とサービス運用の方法論。組織横断的なインフラ整備、オペレータや運用技術者のタスク(定常作業、窓口業務、障害対応、インフラ管理等)を積極的にソフトウェアで置き換え、自動化や自律化の仕組みの整備などを行う(Wikipedia サイトリライアビリティエンジニアリングを一部編集)。

新しいシステムを開発する言語として、Javaを選定した理由にはどんなものがあったのでしょうか?
VBScriptという言語自体は業界的にもレガシーとみなされていて、Datadog、AWS、GCPといったシステムで使おうと思ってもSDKが用意されておらず、そのままでは使えない状態になっています。Java以外にもクラウドベンダーがサポートしている言語はあるのですが、Javaをメインに置いてリプレイスプロジェクトを進めている理由としては、『型』があって大規模開発に向いている点、高速に動く点、市場にエンジニアが多くて採用しやすい点、廃れる可能性がかなり小さいという点がありますね。リプレイスのリプレイスをしたくないので、安定していて確実な言語を使いたくて。

教育と開発の両立へ。エンジニアがカサレアルを推薦
かくして、カサレアルに研修を委託することになったZOZOですが、それ以前には内製での研修実施を考えていただけでなく、実際にマンツーマンでの教育を実施していたといいます。
社内でJavaを使っているメンバーが、他のメンバーを教育するために自作した教育用コンテンツが既にありましたし、それを使って開発業務のかたわらで育成することもやってはいました。ただ、ペアプロで問題を解いたり、質問を受けたらそれに答えたりといった、マンツーマンでの教育コンテンツになっていたので、多人数を対象にしたものではありませんでした。それからメンバーからも、「教えることが結構負担になってしまっていて、開発業務もあるので困っています」という相談があったので、外部に頼むことにしました。


確かに開発もやりながら、教育もしようとすると負担は大きくなりますよね。ちなみに、カサレアル以外の会社も探されたのでしょうか?
はい。カサレアルさん以外の会社も探したりもしたんですが、JJUG CCC(※)でカサレアルさんの講演を見ていた社内のエンジニアから推薦があったのと、実は私自身も新卒入社したときのJava研修がカサレアルさんだったので。そのときの教育コンテンツよかったなっていう憶えがあって・・・

※JJUG CCC…日本Javaユーザーグループが開催しているコミュニティイベント。カサレアルは定期的に登壇している。

え!?
瀬尾さんの新人研修、カサレアルだったんですか!?
はい(笑)。それで今回、カサレアルさんから実際に提案してもらって、「いいよね!」となったので、そのまますんなりと依頼する流れになりました。


嬉しいご縁ですね!瀬尾さんを育てたのはカサレアルなんですと自慢したいですね〜
ZOZOのエンジニアと新システムに合わせたカリキュラム
カサレアルはJavaの研修には強みを持っており、エントリーレベルから応用レベルまで12コースを揃えています(2022年2月現在)。その中からZOZOが選んだのは『Javaプログラミング基礎』と『基礎からのSpring BootによるWebアプリケーション開発(※)』の2コースでした。
※2022年1月より『Spring BootではじめるRESTful Web Service開発入門』、『Spring BootではじめるWebアプリケーション開発入門』の2コースに分岐
▼Javaエンジニア育成研修
実施期間:2021年8月23日〜11月12日(5日間×4回の計20日間)
受講者総数:72名(18名×4回)
毎月1-2回のペースで下記2コース5日間を定期的に開催(ZOZO繁忙期を除く)。
受講者は業務都合にあわせて、いずれかの開催回で受講。
実際の業務システムに対応できるよう、オブジェクト指向を活用した実装手法だけではなく、クラスライブラリやデータベースアクセスの基礎など、 開発現場で利用頻度の高い機能についても学習。
Spring初学者の方を対象として、基本的なWebアプリケーション開発方法を講義 + 演習で学習。
今回の受講者は、VBScriptでの開発経験があるアプリケーションエンジニアとSREのエンジニアです。SREのエンジニアは開発がメインではないものの、自動化スクリプトの作成などには慣れており、基本的なプログラミングの概念は理解していました。「一方で、オブジェクト指向の概念はおさえておいた方がよさそうと思いました。」と瀬尾さんは言います。

オブジェクト指向の概念はおさえておいた方がよさそうというのは、どういう理由からだったのでしょうか?
SREのエンジニアの中には、スクリプトなどは書きますが、オブジェクト指向でがっつり書くということはしてこなかったメンバーがいます。また、ZOZOTOWNを作り始めた17年くらい前にはそれが流行っていなかったというのもありますが、社内のVBScriptのコードもオブジェクト指向で作るものにはなっていませんでした。でも、これから新しくシステムを作る場合、オブジェクト指向は基礎になるので、これはおさえておいた方がいいと思いました。
それでカサレアルさんのWebサイトで公開されているサンプルテキストを確認したうえで、『Javaプログラミング基礎』のコンテンツが最適だと思って選びました。
それから、Javaで書いているAPIサーバ、HTTP APIサーバをSpring Bootで作成していたことと、既に始まっているリプレイスにみんなが入ることを考えると、Spring Bootのコースも必須だと思って『基礎からのSpring BootによるWebアプリケーション開発』を選択しました。日程としてもこの2コースで5日間になるので、今回はこの2つでいこうと。

受講者の声、責任者の判断にも柔軟に対応
今回は受講者72名に対し、開催を複数回に分けて少人数制にし、かつコロナ禍の状況を鑑みてオンラインで実施しました。研修実施前・実施中・実施後の様子について、受講対象部門の責任者であり、自らも受講者だった山本さんにお話をうかがいました。

まずは研修を受講する環境のセットアップがありましたね。受講者のみなさん自身でご準備いただきましたが、PCはWindowsだったり、Macだったり、OSもBig Surだったり、Catalinaだったり、それぞれで異なる環境をお持ちでした。随時、オンラインチャットシステムで講師がフォローしておりましたが、大きなトラブルなどはなかったですか?
特になかったですね。研修が始まってからも必要なツールがインストールできないとかで詰まっている人はいましたが、サブ講師の方が裏側でフォローしてくれていました。誰も取り残されることなくスムーズに進行できたかなと、非常に感謝しています!


ZOZOの事務局のみなさんにもフォローいただけたおかげです!
4回の開催に分けた研修の運用についてはどうでしたか?
こちらも大きな問題や課題は出なかったと思っています。運用上、72名なら4回くらいに分けるのが限度とは思っているのですが、それでも業務の都合で講義中に抜けなきゃいけない人がいましたね。戻ってきたときに質問しづらいこともあるので、より少人数でやれるともっとよかったかもしれないとは思います。ただ、中座した人たちでも理解が追いつかなかったとかはありませんでしたね。


なるほど、確かに途中で抜けてしまうと、戻ってきたときに質問しにくいと感じるかもしれないですね。今回は1回あたり18名程度の開催にしましたが、もっと少人数にしてもいいかもしれないですね!
研修の準備、運用は問題なく整えられ、いよいよトレーニングが開始されました。講師はリプレイス計画に合わせて、通常のコンテンツにはないトピックも適宜含めながら講義を進めました。第1回開催の終了後にはZOZOとカサレアルで振り返りを行い、受講者からのアンケート結果を一緒に確認しました。
初めて触る技術だと、よくわからないところがあっても質問の言語化が難しい
本研修の効果を最大化するため、上記のようなアンケート結果も踏まえて、カリキュラムの重み付けを調整しました。
ZOZOではSpring BootでマイクロサービスAPIを作ってはいるんですけど、WebサービスをそのままSpring Bootで作ることはしておらず、HTMLの生成までは不要でした。アンケート結果も「駆け足で、ついていくのが大変」という結果が多かったので、それも踏まえてWebの部分を薄めに、その他の部分を厚めにしていただきました。正直、カリキュラム変更してもらえるとは思ってなかったので、こういうふうに臨機応変に対応してもらえるっていうのもカサレアルさんの強みなのかなと、感嘆いたしました!


カサレアルにとって、受講者や事務局のみなさまからの直接のフィードバックはとても大切です。第1回開催は講師のサービス精神がやや多すぎたようですが、すぐに改善できるのもカサレアルの大きな強みです!
72名で受講した効果:ひとりでつまずく時間を減らす
山本さんは、「最初はこの短い期間でカリキュラムをすべて理解できるのか不安でしたが、大部分を理解することができ、一定の成果が得られました。」と振り返ります。リプレイスプロジェクトが進行しているとはいえ、開発の大部分をVBScriptで経験してきた受講者の中には、Javaを触るのも初めてというメンバーがほとんどだったと言います。マンツーマンでの内製教育にもトライしたことのあるZOZOですが、総勢72名で外部研修を受講することには、どんな効果があったのでしょうか。
受講したメンバー全体で「Javaってこういう言語だよね」という共通理解が得られたのは成果でしたね。Javaの開発をスタートするときに、一、二歩進んだ状態に持ち上げられましたし、”自分だけが知らない”という状態が少なくなりました。隣のメンバーにも相談しやすくなったので、ひとりでつまずいて止まってしまう時間を少なくできました。


みんなで一緒に外部研修を受ける大きな効果ですね!
今回の研修では「オブジェクト指向」もひとつのキーワードになっていましたが、それについてはいかがですか?
オブジェクト指向やクラスの概念は、ZOZOの基幹システム開発の標準としてまだしっかり定着していないので、今回の研修を受講したことで、VBScriptで開発するにしても、活きる部分があったんじゃないかと思います!

「ファッションを“買う”ならZOZO」から、「ファッションの“こと”ならZOZO」へ
最後に、ZOZOとしての今後の展望をお話いただきました。
ZOZOは代表取締役社長に澤田が就任して、新しく経営戦略:「MORE FASHION × FASHION TECH」を掲げました。この経営戦略に基づいて、「ファッションを“買う”ならZOZO」から、「ファッションの“こと”ならZOZO」を目指して、ファッションとテクノロジーを掛け合わせたさまざまな取り組みを進めています。ファッションアイテムを買うだけじゃなくて、ファッションに関する要望とかソリューションを探すときにZOZOTOWNが頭に浮かぶような存在になりたい。その目指す姿を実現するために、BizDevOps(※)が開発組織となる体制を作りたいと思っています。3つのセクションが連携してひとつのゴールに向かえるように、BizDevOpsを実現できるための下地として、株式会社ZOZOテクノロジーズと株式会社ZOZOの会社統合がありました。今後はBizとDevがより密接に連携して、さらにスムーズに開発を進められるような体制を作って、知識も高めて、全社一丸となって進めていきたいです!

※BizDevOps…BizDevOps(ビズデブオプス)は開発部門と運用部門を密に連携するDevOpsにビジネス部門を加えた3者で協力してIT推進を行う事を指す(Wikipedia BizDevOpsより)
担当講師が感じたエンジニアの成長

瀬尾さんが最初に入社されたのは、私どもが新入社員研修を行った会社だったのですね。私どもの新入社員研修を受けた方が、世の中の第一線で活躍されているのは、とても嬉しい限りです。
研修は、受講者のパートごとの理解度やアンケート結果を踏まえ、顧客研修担当者様との振り返りでカリキュラム内容に強弱をつけるポイントを確認しつつ、実施いたしました。
研修前半のJavaプログラミング基礎パートを実施中、受講者さんから、「実は以前独学でJavaを学ぼうとしたのですが、オブジェクト指向やクラスの概念で挫折してしまいました。今回、イチからわかりやすく教えていただけてJavaへの苦手意識がなくなりました。」というフィードバックをいただきました。業務でプログラミング言語を使うことはほとんどない方々もいましたが、皆さんしっかりJavaの基礎を身に着けることができました。
また、後半のSpring Bootのパートに関しても、「独学では難解で手が出せなかったが、とても効率よく理解を深めることができた。」とのお声もいただきました。
サンプルコードや、実際に演習で作成したプログラムの挙動を確認しながら、Spring BootでWeb APIを開発する基本をしっかり理解いただけました。
実施後のアンケート結果からも、皆さんに満足いただけたようで、何よりです。
今後も、お客様に寄り添い、研修で達成したい目的に合致する研修を提供していきたいと思います。
顧客プロフィール
株式会社ZOZO
設立:1998年5月21日
資本金:1,359,903千円
売上高:147,402百万円(2020年度)
営業利益:44,144百万円(2020年度)
従業員数:1,381名※グループ全体(2021年12月末時点)