こんにちは。GMOリサーチ技術広報のちはっぴーです!
今日は、2021新卒メンバーのシカさん(※シカさんのインタビュー記事:https://www.wantedly.com/companies/gmo-research/post_articles/327044)が初めて参加した機能リニューアルのプロジェクトについて、同プロジェクトメンバーの中村さん、エイシアさん、シカさんの3名にお話を伺って参りました。
日本語スピーカーと英語スピーカーが入り混じったプロジェクトならではの苦労があったはずですが、その状況を一体どのように乗り越えたのでしょうか。また、今回のプロジェクトではReact でのモダンなフロントエンド実装にも初挑戦しています。
更に聞くところによると、シカさんは初のプロジェクト参加ながらあるポイントで大活躍されたそう・・・?
それでは、そんなトピック盛り沢山のプロジェクトを振り返っていきます!
<インタビュアー>
益山(右上):GMOリサーチ株式会社システム部所属。技術広報もうすぐ3年目、通称ちはっぴー!主な仕事内容は、開発ブログの運営やSNSの更新、インタビュー記事の執筆など。鹿児島県霧島市出身。最近炊いたお米がすぐになくなるので怖い(すべて自分が食べています)。
<インタビュイー>
中村(左下):2019年入社。Market Observerの運用・開発を行っています。東京都出身。最近感動したことは、レンタカーで借りた車についていたPボタン(狙いを定めた駐車スペースに車を入れてくれる)。
エイシア(左上):2019年入社。主にMarket Observerの運用・開発(フロント&バックエンド)を行っています。 フィリピンと日本のハーフで、今は日本在住ですがほとんどフィリピンで育ちました。休日は、多文化共生のボランティア活動を行っており、写真撮影などのアート関連の活動で貢献しています。タイ料理、韓国料理(辛いもの)が大好きです。
シカ(右下):2020年9月入社。インド出身、IIT Goa校でCSとエンジニアリングを専攻。現在はグローバルシステム本部所属の開発エンジニアでインドからリモートワーク中。趣味は読書で、様々なジャンルの本を読みます。また、FRIENDS、How I met your mother、BROOKLYN nine nine、SUITSなどのテレビシリーズを見るのも好きです。好きなアニメは「ハイキュー」や「DR.STONE」で次のシーズンにも期待大!脳を鍛えるために、数独やワードスクランブルをしたり、LeetCode のプログラミング問題を毎日解いたりしています。
プロジェクトの概要と、3名それぞれの役割は?
--皆さん、今日はお忙しい中ありがとうございます!早速ですが、今回のプロジェクトの概要を教えていただいてもよろしいでしょうか・・?
中村:はい。実は今GMOリサーチでは、Market Observer(以下、MO)という自社で提供しているアンケート配信プラットフォームの画面や機能のリニューアルを図っています。その中の一つとして、今回僕たちが参加した「回収可否(※社内用語)リニューアルプロジェクト」がありました。
この 「回収可否」というのはアンケート配信に欠かせない機能で、ある特定の条件–––例えば「東京都在住の40代男性で、職業が医者の方」を対象にアンケートを配信した場合、何名の回答データを得られるかを予測できる機能のことです。外向けには「feasibility check(アンケート回答者数予測システム)」と呼ばれています。
今回はこの機能を更に使いやすく改善すること、そしてReact でのモダンなWEBフロント構築をゴールにプロジェクトを進めました。
(回収可否画面。左:before、右:after)
--その中で、みなさんはどのような役割だったのでしょうか?
中村:プロジェクトメンバーはマネージャーも含めると全部で9名でした。僕はコーディングはほとんどしていなくて、要件の確認をしたり、誰にどのタスクをお願いするかを考えたり、スケジュール管理をしたりしていました。
エイシア:私はフロントエンドとバックエンドの両方をやりました。バックエンドではAPI関連のことをやって、フロントエンドとの接続を可能にする実装、フロントエンドではReact を用いて回収履歴が表示される画面の開発を担当しました。
シカ:私はバックエンドを担当していて、主にAPI関連のことをCakePHP で実装していました。始めの方に担当したいくつかのAPIは、同期入社のロヒートさんと2人でペアプログラミングをしながら実装して、その後は一人でやりました。
新しく触る言語Reactへの挑戦や、初のプロジェクト参加で大変だったことは?
--エイシアさんは、今回のプロジェクトで初めてReact を使った実装を行ったと思いますが、 実際にやってみてどうでしたか!?
エイシア:う〜ん、やっぱり新しいプログラムを新しい言語で書くのは大変でした(笑)最初に数日間勉強の時間をもらってから実装に取りかかったのですが、React を使うと状態管理のためのフレームワークであるRedux も同時に使う必要があるので、そのやり方を覚えるのも難しかった。最終的には楽しかったですけど!
中村:でも、エイシアさんはReact をだいぶマスターしましたよね。まだアーキテクチャ設計は誰かにやってもらう必要があると思うけど、中身の実装はかなりできるようになったんじゃないですか?
エイシア:NO!マスターはしてないよ!(笑)PHP とReact の接続はまだちょっと難しくて・・React とRedux ならいけると思います。今回は同じくReact に初挑戦しながらアーキテクチャ設計も担当していた丸尾さんや、フロントエンドでテックリード的な役割をしてくれている本間さんにかなり助けてもらいました。
--新しい言語への挑戦、すごくチャレンジングなことだと思います。本当にお疲れ様でした・・!シカさんは、プロジェクトを進める中で何かつまづいたことなどありませんでしたか?
シカ:私がこのプロジェクトで1番苦戦したのは、PHP でJava のAPI を呼び出すことです。ユニットテストではAPIをモックしていただけだったので実際のパラメータをテストすることはできませんでした。
そして、自分たちが書いたコードが正しく動作するかを確認するためには、結合テストまで待たなければいけませんでした。
そのため、結合テストでは、パラメータが原因でAPIに問題が発生することもあって・・と、中々苦戦していました。
中村:うんうん。シカさんには、何度もAPI の修正に対応してもらいましたね。
『シカさんがいなかったら出来なかったかもしれない』機能とは?
中村:あの、口を挟むようで申し訳ないのですが、実は今回、シカさんがいなかったらある1つの機能は実現しなかったかもしれないと思っているんです。
--え!?その話、詳しく教えてください!!
中村:今回のプロジェクトは基本的にバックエンドをCakePHP3 で実装していたんですけど、そこからデータベースに直接アクセスするものもあれば、別のJava でできている既存のAPIを呼ぶってこともやっていて。
そのAPI 周りのことをシカさんはやってくれていたのですが、彼女の持つ数学の知識にかなり助けられたんです。
--数学の知識・・ですか?
中村:そうです。数学っていうか、もっと具体的にいうと確率統計の知識でしょうか?先ほど少しお話しした「feasibility check(アンケート回答者数予測システム)」の追加機能でかなり複雑な確率統計の知識が必要になって。計算式どうしようって考えていたところ、新卒のシカさんとロヒートさんに聞いてみたらものの1分くらいで答えが返ってきてびっくりしました(笑)さすがインド工科大学卒だなあと。
--なるほど・・!さすがすぎます。
国内外のメンバーが入り混じったプロジェクトはどうやって進めた?
--今回は日本語メンバーと英語メンバーが入り混じったプロジェクトになったと思うのですが、そういった点で苦労したことや、何か工夫していたことはありましたか?
シカ:ほとんどのAPI 定義書は日本語でしか準備されてなかったので、そこは結構大変でした。Google翻訳もあんまり役に立たなくて・・。なので、中村さんとエイシアさんにはすごく助けてもらいました。
中村:今回のプロジェクトには運よく英語の得意なメンバーが多かったのですが、それでもどうしてもロスは生まれてしまいましたね・・。ドキュメントも2カ国語で整備してみたけど、2つ作ると両方メンテする必要があるし、正直何が正解なのかはまだわかってないです。みんなにも今後意見を聞いて進めていけたらいいですね。
コミュニケーションをよくとって、わかりやすい図を書いて説明するとか、そういったことで都度都度工夫していくしかないんだろうなと現時点では思います。
シカ:私は英語を喋れるメンバーとしか交流がなかったので、コミュニケーション面において特に問題に直面したっていう認識はなかったです!あ、でも、チーム MTGはどうしても日本語のやりとりが多くて、ほとんど理解できませんでした。
中村:やっぱり僕たちが日本語で喋ってる時って孤独を感じてましたか・・?
シカ:うーん、時々は。でも、理解できないときはエイシアさんにチャットして色々教えてもらっていました!通訳的な役割としてMTGに参加してもらったり、個人的にもチャットして色々教えてもらったり、エイシアさんには本当に助けてもらいました。
--なるほど。エイシアさんがチームのすごく良い橋渡し役になってたんですね・・!こういう状況だとやっぱり、日本語と英語の両方をほぼ完璧に理解できるメンバーが最低1人は必要そうですね。
プロジェクトを進める上で、上手くいったと感じたことは?
--なんだか大変だったことばかり聞いてしまいましたが、逆に上手くいったなと感じることはありましたか??
エイシア:さっきシカさんもコメントしてくれたのですが、チームメンバーをコネクトする役割ができて楽しかったです。通訳的な役割上、チームのみんなが私に色んなことを聞いてきたので、そこから私も新たな知識を吸収することができました!
中村:本当に助かりました。僕は、エイシアさんと丸尾さんがReact に初挑戦して、無事書けるようになったのがすごくよかったんじゃないかなと思います。
それと、問題発生時のみんなのチームワークもすごくよかったです。もちろん原因究明や再発防止には努めなければいけませんが、犯人探しみたいな流れには全くならなくて。逆にみんな「僕の責任かも・・」みたいな雰囲気でした。大変だったけど、みんなで協力して乗り越えることができたのは素晴らしかったなと思います。
--みんなすごく自責思考!(笑)これまで色んなメンバーにインタビューしてきましたが、確かに皆さんから助け合いの精神を感じます。シカさんは初めてのプロジェクト参加、どう感じましたか?
シカ:プロジェクト参加で1番楽しかったのは、常に大量にタスクがあったことです(笑)私は新卒なので、普段は、都度新しいタスクを振ってもらうんですけど、プロジェクトに入ると連続してタスクが割り振られている状態なので楽しかった。すごく長いタスクもあったけど、自分のプログラミングスキルを試すテストのようなものだと思って取り組めました。
中村:プロジェクト、楽しかったみたいでよかった・・。せっかくだから、よければ新卒でGMOリサーチに入社してみての感想も聞いてみたいです!
シカ:可能な限りこの会社を離れたくないなと感じています。私がミスをしても、上司や先輩は決して怒らず、常にすごく親切で丁寧に接してくれます。ロヒートさんも同じことを言ってましたが、中村さんはすごく親切で我慢強い人です。
会社のために働くんじゃなくて自分でビジネスを持つべきだ、そうでないと会社の奴隷と同じじゃないかっていう人もいますが、私はそうは思いませんし、この会社に入ってよかったなとすごく感じています。ストレスを感じたことが一度もないです。
中村:ああ、よかったです・・。早く日本に来てほしい!早く対面で会いたいです。
これから、どんな人と一緒に働きたい?
--最後に、これからどんな人と一緒に働いてみたいか教えてください。
中村:僕は多様なバックグラウンドの人と働いてみたいです。
シカ:自分には無い新しい観点でのフィードバックをくれる人と一緒に働きたいです。人生の目的は常に学び続けることだと思っているので、自分と全く異なるスキルセットを持つ人と働くことで、お互いから何かを学ぶことができればいいなと思います。
エイシア:私は、人との効果的な関わり方を知っていて、何かを教わる姿勢が備わっている人が良いですね。人にはそれぞれ個性があって、全員が同じように仕事をしたり、勉強したりすることはまずあり得ません。特にGMOリサーチは様々な国からメンバーが集まっているので、母国語も背景にある文化も違います。どうしたら気持ちよく働けるかな?と想像力を働かせることのできる人と一緒に働けたら嬉しいです!
--私自身、個人のモチベーション、そしてチームワーク次第でかなり生産性が変わるのを実感しています。心理的安全性にも繋がってくると思うので、気持ちよく働けるのは本当に大事!
それではみなさん、ありがとうございました〜!!