見出し画像

ハノイ探訪とオフショア開発のイメージが払拭してしまった話

今週の前半は仕事で、ベトナムはハノイに訪れていました。私にとっては2度目のハノイ。

ベトナムの人口は1億人に近く、圧倒的に若い人が多くて、平均年齢が31歳、経済成長を続けている国です。訪れてみて気付くのは圧倒的に若くて元気な人たちが多い。

画像1

街の様子も、まだまだ古い町並みが残っている一方で、巨大なビルが幾つも建造されていたりして、今まさに発展中といったところです。交通網として鉄道や地下鉄が整備されていないこともあり、道路は車やバイクが溢れかえっています。

画像15

特にバイク。二人乗りは当たり前。荷物を大量に載せたりして、しかも一列に走るようなお行儀の良さはなく、ワラワラと道路を走るし、クラクションはバンバン鳴らすし、大きな通り以外は信号はないので、とても危険です。人は、その合間をスッと通り抜けていくしかありません。

その時代を経験したことはないですが、昭和にあった東京オリンピック前後の日本はこんな感じだったのかなぁ、とイメージしました。日本の人口構造とは真逆で、これからも若い人たちが増えていく社会は、どこか楽天的で、どこかノンビリしていて、それでいて活気に溢れているのは、成長する希望があるからでしょうか。なんとなく日本にいるより元気になれます。

画像16

前回にハノイにきたのは3月頃。すごく空気が汚れていたと覚えていますが、今回は乾季に訪れたからか天気もよく空気もクリアでした。

***

今回、訪問したのは社外取締役をさせてもらっているクラシコムのスマホアプリの開発をお願いしている株式会社Sun Asteriskとの打ち合わせが目的です。ちょうど「北欧、暮らしの道具店」のiOSアプリがリリースできたタイミングでもあったので、現地スタッフとの打ち上げも兼ねて。

クラシコムにはエンジニアの社員たちがいて、ECを中心としたサービスでは珍しいと思いますがソフトウェアの内製を行っています。創業当初は、ASPサービスを使って事業をしていましたが、途中から自社でソフトウェアを内製して提供する形にシフトしてきました。

とはいえ、エンジニアの社員が増えてきたのはここ数年のことで、エンジニアが増えてチームになって、開発プロセスが求められるタイミングもあった時期に、私が社外取締役として参画させてもらうことになりました。その辺りについては、こちらの記事を。

そんなソフトウェア開発チームが、今回のアプリ開発に立ち向かった理由などは、開発チームの主要メンバーである二人にインタビューした記事を。

ソフトウェアを内製している会社で、アプリ開発をするのは結構、大変なことです。エンジニアがいるからといっても、簡単にはいきません。まず使っているテクノロジーが違います。ウェブのサービスを開発するのと、スマホのアプリを作るのは、求められるノウハウが異なるのです。

また、ウェブのサービスは継続的に改善していくことが求められます。ウェブでサービスを提供するソフトウェアの場合"Point of use"という考え方ですが、利用者が使う時点を最高品質にしようというものです。そのため、エンジニアリソースは継続的に必要になります。

なので、アプリを開発するとなると、新しく開発者のパワーが必要になります。また、アプリというのは単体で機能できないため、サーバ側のAPIが必要になります。アプリ用のAPIも新しく開発しなければなりません。内製チームという限られたメンバーだけでは厳しいものがあります。

ちなみに、こうしたことは世界中で起きており、この先もソフトウェアは増え続けるので、どこでもソフトウェアエンジニアは常に不足しています。もちろんクラシコムでもエンジニア募集しています。

***

そこで今回は、株式会社Sun Asteriskのハノイオフィスにアプリ開発をお願いすることにしました。Sun Asteriskは、小林泰平さんが2012年に創業した会社で、以前の社名はフランジアでした。ベトナムの大学とも提携して、若いエンジニアを1500名以上も抱えている勢いのあるベンチャーです。ちょうど先日、資金調達もされました。

ベトナムの会社に開発を委託するというと「オフショア開発」という言葉がイメージされます。いくら若くて優秀なエンジニアたちがいると言っても、「オフショア開発」というものに対して、私個人はあまり良いイメージはありませんでした。

それも、前職のシステムインテグレータにいた頃は、国内では設計とマネジメントだけして、海外の安いマンパワーを使って実装するというイメージがあるからです。しかし、今回のSun Asteriskとの共同開発は、いい意味でベトナムの会社で開発することのイメージを覆してくれました。

まず開発の役割分担として、サーバサイドをクラシコムの内製チームが行い、アプリの実装は完全にSun Asteriskのチームに任せるようにしています。開発プロセスとしては、事前に要件定義をして依頼するという形ではなく、大きなロードマップは決めてあるものの詳細については、毎週の定例ミーティングを行って、少しずつ実装していく形にしました。

既存のウェブのソフトウェアがあり、データもサーバ側で保存されているので、APIをソフトウェア境界にして設計しました。もちろん、ユーザインタフェース(UI)についてはクラシコム側で設計をしますので、UIとAPIを決めて実装部分は任せました。一方、サーバ側の開発はクラシコムの内製チームで実装を行っています。

