Regional Scrum Gathering Tokyo 2021 で「モダンオフショア開発のすすめ」という登壇してきた

2021.01.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは、グローバルチーム担当兼アジャイルコーチの藤村です。2021年1月6日〜8日に開催されたRegional Scrum Gathering Tokyo 2021で、「モダンオフショア開発のすすめ」という登壇をしてきました。

登壇資料

私の登壇資料はこちらです。

登壇内容ダイジェスト

はじめに

私自身、アジャイルとオフショアというテーマに2014年ぐらいから取り組んでおり、RSGT2015では「開発モデルの作り方」というタイトルでベトナムオフショア開発でのアジャイル開発プロセスについて、RSGT2016では「フィリピンのスタートアップにスクラムを導入しようとしてみたお話」というタイトルで登壇してました。RSGTでの登壇は、去年のしくじり先生も加えて今回で4回目。たまには褒められたい…。

これは『MY JOB WENT TO INDIA』という書籍からの引用ですが、悲壮感が漂ってますね。著者はこのような状況の中で、ソフトウェア開発者が生き残るためにはどうしたら良いのかについて、書籍の中で提案してくれています。

上記引用から、私自身は以下の2つの能力が今後ソフトウェア開発者が生き残っていく上で必要な能力だと考えました。

  • オフショアを機能させる能力
  • オフショアの開発チームを指導できる能力

これらの能力を身に付けて、今後はオフショアと競争するのではなく、共創していこう!というのが、今回の登壇で私が皆さんにお伝えしたいことです。

モダンオフショア開発とは

タイトルにもなっている"モダンオフショア"の定義です。今まではレガシーなオフショアとの違いをより明確にするためにコストメリットについては訴求してこなかったのですが、コストメリットは現実的なアドバンテージになっていることを踏まえて、低コスト、動員力も引き続きオフショアのメリットとして考えるようになりました。

モダンオフショア実践状況

続いて、私が所属するグローバルチームの2020年のサマリーです。一番大きなトピックとしては、新型コロナウイルスの影響でベトナムへの渡航回数、滞在日数が大幅に減ってしまったことです。

結果として新型コロナウイルスの影響はほとんどありませんでしたが、それは過去の信頼貯金を切り崩しているに過ぎないので、今後も気軽に海外渡航ができない状況が続くのであれば、改めて対応を考えていかなければならないと思います。

続いて2つの事例についてお話ししました。

モダンオフショア共創事例

高品質実現事例

1つ目の高品質実現事例のチーム体制は、この図のようにクライアントのPOを含めた大きなスクラムチームβと、そこに内包されるベトナム側で閉じたスクラムチームαのような体制になっています。

2つのスクラムチームの同期をとるために、スプリントプランニングとレトロスペクティブをそれぞれ2部制にするなどの工夫をしています。

品質管理については、"QA(Quality Assurance) to AQ(Agile Quality)"のパターンを(結果的に)実践しています。 ※赤枠が特に実践しているパターン

"QAを含むOneチーム"パターンとして、スクラムチーム内にQCメンバーがガッツリ入って活動しています。QCチームの詳細な活動内容やメトリクスについては、スライドを参照ください。

QCメンバーとともに肝になっているのがPPO(代理プロダクトオーナー)です。オフショアの経験がある人からしてみたら、BSE(ブリッジSE)と何が違うのかって思う方もいるかもしれません。私自身の考えとしては、BSEは分断を生じさせ、PPOは共創を促すと考えています。

BSEはSEということで、技術スキルが高い日本語話者のベトナム人が担当することが多いと思いますが、技術スキルがあるがために、POのWHYをHOWに変換してしまいがちです。そのため、実際に実装を行うベトナム側のエンジニアには、なぜその機能が欲しいのかというPOの想いが失われてしまい、ただただ言われるがままの方法で機能を実装することになってしまいます。

一方でPPOは、その名称通りPOの代理のため、WHYをそのままベトナム側のエンジニアに届けます。その情報はベトナム側のエンジニアが実装方法を考える上で大変有益な情報になることはもちろんのこと、技術的な視点からより良い機能提案も生まれ、まさにクライアント含めたOneチームによる共創が促されるのです。

続いて、QCチームのテストについて。QCチームはアジャイルテスト4象限の第2象限(ストーリー受け入れテストなど)の手動化に特化することで品質を担保していると言えます。

もちろん自動化についても考えていく必要がありますが、手動テスト実行エンジニア(QCメンバー)の単価が安い現状においてはテスト自動化のROIが悪くなるため、盲目的にテスト自動化を推進するのではなく、モダンオフショアの強みであるコストと対象プロダクトの特性を考えた上で、テスト自動化戦略を考えていきます。

内製化支援事例

続いてはモダンオフショアで内製化支援を行なった事例についてお話ししました。

クライアントであるグッピーズ様のスライドにあるとおり、この案件はクライアントの内製化を支援するための受託開発案件でした。クライアントの内製化=開発ベンダーにとっては仕事を失うことにつながるため、一般的な開発ベンダーはクライアントをいつまでも独り立ちさせないような進め方をすることが多いかと思いますが、まさにそのような開発ベンダーの振る舞いが今の日本のDX実現の足かせになっていると考えています。まだ明確な答えは出せていませんが、クライアントの内製化を支援することで、開発ベンダーも収益の向上を目指す形を今まさに模索している段階です。

4ステップある内製化ステップの1つ目は、レガシーシステムのリプレイスです。このステップではスマートな対応よりも力技が求められる段階だと考えており、後述するモダンオフショアの強みが一番活きてくるステップだと考えています。

