この記事は、iRidge Advent Calendar 2020 15日目の記事です。
はじめに
弊社ではオフショア開発としてベトナムに拠点を構える会社と共同でのシステム開発を行なっています。
私がベトナムメンバーとの開発に携わるようになってからそれなりの期間が経ったので、この機会にふりかえってみたいと思います。
現在の開発の進め方
タイトルの通り、スクラム開発をベースとしています。1スプリントを1週間として、朝会、スプリント計画ミーティング、レトロスペクティブなど、基本的なアクティビティを行いながら、開発を進めています。
メンバー構成は以下の通りです。
- 日本側
- スクラムマスター兼エンジニア(私)
- エンジニア
- ブリッジSE(主担当)
- ベトナム側
- エンジニア 2名
- ブリッジSE(副担当)
これまで、ベトナムメンバーにはコーディング、テストを中心に開発タスクを担当してもらっており、要件定義、設計などのタスクは、日本メンバーで進めていました。ただ、日本メンバーのエンジニアは最近チームにジョインしたばかりなので、設計タスクはおおむね私が担当する体制となっていました。
よかったこと
新機能開発よりも既存システムの改修を行うことが多いのですが、ベトナムメンバーの入れ替わりはそれほど多くなく、同じメンバーが同じシステムに長く携わってくれていることで、以前に比べてコミュニケーションコストが下がったように感じています。
以前であればスプリント計画ミーティングで詳細に作業内容を伝えていたところ、共有できている前提が増えてきていることから日本側からの説明量は減ってきている感覚があります。
ベトナムメンバーのシステム理解が進んできて頼もしく感じるとともに、一方で日本側メンバーのこれまでのタスクを通じた教育が身を結びつつあると実感しています。
改善したいこと
コーディングやテストについては高い生産性を発揮してくれるベトナムメンバーですが、一方で設計についてはまだ日本メンバーから多くの支援を必要とする状態で、ベトナムに依頼しなくとも日本メンバーでやってしまったほうが早い、となるケースが多いのが正直なところです。Web上の記事を見てみるとこれはオフショア開発としてどこでも抱える課題のようで、コーディング、テスト工程の要員としてオフショア開発を活用すべし!といった主張をされている記事も見受けられます。
私の実体験としても、オフショアのベトナムメンバーを最大限活用するならコーディング、テストをお願いすることがよいと考えています。
しかしながら、我々は日本とベトナムの合同スクラムチームとして活動しているので、コーディング、テストはベトナム、設計は日本といった分業体制で進めていくことは望ましくないと思っています。
そのため、現在はベトナムメンバーにも設計工程を担当してもらえるよう、いくつか取り組みをしている段階です。
システム調査タスクを割り当てる
設計の前段階として現行の仕様調査を行う経験を積んでもらうことを目的にしています。
調査結果を整理してもらい日本側でレビューしますがシーケンス図などUMLを用いてまとめるよう指示しています。(この指示がないと、適当なフォーマットでまとめられたりしてレビューが大変でした)
「調査の目的を詳細に伝える」ことに注意すれば、今の所それなりの品質の成果物が上がってきています。
設計タスクを割り当て、ミーティングで方針をコントロールしながら進める
要件のみを事前に説明し、簡単な設計タスクを担当してもらいました。
簡単な設計と思い割り当てたのですが、いざ日本側でレビューする段階になると不自然な設計や考慮漏れが散見されたため、日本側である程度進め方をコントロールする必要があることに後から気づきました。
設計検討中に悩む部分があったとき気軽に相談をすることが出来ないことが一因のようだったので、朝会の他に時間を確保して設計相談の時間を確保することで何とか形になりましたが、今後も設計を依頼する際には日本側のフォローの仕方として頭に入れて置く必要性を感じました。
この進め方は日本側の工数もかなり取られてしまうので、余裕があるときでないと破綻してしまうので要注意です。
いずれの取り組みもベトナムとのオフショア開発特有の手段をとっているわけではないですが、これまでの経験から時間をかけて取り組むことでベトナムメンバーのスキルアップに繋がり、より開発に貢献してもらえると考えています。ブリッジSEを介したコミュニケーションが肝で、こちらの意図を正確にベトナムメンバーへ伝えてもらえるように丁寧に話すことを普段のコミュニケーションから意識することが大事だと思います。
まとめ
ふりかえってみると、きちんと時間をかけてチャレンジすること、教えることでメンバーのレベルアップを図ることはベトナムであろうと日本であろうと変わりないと思います。スクラムチームとして成長をするために何をすべきか、という観点で今後も取り組んでいきます。(気が向いたら続編を書きます。)