Unityを使ったチーム開発の進め方

この記事は202406アドベントカレンダー20日目の記事となります。
【VR未経験エンジニアがメタバースでのWEB申込を実現するための挑戦】シリーズの第7弾として、保険のWeb申込システムをPoCしていたチームが、メタバースプラットフォームのCluster上にWeb申込画面を再現する取り組みを記事にまとめていきます。
前回の記事はこちらです。

今回の記事について

我々のチームは基本的にモブワークで作業しています。コードを書く際もモブプログラミングで行っています。
今回はUnityでの開発ということで、liveShareのようなことはできず、これまでの開発環境と大きく異なりメタバース開発の有識者もいない状況で、モブワークをやるにあたって躓いた点や学びをまとめていきたいと思います。

モブプロ的に始める前にやっていたこと

開発の初期段階では、チームメンバーがそれぞれスパイクしたものを都度手動でマージを行っていました。
当然ながらこのやり方では

  • 開発者ごとにオブジェクト階層やアイテムの構造が違うため、取り込んた時にエラーが出る
  • UnityプロジェクトをZipファイル化してslack上で共有していたため、ファイルのやりとりに時間が掛かる

といった問題が発生しました。

モブプロをやってみた

問題がありながらもなんとか開発を続けていきましたが、リソースが増えてきたタイミングで今までのやり方ではどうしようもならなくなったため、リソース管理を含めてきちんとモブプロをやっていこう、となりました。

そこで、まずはgitリポジトリを準備しそこにリソースを集約して管理するようにしました。
これくらいのことは先にやっておけばよかったと反省しています。。。

モブワークの体制については、従来のWebシステム開発とは異なり複数人でのプロジェクト編集は難しいため、ドライバーを固定せざるを得ず、この方式だと開発メンバーの発言機会や知識共有が偏ってしまうため、ナビゲーターをローテーションしてメンバー全員が開発に参加できるよう気を付けました。

モブワークから得られた学び

実際にモブワークをやってみて、これでなんとか回せていましたが他にもっといいやり方があるのかもしれません。
その中でも学びを得られた点として

  • Unityではliveshareのようなことができないため、ナビゲーターの考えていることを伝えるのが大変
  • リソース管理をするのは普通に大切

ということが挙げられました。
実際に我々チームメンバーはUnityでの開発経験がなかったため、何がより良いやり方なのかはまだ分かっていませんが、やりながら模索していくことでもっと良くできると思っています。
本業でUnity開発をしている方々がどのように複数人での開発を回しているのかも知ってみたいですね。

まとめ

今回の記事では、Unityの開発経験がない開発者がチームで開発するために苦労した点や工夫した点を書いてみました。
経験がない中で色んなやり方を試しながらなんとかうまく開発を回せていたと思います。