見出し画像

開発チームをつなぐ心臓部!ZOZOTOWNの"今"を支えるWEBバックエンドの魅力

こんにちは!ZOZOTOWNWEB部 バックエンド2ブロックの佐藤です。

ZOZOTOWNは、①各機能ごとにリプレイスや新規開発が行われるマイクロサービスと、②サービス開始から稼働し続けているASPを利用したアーキテクチャの両輪で構築されています。

私達のチームは②のASPを中心に開発をおこなっており、ざっくりお伝えすると下記の役割があります。

  • 今すぐに必要な追加仕様をASPで実現する

  • 新しく作成されたマイクロサービスへのリクエスト処理を追加する

  • 運用開始後に仕様変更が必要となった際、マイクロサービスの設計・開発にも携わる

創業当時から続くWEBバックエンドチームの業務について、メンバー視点の情報が公に出ることはあまりなかったように思うので、今回はチームのカラーも含めてお伝えできればいいなと思っています!

なお、ZOZOTOWNシステムリプレイスについては下記の記事で技術的な説明をおこなっていますので、是非ご覧ください!


■店舗在庫連携機能の開発

弊社は、ZOZOTOWNで実店舗の商品を取り置き予約し、各ブランド様の実店舗で直接受け取ることができるサービスを2021年11月に開始しました。

現在は一部のブランド様に導入していただいており、対応店舗数は順次拡大しています。お客様は商品のカラーとサイズを選ぶと、在庫のある店舗を表示して取り置きを申し込めます。

ASPでおこなっていること

この仕組みを構築するための専用のマイクロサービスは、社内の別チームが開発しています。データの参照・更新はマイクロサービス内部のみで行われており、ASPではおこなっていません。

ASPで適切な画面遷移や表示を実現するために、WEBバックエンドチームでは各種マイクロサービスの仕様を調査し、時にはコードを深く掘り下げて確認した上で、複数のマイクロサービスを組み合わせてリクエストする処理を実装しています。

自分のチームの管轄範囲ではないリポジトリに調査が及ぶこともあり、マイクロサービスの追加や仕様変更をキャッチアップし続けるなど、ZOZOTOWNの知識を幅広く蓄える気概が必要です。

また、マイクロサービスを開発しているチームとの丁寧な調整・質問などを積み重ねていくことも、意識しているポイントです。

お客様に寄り添う

上記の「店舗在庫連携機能」を含め、新しい機能開発を行う際には、既存の仕組みの改修や、エラーの発生を考慮すべきケースもあります。

「店舗在庫連携機能」の取り置き申し込み完了画面。 取り置き完了までもう少し!というタイミングでエラーが表示されたら辛いですよね。

新機能開発に伴う仕様変更やエラー表示は、お客様にとってストレスの原因となる可能性があります。それを未然に防ぐことに加えて、万が一の場合でもお客様に快適にサイトの閲覧を続けてもらえるように、事前に画面遷移や表示パターンを追加して備えておく必要があります。

その際は、下記のような流れで最終的な仕様を確定します。

  1. 改修が必要となるパターンを洗い出す

  2. 画面の表示内容をデザイナーと確認

  3. 対象のマイクロサービスを洗い出し、仕様の変更可否を確認

  4. URLやパラメータについてサービスグロースチームと確認

  5. 上記の内容を元に、フロントエンドチームと実装方法を確認

また、時には結合テストに進み、一連の操作フローをテストできるタイミングで、改めて仕様の微調整を品質管理チームやデザイナーとおこなうこともあります。

このように、私たちWEBバックエンドエンジニアの視点に各開発チームの視点を掛け合わせることで、お客様のストレスとなる要素をできる限り排除し、機能リリースの直前まで粘って「お客様の困りごとはこれで解決できるか」「お客様は次にどんな操作をすればよいか明確か」を考慮できるのは、ASP開発者であるZOZOTOWNバックエンドの仕事の醍醐味です。

バックエンドエンジニアの中でお客様に一番近い存在として、最後までこだわりを持って他チームへの提案や開発に取り組むことができるので、大きなやりがいに繋がっています!

■新規サービスの立ち上げ時「以外」の取り組み

新しいサービスが立ち上がるタイミングだけでなく、ZOZOTOWNでは日々様々な施策が実施されています。

例えば、

  • 夏やお正月に開催されるZOZOSALE

  • 上記以外の時期に開催されるZOZOWEEK(セール)

  • 初めて会員になっていただいたお客様を対象としたキャンペーンをはじめ、特定のお客様が特定のタイミングでお得になるポイント施策

などがあり、チームで分担して取り組んでいます。

新春ZOZOSALE、1月1日0時スタートの緊張感

ZOZO内ではお正月のセールに向けて、少しずつお祭りモードになります。まず毎年11月末になると、デザイナー、フロントエンド、バックエンドが集まったセール対応チームが期間限定で立ち上がり、ビジネス担当部門とともにセールを盛り上げるための施策ページの開発に取り組みます。2022年の新春ZOZOSALEでは私が開発リーダー(※)として、職種の垣根を超えて、セールLPに関わるWEBバックエンド以外の各チームとともに開発を進めました。

(※)開発リーダーとは、担当案件の開発要件を実現へと導くために、担当案件内のタスクの把握と管理を行う役割を担う立場です。

その年のセールLPのコンテンツ構成は、過去のセール施策で使用された各コンテンツの効果検証の結果や、その年に特別におこないたい施策の内容を元に決定します。

過去に実施したことのあるコンテンツを流用する場合も、とても細かなアップデートを実施しています。この細かな改善の積み重ねがお客様のお買い物体験の向上に繋がってきます。

