チームを成長させるチームビルディングの導入事例

こんにちは。新規ゲームのプロジェクトで開発ディレクターをやっている粟村です。

私の所属しているチームの特にエンジニアの間では、チームビルディングに関する取り組みを積極的に行っています。この記事ではチームビルディングとは何か、その重要性と実際に行っている取り組みについてご紹介させていただきたいと思います。


チームビルディングとは

チームビルディングとは、チームメンバーのちからを最大限発揮できるチームを作り上げるための取り組みのことです。チームビルディングを行うことでチームの生産性を向上させ、より短い期間で良いプロダクトを作ることを目指します。運用を見越したゲーム制作のプロジェクトは規模が大きくなることが多く、よりチームビルディングの重要性が高まります。


なぜチームビルディングをするのか

私のチームでチームビルディングを行う理由としては、下記のようなものがあります。

 

・連携

どんなに優秀なメンバーを揃えたとしても、連携が取れていないと良いプロダクトはできません。

例えば、5人の優秀なエンジニアがいたとして、5人それぞれが満足にコミュケーションができない場合、タスクの進行はどうなるでしょうか?

同じような機能をお互いに作り、同じ場所に変更を加えてしまってコンフリクトが頻発し、繋ぎ込み部分のタスクは漏れることでしょう。

設計はバラバラになり、コードレビューは各々の観点で行うので時間がかかり、場合によっては宗教戦争のような状態になって膨大な時間がかかることもあるでしょう。

結果、本来かけるべき部分に時間をかけることができないためクオリティは低く、拡張性も無く運用し辛いプロダクトになります。

このような状態にならないためにも、チームビルディングを行い上質なコミュニケーションができる状態を作り上げることが大切です。

 

・逆コンウェイの法則

「システムを設計する組織は、その組織の構造をそっくりまねた構造の設計を生み出してしまう」

というのがコンウェイの法則です。

これを逆手にとり、

「良いシステムを設計するために、良い組織構造作りをする」

と考えるのが逆コンウェイの法則です。

例えば、これは極端ですが、インゲームを担当しているエンジニアのグループとアウトゲームを担当しているエンジニアのグループがあったとします。この2つのグループの仲が悪く、全くコミュニケーションを取らない状態だったとしましょう。

この場合、アウトゲームからインゲームへの遷移部分は出来上がらず、それぞれの機能が個別で存在することになります。

このような状態になってしまっていて、あとから間の部分を補間することはしばしばあるかと思います。

その場合、アウトゲームとインゲームの設計が全く違うため、繋ぎ込み部分は複雑になり、メンテナンスし辛い状態となって機能的な制限も発生してしまいます。

読んでいる方の中にも似たような経験がある方がいるかと思いますが、逆コンウェイの法則は個人間のやり取りから会社単位まであてはまるものなので、より広い範囲でチームビルディングや組織づくりを行う必要があります。

 

HRT

HRTとは優れたチームが優れたソフトウェアを作るのに必要な三本柱だと言われている謙虚(Humility)、尊敬(Respect)、信頼(Trust)の頭文字を取ったものです。

こちらの三本柱について説明していきます。

  • 謙虚
    自分が完璧だと思ってはいけません。しっかりと周りの人の意見に耳を傾け、常に改善をしていくことが必要です。エンジニアは特に、技術力が高まると自分が全て正しいと慢心して他の人の意見に耳を傾けなくなる傾向があるので注意が必要です。
  • 尊敬
    一緒に働く人のことをしっかりと思いやること。相手を一人の人間として扱い、その能力や功績を認め合いましょう。
  • 信頼
    自分以外の人は能力があって、正しいことをすると信じましょう。こちらは特にリーダーやマネージャーに必要とされるものです。

これらをチームメンバーがお互いに意識してコミュニケーションを行うことで優れたソフトウェアを作ることができるチームになると言われています。このHRTの意識を高めるためには、「定常的に」意識し続けるための施策や振り返りをする必要があります。これもチームビルディングになります。

これらは「Team Geek ―Googleのギークたちはいかにしてチームを作るのか」や「エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング」などを参考にしていますが、私のエンジニアとしての経験上でも思い当たることが多く、チームビルディングをやることの重要性を感じています。

ここで挙げた内容はつまり、チームビルディングを行うことで最終的には生産性が高まるということです。

特に、長いスパンで開発を行う大規模なプロジェクトにはチームビルディングが必要不可欠だと言えます。


実際に行っているチームビルディング

チームビルディングを行うことが大事だということは私のチームでは当たり前となっていて、そのための施策を数多く実践しています。その一部を紹介していきたいと思います。

・チェックインミーティング

