VOICES

"より高く飛ぶ"ために、攻めのシステム運用へ

井上 真吾 様

QAITチーム リーダー / Hamee株式会社

略歴
新卒エンジニアとしてHamee株式会社に入社。Webアプリケーションの企画・開発・保守や、新人研修やハッカソンのメンターなどの教育、ライブラリの開発・自動テストおよびCI導入などの業務改善を経て、品質向上と自動化を行うQAITチームのリーダーに就任。

会社紹介
創業時期より運営してきた自社Eコマースサイトの知見を活かし、国内No.1シェアであるECバックヤードプラットフォーム「ネクストエンジン」の開発・提供を行っています。私たちは、国内外において活発な成長を続けるEC業界において、“EC運営の自動化”を目指し進化を続けています。

Hamee株式会社 / ネクストエンジン

ムロドーのラボ型開発サービス利用の背景

弊社で開発しているEコマース一元管理ツールのネクストエンジンですが、一番最初の提供開始から数えて8年ほどが経過しています。やはりこれくらい時間が経ってくると、システムを構成する技術要素やコードの多くがレガシーなものになってきているということ、また、成長期のベンチャー企業にありがちですが、担当するエンジニアも変わっていく中で、開発スピード向上とのトレードオフでドキュメントベースの引継ぎが十分に行われていなかったこと、結果システム開発・運用における生産性がなかなか上がりにくくなってきているという課題がありました。

おかげ様でネクストエンジンは、同様のサービスの中でもかなりのシェアを占める状態になってきており、現状のシステムのより安全な運用を目指すために、加えて私たちのサービスが、さらに成長していくためにも、既存のコードにしっかりと手を入れて改善を行っていく必要がやはりあったのです。目の前の手当だけであれば、社内のエンジニアを一時的に総動員してやっつけることもできましたが、それだと根本的な課題解決にはならないので、今回専門のチームを立ち上げて本格的に体制を作って品質改善に取り組んでいこうという意思決定となりました。「守りのシステム運用から攻めのシステム運用に転じる」ことを会社として決めたのです。

なぜムロドーを選んだか

現状稼働中であり、かつすでに巨大な規模である既存システムを全面的に見直すことは、容易なことではありません。まずすべてのコードに対してユニットテストを導入するところから始めることにしたのですが、作業量も膨大であり、社内ではすぐに専属のエンジニアチームをアサインすることが困難な状況でした。当初は私一人で取り組み始めたのですが、他に新機能の開発業務を並行していたこともあり、仕組みだけはなんとか整備したものの、以降の作業はとても片手間でできる内容ではありませんでした。そんなわけで人員的な課題を解決できずに困っていたところ、ある日かかってきた一本の営業電話がムロドーさんと出会うきっかけになりました。

実はそれまでにも、社内外の友人・知人からオフショア開発に関する経験談を色々聞いてはいたのですが、そのほとんどが「失敗談」でした。ムロドーの下浦さんが初めて来社された時に驚いたのは、オフショア開発について、かなりリスクや悪い点ばかりを強調されていたことです。ただ、単にネガティブな情報を言うだけではなく、最初にすべて正直かつ率直に情報公開した上で、それらの「リスク要因」に対する対策・取り組みをきっちりご説明いただいたので、結果それらは不安要素にはならず、逆に信頼が深まりました。

ムロドーさんの話を聞いていく中で、非常に手厚いフォローをいただいたこともあり、徐々にオフショア開発に対する不安要素が取り除かれていきました。コスト面、実績面、そして何より日越両面からの真摯なフォロー体制が、ムロドーさんに決めたポイントでした。

サービス導入にあたって

元々品質改善プロジェクトに関わっていた私がプロジェクトの専属責任者となって、体制を作っていくことになりました。先ほどお話した通り、当時の現状として、元々ドキュメントも整備されていない状態だったものですから、ムロドーさんのアドバイスに従って、必要なドキュメントの整備から始めました。事前の心構えとしては、これもムロドーさんからアドバイスいただいたことなのですが、「日本人同士で働いている時の感覚・常識」をまず一切捨てて、本当にゼロベースであらゆることを考えることに努めました。契約開始前にムロドーさんからオフショア開発開始のためのガイドライン的な資料をいただいていたので、そこにあることをとにかく意識して実行しました。

さらに、新しい開発チームが海の向こうにできるわけですから、無用な混乱をなるべく避けるために、それまで複雑化していた社内の開発環境等を、この機会に整備したりしました。資料作り含め、最初は結構大変でしたが、逆にそれまで整理されていなかったものに手を付ける良い機会にもなりましたね。

