新卒エンジニアが気づいた、チーム開発に超必要な"コミュニケーション"の話
1.はじめに
こんにちは!20卒エンジニアのFです!
G2 Studiosには、長期開発研修という、「3ヶ月の期間を使って、新卒プランナー・デザイナー・エンジニアの5~6人でチームを作り、企画段階から開始し、実際のリリースを想定してゲーム開発を行う」というかなり大掛かりな新卒研修があります。
この記事を書いている今は、研修期間も残りわずかで、開発したゲームのデバッグ作業や、納品物の確認など最後のまとめを行っています。
ちなみにヘッダのイケメンさんは開発したゲームに登場しているオリオン座さんです。かっこいいですね。
今回は、研修を通して、チーム開発研修にとって超必要だと感じた"コミュニケーション"について新卒エンジニアという目線から書いていきたいと思います!
「エンジニアになってチーム開発したい!」
「チーム開発ってどうなんだろう?」
と思っているエンジニア志望の方はぜひ参考にしてみてください!
2.チーム開発に大事なスキルとは?
チーム開発にとって大事なスキルってなんでしょうか?
プログラミングスキル?数学スキル?文章作成スキル……いろいろありますね。どれも大事です。
特にエンジニアの方はプログラミングスキルのような「技術力」が大事だろう、と思うのではないでしょうか。
自分の同期の多くも、研修が始まった頃は自分の技術力が生かせるかや、もっと伸ばせるかというような事を気にしていたように思います。
もちろん技術力も大事な事ですが、それに負けないくらいエンジニアがとるコミュニケーションは重要です。
もっと言えば、技術力よりも大事??とすら思えてきたのです。
3.エンジニア、めっちゃ話す
長期開発が始まって特に実感したのは、開発の過程においてエンジニアはコミュニケーションを取る機会がものすごく多いということです。
実際にどんな機会に話すのか経験してきた開発フローを元に例を上げてみます。
■企画から仕様書になるまで
新卒内でプランナーの持ち寄った企画書を元にコンペを行い、選ばれた3つを元にチームが組まれ、企画書の内容を詰めたり、仕様書に落とし込むための話し合いが始まります。
企画段階で提案されていたゲームの内容や、ゲームサイクル(ユーザがゲームをプレイする上で繰り返し行う流れ)について皆で意見を出し合います。エンジニアにも、実際にゲームを作るという目線から出せる意見があります。
仕様書が固まってきたら、開発を進めながらプランナーが必要な仕様を詰めていきます。
■スケジュール作成
開発におけるスケジュールを決めます。
スケジュールを主に管理するのはプランナーです。
開発はα版(ゲーム性の確認)、β版(全機能の完成)、RC版(ゲームに磨きをかける)など、段階に分けて開発を行います。
各段階で、自分の作業時間がどれだけかかるのか、それは何故なのか、プランナーに伝える必要があります。
■仕様変更・改善策を話し合うとき
開発には仕様の変更はつきものです💦
開発している中でチームで気づいたことや、先輩方からアドバイスを受けて新しく実装・改修することを話し合います。
こんな時も、エンジニアは作業にかかる時間や、その優先度について伝える必要があります。
■開発中のコミュニケーション
開発中も細かなコミュニケーションが必要です。
・デザイナーとどんな素材を作って欲しいのか話す。
・ゲームに組み込むために最適なリソース共有の仕方を話す。
・ チームに自分の進捗状況を伝える。
・作業が詰まっていればその原因を話したり、作業分担を行う。
・発生しているバグや問題について確認しあったり、対応策を話し合う。
・上司・先輩に質問をしたり、これからの作業について確認する。
などなど。
開発フローに合わせて、エンジニアのコミュニケーションが必要そうな機会を図にまとめてみました。
▼長期開発研修簡易フロー(吹き出しが話し合いの機会)
どうですか?
めっちゃ話しますよね。
どんな意図を持って作るのか、
何がゲームの魅力なのか、
作業はうまくいってるか、
もっとよくするためにはどうしたらいいのか、
いろいろなことを確認したり、話し合わなければならないのです。
4.チーム開発でぶつかった問題
長期開発研修が始まったばかりのころは、プランナーは初めてのゲーム開発ということもあってエンジニアの作業についてイメージできていないことも多かったです。
なにができるのか、どれだけ時間がかかるのか、どこまで要望をだしていいのか、手探りの状況でした。
話し合いの中では意見が対立したり、食い違ったり、話が進まない、ということも多かったです。
開発が始まってからも確認ミスや、作業の手戻りという問題にも直面しました。
チームとして違う人間が集まれば、お互いわからないことや意見の相違があるのは当然です。
それを埋めるために、コミュニケーションが必要なのです。
5.密なコミュニケーションが開発を助ける
コミュニケーションがうまく回ると、上記で述べたようなもどかしい問題が解決していくはずです。
話し合いがうまく進めば、決めなければ行けないことを素早く決まることもできますし、決定した内容も質が高いものになります。
確認ミスや手戻りが減れば、ゲーム開発の効率はよくなるに決まってます。
プランナーのやりたいことを聞いて、「こんなこともできる」と提案することもできちゃいます。
エンジニアだからこそできるアプローチ、考え方はきっと、ゲームをよくするための貴重なものです。
「もしかしたらこうなっちゃうかも……」という心配の共有が早ければ、将来的なバグのリスクまで防げちゃうかもですね!
……と、このようにチームとしてゲーム開発している以上は、エンジニアはコードを書くことだけに集中してはいられないのです。
技術知識を身に付け、実践するのには時間がかかるかもしれませんが、コミュニケーションはちょっとしたことを気をつけていくことによって大きく改善できる可能性を秘めているのです!
最後にそのアドバイスと、自分が行ったことについて書いていきます!
6.相手の立場になって考える
コミュニケーションをとる上でとりあえずこれを気をつけること良い!ということが、
相手の立場になって考える
ことです。
先ほど、プランナーがエンジニアのスケジュールについてイメージしにくいようだった、というように述べました。
そこで、エンジニアはこれくらい実装にかかり、こんな順序で作業したいと考えている、というスケジュール表を作成して相談してみました。
▼β版スケジュール作成時に使用したエンジニアスケジュール表
図のように、タスクをブロックとしてスケジュール表に貼り付け、週単位でこれくらいの作業ができそうである、というような仕組みになっています。
プランナーはこれによってエンジニアのスケジュールの感覚を把握し、タスク管理ツールを併用しながらデザイナーのリソースを作成する期限や、仕様書を詰める優先度を決めることができました。
また、エンジニア間でも、作業分担や工数を考える話し合いに重宝しました。
どんな情報があれば相手にとってわかりやすいのか、理解が深められるのかを、相手の立場になって考えてみてエンジニアのスケジュールを目でわかるようにした資料を用意したところ、チームメンバーからも「わかりやすい」と好評でした。
予め資料を用意するというのはコミュニケーションをする上でも大きな助けになる事柄ですが、もっと簡単にできることがあります。
■相手にとってわかりやすい表現を心がける
難しい言葉(専門用語)を使ってしまったり、複雑な状況をそのまま述べてしまっても、詳しくない相手を置いてけぼりにしてしまうだけになってしまいます。
相手に応じて、わかりやすい表現、言い換えを考え、簡潔にまとめることで、自分の状況を分かってもらいやすくなります。
■相手の状況に興味を持つ
話を伝えるときは相手が理解できていそうか、納得できているか、ということについて意識をしてみましょう。
相手の反応を意識しながら話すことで、状況に応じて確認してみたり、言い方を変えてみたりすることで、食い違いや起きにくくなります。
裏を返せば、話を聞いている時は相手にとってわかりやすく、自分の反応を返せるより良いですよね!
また、直接話しているときだけでなく、忙しい、タスクが間に合わなそう、悩んでいそう、というような、相手が置かれている状況にも目を向けて見ると、より相手のことを思いやったコミュニケーションが取れると思います!
相手の立場になったコミュニケーションは相手の心情にとっても気持ちの良いものだと思います。
コミュニケーションは、ただ理解を深める、食い違いを少なくする以上に、チームとしての連帯感や、働く上での楽しさを生むことができると思います!
▼チームに対する良いフィードバックを受けてSlackで喜ぶチームのみんな
7.まとめ
研修が始まった当初、自分の技術力はまだまだであるという自覚があり、懸念していました。
その分、チーム間のやりとりを促進させることには特に気を使ってきた、という経緯があります。
チーム内のコミュニケーション面の成功も失敗も経験して、コミュニケーションって本当に大事だったんだなあと改めて感じました。
不安だった技術的な問題は、先輩に聞いたり、同期と確認したり、コミュニケーションをとることで、思っていたよりすんなり解決してしまいました。
技術力が高いに越したことはありません。
しかし、チームで開発する以上、一人ではゲームを完成できません。
大規模なゲーム開発において、企画もリソースも用意できるスペシャルフルスタックエンジニアになれますか?
エンジニアがエンジニアの作業に集中するためには、エンジニア以外に向けた適切なコミュニケーションが必要だったのです。
チームメンバーが適切に意思疎通できてこそ、チームはうまく運営できますし、作りたいものを効率よく作ることができるのです。
この記事を読んでくださった皆さんにも、エンジニアのコミュニケーションスキルの大切さについて、伝われば幸いです。
最後まで読んでくださり、ありがとうございました!
この記事が気に入ったらサポートをしてみませんか?