生産管理システムをPythonからGo言語に!スピードを加速した裏側に迫る!ーZOZOテクノロジーズ
「ZOZOTOWN」「WEAR」など数々のサービスを手掛けるZOZOグループ。その開発領域を担っているのがZOZOテクノロジーズです。
今回インタビューさせていただいた松藤さんが携わるのは、2018年にスタートした「MSP(マルチサイズプラットフォーム)事業」。自社の多サイズ展開のノウハウ・販売力とブランドの企画力を活用しマルチサイズ生産を行い、ZOZOTOWN上で販売するサービスです。
松藤さんは生産管理システムの開発を担っていらっしゃいます。その開発初期から現在に至るまで、FLEXYからはサーバーサイドエンジニアの田中さん(仮名)が就業中です。2年にわたる支援の背景や内容について、お二人にじっくりお伺いしました。
目次
生産管理システムを早急にPythonからGo言語へリプレイスしたかった
―今回は、「MSP事業」の生産管理システムの開発に焦点を当ててお伺いできればと思います!FLEXYからも開発に参加していますが、FLEXYを利用しようと思われたきっかけを教えてください。
株式会社ZOZOテクノロジーズ MSP技術推進部 部長 松藤 恒さん(以下、松藤):マルチサイズの生産管理システムを立ち上げたのが2018年夏頃で、もともとPythonで開発していました。ただ、今後サービスを拡大していくにあたってはPythonのままだとつらいなと思っていて、早々にGo言語に切り替えようとしていたんです。
松藤:ただ、当時社内にはGo言語の開発経験者が不在の状況でした。今回は開発スピードを重視していたこともあり、正社員ではなくすぐスポットで入っていただける方を探すことにしました。
FLEXYさんは以前も社内のプロジェクトで利用させていただいており、担当のコンサルタントの野谷さんは非常に対応が良く紹介いただいたのも優秀な方ばかりだったので、今回もお声がけしました。
1ヶ月以内に2名をアサイン。スピード感を持って作業に着手できた
―当時、FLEXYから田中さん(仮名)を含め2名を採用されたそうですが、アサインまでのスピード感や担当の野谷(※)の対応はいかがでしたか?
松藤:野谷さんにFacebook経由で相談をしたら、すぐにアサインしていただけました。生産管理システムのPython版をリリースしたのが7月で、その1週間後にはGoへのリプレイスを決定していたのですが、田中さんとFLEXYから入っていただいたもう一人は8月にはジョインしていたと思います。
当時、Go言語を書ける人がいなかったので、技術選定も含めて相互レビューできるように2名採用したという背景があります。 スピード感としては、1ヶ月もかからないうちに面談・採用を進められたので、相当素早い対応でしたね。
田中さん(仮名、以下、田中):野谷さんは返信のスピードも早く、気軽にFacebookメッセンジャーでコミュニケーションを取れるのでとてもやりやすいです。
松藤:とにかく野谷さんは仕事が速いですし、こちらの要望をきちんと聞いた上で、野谷さんなりにアレンジして進めてくれるんですよね。こちらが余計な気遣いをせずに進行できるので非常に楽です。
―田中さんがFLEXYに登録されたのはどういうきっかけだったのでしょうか?
田中:FLEXYさんに登録したのは2017年頃ですね。僕はちょうど大企業からスタートアップ企業に転職をしたところで、「もしもこの会社が立ち行かなくなったらどうしよう」という不安がありました。 そしてもしものときに自分がフリーランスとして独立できるかを試すため、まずは副業の経験を積もうと思い登録しました。
―Go言語で開発できる方に参加して欲しいという案件相談は多いと思いますが、今回の案件を受けた理由も教えてください。
田中:Go言語を使ったプロダクトの立ち上げ及び開発に携わることができるという点が面白そうだなと思い興味を惹かれました。
職種 | サーバーサイドエンジニア |
---|---|
案件概略 | サーバーサイドのAPI開発 |
スキル要件 | Go言語 |
期間 | 最初の契約は2018年頃、更新を続け、トータルだと2年以上就業中 |
稼働頻度 | 月84~106時間 |
働き方 | リモート |
田中:また週3日の稼働頻度、働き方もリモートで参加できるという点も魅力でした。
少ない稼働時間でもスケジュール通りにプロジェクトを完了
―それでは、当時を振り返って、お顔合わせのご面談のエピソードについてもお伺いできればと思います。
田中:オンラインでご面談された時は、当時、海外にいらっしゃいましたよね?
松藤:そうですね。田中さんたちの書類をFLEXYさんからご紹介いただいたときも海外にいたので、そのままオンラインで海外から面談をしました。
実は当時、僕は生産管理システムのセットアップのためにへ1ヶ月海外出張しており、向こうでAPIのセットアップをするなど、かなり忙しい時期でした。
―日本にいらっしゃらないことも多かったんですね。では、オンボーディングはどのように行いましたか?
松藤:出張もあり開発にあまり携わることができない状態だったのですが、PythonのソースやAPIの構成などをお渡しして開発をしてもらいました。
田中:Pythonのリクエストとレスポンスの形式をいただいて、Swaggerを作ってからGoを作るという感じで進めましたね。
―実際にリモートで実務を進めてみていかがでしたか?
田中:仕様についてあれこれ聞かなくてもPythonのコードを見ればわかる内容だったので、そういう意味ではリモートでもやりやすい仕事だったと思います。
松藤:かなりふわっとした内容の依頼だったにもかかわらずしっかりまとめてくださったので、非常に助かりました。
リプレイス自体にはあまり時間をかけられず4ヶ月ほどで行うスケジュールだったのですが、きっちり期限内に終わらせることもできました。田中さんとFLEXYさんから入っていたもう1名の方はどちらもフルタイムではなく週3日入ってもらう形での開発だったので、スピード感としても非常に速かったと思います。
田中:もう1名の方が積極的にコミュニケーションを取ってくれたので、かなり円滑に進めることができました。
松藤:2名採用したのは、社内にGoの経験者がいない中でも技術的なコンセンサスを取りたいと思っていたからです。相互レビューもできますしね。2人体制がいい感じにプロジェクトとマッチしました。
―ずっとフルリモートで働かれているということですが、コミュニケーションはどのように取っていますか?
松藤:基本的にSlackのチャットベースです。仕様整理などはConfluenceやJiraを用いたチケットベースです。
田中:エンジニアはもともとテキストベースでやり取りをすることが多いので、コミュニケーションに関して難しさを感じたことはありません。
リモートで意識していることがあるとすれば、なるべくオープン・クエスチョンではない形で聞くようにしています。例えば、「こう思っていますが、A案とB案どちらが良いでしょうか?」といったクローズド・クエスチョンでやり取りすることを心がけています。
プロダクトのことを深く理解した頼れるエンジニアとして契約は継続中
―2018年からのご支援なのですでに2年もの間契約していることになりますが、長期の契約となったのはどういった背景があるのでしょうか?
松藤:プロダクト自体が新規事業だったのですが、幸いにも2年以上継続できました。その中で田中さんには大変活躍していただきましたし、すでにチームの中では古株です。何より一緒に働いていて非常にやりやすい方でもあるので、契約も継続させていただいています。
リプレイスにあたってはアーキテクチャの選定から協力してもらったので、2年経った今でもプロダクトの基礎として残っています。
―2年間の支援の中で、何か変化してきたことなどはありますか?
松藤:会社の内部ではいろいろと変化がありましたね。田中さん自身は契約当初からフルリモートの働き方ですが、2年間で会社としてもリモートワークが制度として採用されました。
田中:僕の視点からすると、2018年当時から生産管理システムを扱っていることに変わりはありません。ただ、途中でプロダクトが分割されたことがあり、カウンターパートの方が一時的に変更されるなど人事的な変化はありましたね。
今後のサービスの成長においても業務委託のエンジニアを活用したい
―生産管理システムチームの特徴があれば教えてください。
松藤:まだまだ事業としてはスタートアップ期という要素もあり、技術的に優れたものを追求するというよりは、事業側と一緒にシステムを作り上げていく傾向が強いです。プロダクト愛があったり、服作りや服そのものが好きなメンバーが多いですね。 エンジニア以外のスタッフとのディスカッションを通して開発を進めるケースが頻繁にあるプロダクトなので、人と話すことや物事を整理するのが楽しめる人も多いです。
―今後事業や組織がどう展開していくのか、何かお考えがあればお聞かせください。
松藤:今はある程度事業のスケールポイントがわかってきた段階なので、一気にドライブをかけるべきかどうかを議論中です。もし大きな成長を狙うとなれば開発するプロダクトの種類は増えていきますし、それに伴って人を増やす際は、ぜひまたFLEXYさんにご協力いただきたいです。
企画/編集:FLEXY編集部