キックオフのタイミングでベトナムに行き、チームと対面しました。そもそも私自身は海外経験がほとんどない人間で、飛行機に乗るのも久しぶりという状況で、当然最初は緊張もありましたが、現地でチームメンバーと対面するとすぐに打ち解けることができました。元々自分で考えていたこととして「コミュニケーター(通翻訳者)と親しくなる」というミッションがありました。ムロドーさんのラボ開発体制においては、エンジニアに言語能力を求めていないことから、ある意味コミュニケーターが重要な要素となります。従って、エンジニアと心を通わせるためには、まずコミュニケーターと心を通わせることが必須だと思ったのです。結果これは大正解でした。滞在中は、仕事の合間や食事の時間を通して、かなりの時間、コミュニケーターの方と話をすることができました。技術面の通訳、また単なる雑談を通して、ムロドーのコミュニケーターの驚くべきレベルの高さに信頼を深めるともに、その人それぞれが持つ「話し方のクセ」や「考え方の特徴」のようなものを自分自身で把握できたことが、その後のスムースなコミュニケーションにつながったと感じています。

印象的なエピソードや苦労

まずムロドーのベトナム人技術者に対する印象ですが、想定していたよりもずっと技術レベルが高くて驚きました。話をしても、様々な技術的会話、例えば設計レベルの議論ができるメンバーだと感じています。当社のプロジェクトにおいては、二週間のスプリントごとに定例のビデオ会議を実施しているのですが、日本の「お疲れ様ですー」から始まる感じとは異なり、場のノリが非常に陽気でこちらの気持ちも自然に乗せられます。私としても、ビデオ会議の日をいつも非常に楽しみにしています。

苦労は実はあまりないのですが、強いて言うなら、ごくたまにどうやって説明すれば良いか分からない事象・用語が出てくる時があり、その時は双方でひたすら言葉や表現を費やして意思疎通しています。ただ、どうしてもリモートで解決しにくい問題や時間がかかりそうなコミュニケーションに関しては、遠慮せずベトナム側GMの近藤さんに頼り切っています。その都度非常に丁寧なフォローをいただき、私たちも全幅の信頼を置いています。

そういうわけで、オフショア開発に関する本質的な課題や苦労という意味では、本当に、ほぼ感じたことはないです。これはお世辞ではなく、率直な実感ですね。

ベトナムオフショア開発の印象

チームが立ち上がるスピードに関しては、チームを組成して最初の二週間で双方慣れない中で議論を重ね、一つ一つの手法を定め、次の二週間でそれを実践するといった流れで、一ヶ月もすれば問題のないアウトプットレベルに達していたという印象です。非常に速いと感じました。実はムロドーさんは契約期間の単位が三ヶ月と比較的短いので、最初は「とりあえず三ヶ月やってみて、駄目だったら他社に変えればいい」と思っていたのですが(笑)、一ヶ月目が終わる頃にはそんなことはすっかり忘れていましたね。

ベトナムメンバー個々人の成長に関しても、非常に強く実感しています。まず、アウトプットの物理的な量が、開始から3ヶ月で3倍になりました。ネクストエンジンというサービスとシステム自体に対する理解も深まっていますし、何よりユニットテストについてのノウハウがどんどん溜まってきています。一人のエンジニアが直面した課題については、チーム内で速やかに共有されているので、新しい学びはそのままチーム力の底上げにつながっています。最終的なレビューは私の方でやっているのですが、日を追うごとに明らかに品質が向上しているのを感じます。うちのチームに関して言えば、メンバー同士が細かく技術情報を共有しながらそれぞれが互いに高め合う体制を作れていると思いますね。

あえて日本人エンジニアと比較するなら、中堅層と同等のレベルにはあると思います。また、日本だと高スキルなエンジニアは気難しい人である場合も多いですが、ベトナム人エンジニアはみんな明るく素直で、そういった意味ではより仕事がしやすいと感じることもありますね。

オフショア開発に携わってみて

まず、私個人にとって、極めて貴重な経験になっています。実は私はHameeに新卒入社してまだ3年目の若手的立場なのですが、それまで日本でいちメンバーとして働いていた身から、今回のオフショアチームに関わることでマネジメントの経験を積むことができている、ということがあります。そのことだけでも十分チャレンジングなのですが、遠く離れた場所のチームを管理するリモート開発、また他文化他言語の人材と一緒に働くグローバル開発、という環境でチーム管理・プロジェクトマネジメントがやれる現状は、かけがえのない経験として自分を成長させてくれていると感じます。