SIerの頃のオフショア開発と違って、Slackを使ってコミュニケーションするのでタイムラグなくやりとりができたり、Zoomの定例ミーティングも慣れているので、困ることはありません。オフショア開発というよりも、リモートワークに近いスタイルです。

いい意味で期待以上だったのが、その開発スピードです。iOSのシニアエンジニアの方の経験値が豊富で、週毎に出てくる生産量が想定以上でした。品質についても、QAのメンバーがアサインされるので、実装レベルでの品質確保は問題ありません。もちろん、多少の行き違いや手戻りもありますし、開発を進める上での技術的な問題も出てきますが、そこは協力しあって取り組んでいくことができました。

***

今回ふりかえってみると、ある程度うまくいけるような取り組みで良かったと分析できるポイントは3点あります。

1つ目は、プロジェクトのキックオフで、クラシコムの開発メンバーと現地メンバーで懇親会をしたこと。キックオフミーティングのために行ったものの、ミーティング自体はそれほど盛り上がらずにどうなるか、と心配しましたが、お酒の場では非常に盛り上がりました。

メンバーの平均年齢が非常に若いからか、ベトナムのカルチャーなのかわからないけれど、原始的ではありますが、一緒にお酒を酌み交わす機会があることで、互いの心理的距離が縮めることができたのです。リモートワークの時代ですが、一度は会うというよりも、一度は一緒に食事をするという行為が重要なのかもしれません。

2つ目。UIとAPIというインプット・アウトプットを明確にして、それぞれの責任範囲を明確にしたこと。現地の開発メンバーでの仕事の進め方や、タスクの割り振りなど細かいことはチェックをせずに、あくまで外部からの仕様を満たしているかだけを確認しました。ソースコードの保守性などの内的品質は任せてしまいました。

プロジェクトを始める前は、準委任契約なので、クラシコムの開発メンバーに混ざってワンチームでやっていく形も想定していましたが、現地メンバーと会って、彼らの仕事の進め方やコミュニケーションのハードルなどを知ることで、領分をしっかり規定することに方針転換をしました。

3つ目は、その責任分担をした上で、毎週の定例ミーティングで動くものを作りながら進めていくというスタイルにしたこと。いわゆるアジャイル開発です。ベトナムという離れた場所でコミュニケーションにも課題がある相手との開発の進め方としては、実際に動くアプリケーションを毎週バージョンアップする形で進めていく形が適していました。

実際に動くアプリがあると、使いやすいUIにするための議論が空中戦で終わることがありません。最終的にはUI設計に落とし込むし、実装に必要なAPIを用意することになるし、それがあればアプリ開発は進みます。動くアプリを拠り所にすすめていくことが出来ました。これは、ソニックガーデンの提唱する「納品のない受託開発」に似た進め方です。

***

このようにすることで、リリース直前に仕様との齟齬が発見してトラブルになったりすることもなく、品質の問題でリリースができなくなったりすることもありませんでした。

すっかりオフショア開発のイメージが覆されました。単純に開発リソースをアウトソーシングしたというものではなく、共同開発をしているようなものでした。

このアジャイル開発に近いスタイルで大変なのは、仕様を決める発注側、今回でいえばクラシコムの開発チームの方です。丸投げできる訳ではないし、ベトナム現地メンバーの生産性が高いため、それに合わせて仕様を次々と決めて動作確認をしていかないといけないからです。

そうして毎週の定例で進めていくときにボトルネックは発注側になりがちですが、そこはクラシコムの開発メンバーが頑張ることでバランスはとれました。繰り返しミーティングを重ねながら一緒に仕事をしたことで、ベトナムのチームに対するリスペクトが産まれたことも、プロジェクトがうまくいったポイントだと思います。

そうしてiOSアプリのリリースをすることができたので、今回2回めのハノイでは、現地メンバーとの打ち上げを行ってきたのです。

その打ち上げの中で、Sun Asteriskのユニットマネージャーとも話をする機会がありましたが彼の言っていた言葉で印象的だったのは「私たちはお客さまのことを、お客さまというよりもお友達だと思っています」。これは単なる受発注の関係ではなく、パートナーでありたいと思ってくれるということで、それは開発を依頼する側にとっても実はありがたいことなのです。

今回のハノイ訪問で、それまでの「オフショア開発」のイメージは完全に覆されたというわけです。

***

この記事はここで完結してます。ここまでの内容で良かったら、スキとかシェアしてくれると嬉しいです。

ここから先の有料部分では、私の個人的な日記や、最近読んだ本や消費したコンテンツ、頂いた質問への回答などを書いています。

ちなみに、月800円の『ソフトウェアと経営の交差点』マガジン購読者になると、週1度程度で更新される記事の有料部分が毎回読めたり、その他の記事も全て読めて、随分お得です。

11/1〜3の2泊3日の弾丸ハノイ訪問

今回はベトナムのハノイへ2泊3日という短い期間、どう過ごしたのか、次回のハノイ訪問のためにメモ代わりに残しておきます。通信環境とSIM、宿泊ホテル、Grabでの移動についてなど、ハノイ出張の方に参考になると思います。

ここから先は

3,881字 / 19画像

¥ 500

良かった!参考になった!と思ったらサポートして頂けると嬉しいです。他のnoteユーザへのサポートに使いたいと思います。