2つ目のステップは伴走です。この伴走ステップは、クライアントと開発ベンダー、オフショアの3社が共創を実践するステップとなります。

3つ目のステップは手の内化です。この段階で弊社の受託開発契約は終了し、クライアントがコントロール可能な状態が維持されているので、クライアントの状況によってはこのステップを内製化のゴールとしても良いかもしれません。

クライアントが完全内製化を目指す場合は開発者の採用と開発業務の引き継ぎをすすめ、最終的にオフショアチームとの契約も終了して完全内製化を実現することになります。

この内製化ステップを進める上でのモダンオフショアの強みについては、開発コストの安さと、優秀なエンジニアの動員力を活かした力技によるリプレイスの実現があるかと考えています。

2020年末に公開されたDXレポート2中間とりまとめ内の今後求められる開発ベンダー像がまさにこの取り組みじゃないか!と思ってしまいました。

今後について

2020年は、私個人がこの6年間で蓄えてきた暗黙知の共同化と、その暗黙知を少しずつ文章化するなどの表出化の活動だったと考えています。

2021年は、より表出化の活動をすすめてモダンオフショアの知識を形式知化し、クラスメソッド、ベトナム開発パートナーの双方での普及をすすめ、内面化の活動で新たに生まれた暗黙知を関わるメンバーが血肉化していくような活動につなげていきたいと考えています。

そのようにして得られた暗黙知=オフショアを機能させる能力は、今後ソフトウェア開発者が生き残っていく上で必ずや必要になる能力だと強く考えています。

頂いたご質問

質問1(会場から)

ベトナムの開発者の方は、基本的にはコンピューターサイエンスの学位を持っていて非常に優秀で、かつ増減も効く、かつコストも安い、すごく良いこと尽くめだなと思うが、いつまでも安いままではないのではないか。インドや中国では賃金が上がっていって日本と逆転していったという経験があるが、ベトナムの現状はどうか。また上がっていった場合どう変わっていくのかをお聞きしたい。

ベトナムはGDPが毎年7%前後上がっており、給与も上がっていくのが当たり前な状況で、エンジニアの単価も上がってきています。なので、以前のモダンオフショアの定義でも、メリットはコストではなく優秀なエンジニアの確保だと言い続けてきていました。ただ、実際に現実を見ると、やっぱり今現在はまだベトナムの優秀なエンジニアに対してそれほど高い給与をお支払いできているわけではなく、エンジニアの単価も日本に比べて安い状況は続いています。今後は間違いなくベトナムのエンジニアの単価は上がっていく中で、コストメリットはなくなっていきますが、日本に比べて優秀なエンジニアを確保しやすさというメリットは残り続けると考えています。

質問2(Discord)

そういえばマルチサイトはどこに

(私の)変化を受け入れてください。

質問3(Discord)

大幅に変更だけど納得のスコープはSMの交渉力なんだろうか

プロダクトバックログリファインメントやスプリントレビューの中で、期日までに対応可能なスコープについてPO、SM、ベトナム開発パートナーで都度認識を合わせてきたことと、常に開発チームがベストを尽くしているという信頼関係を築けたことが、POの納得感に繋がったと考えています。

質問4(Discord)

スプリント計画で細かい話をしても2hで終わるのすごい気がする

優先順位の高いPBIについては、プロダクトバックログリファインメントの中で可能な限りReadyな状態に持っていっていたので、スプリントプランニング1部は改めての認識合わせ程度で済んでいました。スプリントプランニング2部でのタスクの洗い出しについては、スプリントによっては1時間を越えちゃうこともあったかと思います。

質問5(Discord)

BSEは日本人?

日本語を話せるベトナム人が担当するケースが多いです。

質問6(Discord)

バグ対応用にどれくらいのリソース用意しているんだろ

バグ対応用というわけではないですが、スプリント内の開発者のキャパシティ(タスク対応時間)は、稼働時間の70%として計画を立てていたので、残りの30%の時間を使ってバグ対応することが多かったと思います。

質問7(Discord)

開発コスト安い状態で上手く回っちゃうと内製化にモチベーション湧くのかな

今回の事例は、元々内製化がゴールの案件でしたが、ステップ3の手の内化まで実現して、その後も開発コストが安いベトナム開発パートナーが手を動かし続けるという形での(半)内製化でも十分というクライアントさんもいるかなとは考えています。

質問8(Discord)

増減が容易、ってベトナムのITエンジニア市場はどんななんだろう?

エンジニアの稼働率を50%〜70%程度に意図的に抑えて、急な増減にフレキシブルに対応できるような状況を維持している開発会社が多い認識です。

さいごに

今回のRSGT2021はオンラインとオンサイトのハイブリッド開催ということで、目の前で直接聞いてくれる方々と共にセッションを作り上げていくスタイルが話しやすかった私にとってはなかなか難しい登壇となりました。そのような中でも、わざわざ時間を割いて聞きに来てくれた皆様、Zoomでの配信を見ながらDiscordで盛り上げてくれた皆様、カンファレンス運営の皆様に対して、本当に感謝しかありません。

まさに激動の時代の中で、私自身変化を受け入れ、聞いてくれる方にとって少しでも価値を届けられるような登壇を目指して、今後も精進していきたいと考えています。

また、今後のモダンオフショアの拡大に向けて、オフショアを機能させる能力を身につけたいスクラムマスターと、オフショアの開発チームを指導できる能力を身につけたいエンジニアを絶賛募集中です。ご興味ある方は、ぜひご連絡ください!