会社にとっての意義としては、それまで社内において「オフショア開発」に対して良いイメージはあまりなかったように思います。今回始めるにあたっても「オフショア、大丈夫か?」といった声も少なからずありました。ムロドーさんとご一緒させていただき、これまでのところ、非常に順調に進んでいます。今後もさらに成果を積み上げていくことで、オフショア活用に対して社内の先入観に一石を投じる形になれば何よりだと思っています。また、ベトナムチームをマネジメントするための手法について、上手くいっているものに関して逆に日本側のチームにフィードバックしていく、といった相互作用も今後は期待できると思います。

チーム運営で気をつけていること

まず、きちんと信頼関係を築くこと。双方に信頼関係がないと、やはりプロジェクトに対するコミットメントも薄くなってしまいます。これは国籍や人種に限らず、ですが、オフショア開発の場合、離れていて日々の姿が見えにくいからこそ、より相手を信頼し、こちらも信頼される関係が重要になってきます。

次に、信頼の部分と矛盾するようですが、仕事になるべく属人性を持たせないような環境・フローを構築することを心がけています。ある部分ではあえて属人性に寄せた方が良い場合もあるのは確かですが、基本的には可能な部分はルーティン化する、ワークフロー化する、ドキュメントに残す等、個別の作業からできるだけ属人性を排除することは、品質の平準化にもつながりますし、オフショアで一般的に問題になりがちな「スタッフの退職」に対するリスクヘッジにもなります。

ムロドーのラボ型開発の良い部分、改善して欲しい部分

まず圧倒的に良い部分は「恐ろしく速く正確な翻訳」です。普段の細かいやり取りはSkypeチャットで行っているのですが、レスポンススピードと精度がこれまで見たことないくらいのレベルです。これには本当に驚きました。たまにこちら側でも、翻訳されたベトナム語を抜き打ちでGoogle翻訳にかけてチェックしたりしてるのですが、ほとんどの場合、ニュアンスまで含めてきちんと訳されてます。この部分は、他社さんに較べても圧倒的にムロドーさんのストロングポイントだと思います。

他には、これまで間接的に経験してきたオフショア開発ですと、発注主と受注側という関係が必要以上に出来上がってしまっていて「発注側が言ったことに従うだけ。言わないとやらない」という部分があったように思います。そしてそれがオフショア開発失敗の大きな要因になっていたんじゃないかと。ムロドーさんの特徴は、とにかく細かく頻繁なコミュニケーションを重視し、それによる信頼関係構築に尽力されている部分だと思います。これにより、例えばトラブルがあったとしても、すぐに相談・共有がなされるので、大炎上につながりにくい。細かく軌道修正ができるのが成功要因だと思います。そういった関係性のためには、先ほども述べましたが、とにかく相互信頼が大切です。なにかあった時にためらわず相談・報告してもらえる関係を作れたことが良かったです。ベトナム法人代表の根本さん、近藤さんや下浦さんを始めとする日本人スタッフの方から細やかに、かつ包み隠さず随時色んなアドバイスや報告をいただけるのも大きいですね。ちなみに、日本人の方のレスポンススピードも速いです。

改善して欲しいポイントは、本当にないんですよね(笑)。

ムロドーさんのラボ型開発は他社さんにも自信を持っておすすめできます。日本人の中堅どころと変わらない技術力のエンジニアを、1/2-1/3程度のコストで確保できるわけですから、逆にオフショアだからこそ色んな攻め方ができるとも言えます。特に、足元の保守・運用系作業に手を取られてなかなか新しいチャレンジのためのリソースが足りないケースには、ぴったりフィットするサービスだと思います。バリバリのスタートアップの開発というよりは、スタートアップから一段階ステージが上がって、さらに高くジャンプしようとしているフェーズの会社に特にオススメしたいです。

今後の展望

現状はユニットテストを書いてもらっていますが、これを続けることで、ある意味ベトナムチームはネクストエンジンというシステムに対する理解がコードレベルで深まっていくことになります。近々チーム人員を倍に増強する予定ですが、今後テストだけでなく、新機能開発等も任せていきたいと思っており、現状の業務はある意味その布石にもなっているわけです。テスト業務で得た十分なシステム理解を持って開発に当たることができますので、その分リスクも軽減されていくだろう、ということですね。