チェックインミーティングは週の始めに行い、目標や健康状態を確認します。OKRの一環でやるものとして知られていますが、私のチームでは過去にOKRを試した経緯もあり、OKRを用いていない今でもチェックインミーティングは続けています。(OKRは目標設定手法の一つなのですが、詳しく知りたい方は調べてみてください。)毎週目標を確認し合うことで目標を目指し続けることができ、他のメンバーの目標に対して協力することもできます。健康状態の確認では、体調面とメンタル面の両面における健康状態を、楽しんでることや勉強していることなどの内容を交えて確認します。楽しんでることなどを交えることにより雑談にも繋がり、日々のコミュニケーションがやりやすくなる効果もあります。また、私のチームでは勉強の時間を確保することにも力を入れており、勉強ができているかどうかの確認も同時に行っています。

・TGIF

TGIFとは「Thank God It’s Friday」の頭文字を取った言葉で、毎週金曜日の午後Google本社で行う全社的なミーティングとして知られています。Googleではお酒を飲みながら話し合いをする会として開催していますが、私のチームでは流石に業務時間内からお酒を飲むことはできないので、スクリーンショットや画面収録の動画を用いて業務内容の報告を行い、お互いの仕事を称え合うミーティングとしています。このミーティングにより仕事へのモチベーションが高まり、お互いの仕事内容を把握することで連携しやすい状況も作り出しています。

・朝会とTips

毎朝15~20分ほど朝会を行い、各メンバーがその日行うタスクの確認と連絡事項の共有をしています。ここで、連携が必要な部分について「~さん、この後お話しさせてください。」などの連絡も行っています。私のチームでは朝会の時間を使って毎日一人ずつ5分程度のTipsを行います。Tipsでは、今自分が勉強している内容をライトに説明します。読んでいる本の内容や、最近読んだ技術に関する記事など、内容は「仕事やエンジニアリングに関係ありそうなこと」くらいの縛りにして各々に任せています。これにより、インプットへのモチベーションを高めています。

・モブプロ

モブプロとはペアプロの大人数版で、複数人数で協力して一つのプログラム作る手法です。15~20分ほどで時間を区切り、各時間ごとに1人のメンバーがプログラムを書く役になります。この人は他のメンバーが言った通りにしか動くことができず、実装方法や書き方などは他のメンバーが考えて指示出しをします。皆で同じプログラムに向き合うため、そこで用いられている実装や設計の共有はもちろん、設計思想の共有や実装時に気をつけていること、効率の良い書き方やコード規約などについても共有できます。一見、複数人数の工数を用いて行うため非効率に見えますが、この共有ができることによりコードレビューや連携部分の実装にかかる時間は減り、リファクタリングをしなければいけなくなることも少なく、どこの部分に対しても誰でもメンテナンスしやすい状況になり、プロダクト全体での作業効率は格段に上がっているように感じます。特に新しいメンバーが入りコード規約や設計に慣れてない状態で行う場合にはより効果的です。

パーソナルマップ

パーソナルマップとは、一人がホワイトボードの前に立ち、他のメンバーがその人に対して質問をし、質問に答えながらその内容をホワイトボードに書き込んでマインドマップのような図を作っていくコンテンツです。質問の内容は自由で、好きな食べ物から将来どんなことを成し遂げたいかまで様々な質問を投げかけます。(もちろん答えたくない質問には答えなくても良いです。)私のチームでは新しいメンバーが入った際にこれを1時間ほど行い、メンバー全員がその人のことを深く知るようにしています。知っていることでその人がどんなことを大事にしているか、どんなことを不快に感じるかなどがわかるので、以後のコミュニケーションがしやすくなります。共通の趣味や故郷が一緒だったなんて発見もあったりしてだいたい盛り上がります。


チームのこれから

上記のようなチームビルディングを行っていますが、チームメンバーの増加などにより日々課題が出てくるので、それに応じて内容を改善したり、力を入れる部分を変えたりしていくことが大切だと考えています。また、このような施策をやる中でもやはりメンバー全員がHRTを意識することは忘れてはいけません。

この記事ではチームビルディングを行うと最終的に「生産性が上がる」というお話しをさせていただきましたが、その過程においては「皆が成長できる」というものがあります。私がチームビルディングに力を入れたいと考えた理由の一つに、「実際に自分自身がチームビルディングに力を入れているチームに入りそれまでとは全く違う速度での成長を感じたから」というのもあります。

皆が成長できて生産性が高いチームを作るためにはどうすれば良いかを、皆が考え続けるチームでありたいと考えています。


終わりに

チームビルディングは工数との兼ね合いにもなるので非常に難しいです。

ですが、実際にチャレンジしてみると、思いの外生産性が高まることを感じられると思います。

私のように「それまでとは違う速度での成長」を感じられる人が増えると嬉しいです。

最後まで読んでいただきありがとうございました。


関連記事一覧

  1. この記事へのコメントはありません。