セールLPは時期によって表示内容が変わります

まずは年末にプレセールを開始し、お正月から本セールを開始する、という流れであることが多いため、徐々にワクワク感を盛り上げていく演出にも気を配っています。セール対応チーム内であれこれ確認を進め、舞台の準備を整えます!

また、急激なアクセス増加に備えるためにサイトの各所では入念な負荷対策をおこなっています。詳細はお伝えできないのですが、対策期間中も普段と遜色なくお買い物を楽しんでいただけるように、バランスを考慮して実施しています。

これらの準備を経て、いよいよ新春ZOZOSALEを迎えます。

大晦日の夜から徐々にアクセスが増加してきて、マツケンサンバの話をしながら緊張を解きほぐしあいます。一番緊張するのは、1月1日0時のセール開始の瞬間。たくさんのお客様にアクセスしていただくタイミングです。

無事にお客様がお買い物を快適に終えられるよう、万全の体制で臨みます。

こうして、セール担当は安心して年越しを終えることになります……。

ちなみに、必ず大晦日やお正月に出勤しないといけないわけではなく、監視は当番制です!このnoteをお読みになっていて採用への応募を検討してくださっている方はご安心ください。また、当番になったとしても、業務に集中できる環境であれば、例えば実家でこたつに入りながら監視を行うこともできます。

入念な準備が功を奏し、2022年の新春ZOZOSALEでは、お客様にお買い物を快適に楽しんでいただけたのではないかと思っております!

なお、今年のセールにおいてエラーの発生件数が抑えられた大きな要因は、

  • カートリプレイス

  • 負荷試験の課題解決(効率化・自動化)

にあります。下記の記事で技術的な説明をおこなっていますので、是非ご覧ください。

ポイント施策の運用改善

弊社では稀に、社内のビジネス担当部門から開発担当に対して、単発的な施策の提案やスピード感の必要な要望も出てきます。

中には「ポイント付与キャンペーンをおこないたい」という要望もあり、対象のお客様や付与ポイント数、有効期限などのデータが必要となりますが、スモールスタートで施策を開始することを最優先とし、「まずはテーブルと画面を準備する。データの繋ぎ込みは仕組み化せずに手で運用する」というように開発を進行する場合もあります。

この画面に会えたらラッキー

一度上手くいくと2回目、3回目の施策に繋がっていきます。本来は良いことなのですが、データ生成が手動である以上は運用コストを要するため、他の業務が立て込んでいるときには調整が難航する場面も出てきます。

コンパクトな体制で、よりスムーズに調整を進めるために、キャンペーンの分類に応じてWEBバックエンド10人が4つのチームにわかれ、要件定義・運用担当者への提案・設計・実装などの対応をおこなっています。

どのチームも進捗状況は順調で、中には入社1年目の新卒社員が指揮を執って進めているチームもあります!若手であっても主体的に改善を進めていけるので、開発工程全体を俯瞰し、メンバーと共に案件を進める力の向上に繋がっています。

これまでに挙げた店舗在庫連携機能の開発、セールの開始、ポイント施策の運用改善を始めとする各開発案件において、私たちWEBバックエンドチームはフロント開発チーム・インフラ開発チームやビジネス担当部門を繋ぐ役割を果たしており、開発部門の心臓部だと自負しています!

■退職しても再入社したくなるZOZO、そしてバックエンドチームの魅力

実は、私は2016年にZOZOを一度退職しました。

身内の事情で関西への引越しが必要となり、やむを得ず、という理由でした。そして2021年に「全国在宅勤務制度(※)」ができたと耳にし、その日に当時の上司に連絡しました。

(※)国内のどこに居住していても就業可能な制度です。尚、会社イベント時や業務都合等により、会社が指定した場所に出社していただく場合がございます。(担当業務により一部社員は対象外)

「いい人が多い」ZOZO

ZOZOは昔からいい人が多くて、みんな立場は違っても「このサービスをもっともっと良くしたい」という一つの目標に向かって進んでいることを感じることができる会社です。

自分の提案や設計、開発内容に対して前向きな言葉で意見をもらえたりと、思いやりを持っている人が多いです。

そんな中で仕事を続けていると、「この人のために頑張りたい」「次はこちらがお返ししたい」という気持ちになってきて、とても良い循環が生まれています。

WEBバックエンドメンバーが主催しているランチ会の様子。フロントエンド、カート、アプリバックエンドからも様々な人が参加してくれました。フルリモートだからこそコミュニケーションを大切にしています。

また、エンジニアの中でもチームによってカラーは様々ですが、WEBバックエンドチームの特徴は、穏やかな人が集まりながら、意見交換が活発であることです。よく笑ってよく仕事して、仕事を楽しみたいという人にはうってつけの職場だと思います!

勤務形態の柔軟さ

私はシングルマザーで子供と二人暮らし(+猫)なのですが、基本的にはオフィス出社はなく、自宅で仕事ができるので、子供が小学生になっても顔を合わせて「おかえり」を言えることがとてもありがたいです。

また、ZOZOには子育て世代のスタッフも多く、オンラインミーティング中に子供が登場することもあります。

パパもママもそうでない人も、みんなで仕事を頑張っているところを見て、背中を押される場面が数多くあると感じています。

■最後に

ZOZOでは、ZOZOTOWNのWEBバックエンド開発に携わってくれる方を募集しています。

気になる方は是非、採用ページをご覧ください!

「話を聞いてみたい」という方は、下記からカジュアル面談にご応募いただけます!


ZOZOでは、エンジニア・デザイナーを含む各職種で採用を行っています! 採用情報はTwitterでもお知らせしているのでぜひチェックしてください!