投稿日
ロケーションに依存しないチーム開発
はじめに
西日本テクノロジー&イノベーション室 川崎です。
本稿では、我々の行っている複数ロケーションでの開発についてご紹介します。 我々の業務は、最初は東京単独で行っていましたが、そこから部門をまたいで東京-大阪の2拠点になり、 今年からは会津若松と大阪の2拠点で1つのチームを作って開発をしています。
このように地理的に離れた拠点間でどのようにチームでの開発を行っているかをご紹介します。
業務内容
我々のチームでは、アプリケーションフレームワーク(Nablarch)の開発・保守を行っています。
フレームワーク開発としては、
- 新規機能追加
- バグフィックス
- 要望対応
- ドキュメントやツールの整備
などを行っています。
さらに、社内やグループ会社からの技術的な問い合わせにお答えしたり、Nablarch適用プロジェクトのソースコードレビューなども行っています。
特定の顧客に依存した業務ではないため、比較的ロケーションを選ばない部類に入ると思われます。
会津若松
会津若松はスマートシティの急先鋒であり、弊社が入居しているAiCTという施設にも多くのIT企業が活動をしております。 弊社は決済やロボティクスを軸に会津若松のスマートシティ政策に貢献しています。
それ以外にも、地方創生・雇用創出に貢献するため、ロケーションに依存しにくい業務が可能で地方勤務を希望する社員に会津若松勤務を勧めており、社内公募も行っています。我々は前述の通り、自社内、グループ内に閉じて活動がしやすいため、 ロケーションの制約が比較的緩い業務となります。この特性を活かして、会津若松に活動拠点を設けており現在我々のチームでは2名が会津若松で勤務しています。
大阪
筆者が勤務している北区堂島にあるビルです。
大阪オフィスの雰囲気については『新人目線で語る職場の雰囲気レポートIN大阪』も併せてご参照頂けますと幸いです。
こちらの拠点でも、筆者含めて2名のメンバーが参画しています。
開発スタイル
我々はロケーション毎にチームを分割せず、ロケーションは別でも1つのチームとして活動を行うようにしています。 そのため、リモートでのコミュニケーションを非常に重視しています。
現在は会津若松2名、大阪2名の計4名のチームとなっています。それぞれの拠点では一箇所に集まって作業していますが、 コミュニケーションツールを活用して拠点間をつないでいます。
朝会
いわゆるデイリースクラムやスタンドアップミーティングに当たるものです。
毎朝、メンバーが出社したらZoomを使ってビデオ会議で朝会を行います。
- 昨日やったこと
- 今日やること を宣言し、カンバンに担当者をアサインします。
普段はチャットでのコミュニケーションがメインなのですが、 朝会で1日1回は顔を突き合わせ声を出してコミュニケーションを取るようにしています。 こういうデイリーのセレモニーは一般的に手短かに終わらせることを良しとしますが、 我々はあえて各自の席に座って、少し「緩め」に会話をします。少々であれば脱線や世間話もします。 これだけでも遠隔地のメンバーとの心理的な距離がずいぶん縮まります。
同一ロケーションの時なら「そういえばさぁ」といって気軽に隣の人と会話を始めることができますが、 リモートだとチャットやビデオ会議で明示的に呼びかけないといけないので、全員が気軽に話ができる場は重要です。 ここで声を出し顔を見せあって挨拶をして話をすることで、その後のコミュニケーションも円滑になります。
Webカメラとヘッドセットはいつでもすぐ使える状態にしています。 ビデオ会議は、開催の手順が面倒になると自然と頻度が落ちてしまうので、 できるだけすぐ会議を始められるよう工夫することが重要です。
チャット
メインのコミュニケーションツールはSlackになります。DMはできるだけ使わないようにしています。 チャンネルで発言すると、発言がパブリックになるので、他チームのメンバーからも意見をもらうことができます。実際の作業は4名でやっていますが、ピンポイントで他のメンバーからアドバイスを貰えることで、実際の体制以上に層の厚い業務ができています。
ただし、Slackで議論をしだすとテンポが悪くなることがよくあるので、 そういう場合はビデオ会議を開催するなど、コミュニケーションチャンネルを切り替えるようにしています。
Slack Callを使うと、数クリックで通話を始められるので、ちょっとした相談は非常にやりやすいです。 (相手の内線番号を調べる必要もなく、Slackのアイコンをクリックするだけです)
出張
いくらコミュニケーションツールがあっても、全てを代替できるとは考えていません。 時には実際に集まってコミュニケーションを行う必要があると考えています。 半期に一度、キックオフミーティングを開催しメンバー全員が集まって、 これまでの振り返りや今後の活動方針を話し合います。
特に新規メンバーがいる場合は、実際に会って話すことで心理的な距離がとても縮まると感じています。
リモート開発のノウハウ
我々が実践した内容は、 『複数ロケーションに跨るチームでのリモート開発実践ガイド』 にまとめています。こちらも併せてご参照頂けますと幸いです。
リモート開発のメリット・デメリット
メリット
業務の幅が広がる
元々は東京にしか存在しなかった仕事が、東京以外でも行えるようになることには大きなメリットがあると考えます。
地方在住のエンジニアという立場からすると、東京へ行かずに地方在住のままで、 選択できる業務の幅が広がることは非常に重要です。
また、会社の視点から言ってもロケーションに依存しない開発ができることに大きなメリットがあります。 実際に大阪拠点には、チームメンバー以外にもNablarchの開発経験者が多数在籍しており、 トラブルが発生したときには他のメンバーの力を集めることができます。
従来は、転勤になるとそれまでの業務を継続するということはありませんでしたが、 ロケーションに依存しない開発ができると、必ずしも東京に人員を抱え続ける必要がなくなり組織編成の柔軟性が大きく向上します。
我々の働き方は、もともとメンバーが1箇所に集まって作業することを前提としていません。 このため、在宅勤務も非常にやりやすいものとなっております。
我々も、通院や家の用事等に応じてフレックス勤務や在宅勤務を積極的に活用しています。
デメリット
コミュニケーションツールが充実してきたといっても、 オンサイトと全く同じというわけにはいきません。 特に、リモートで作業をしていることを意識していないと、 コミュニケーションが希薄になってしまいます。
前述の『複数ロケーションに跨るチームでのリモート開発実践ガイド』にも記載していますが、 リモート開発に必要とされるマインドセットがあると考えており、それを日々実践しています。
全てをコミュニケーションツールで代替できるとは考えておらず、 時には顔を合わせてじっくりと対話をする機会も必要であると考えています。 前述の「出張」でも書きましたが、半期に一度メンバーが集まって会話を行うようにしています。 こうやって集まった時は、目先の作業のことはいったん置いておいて、 自己紹介やチームの価値観のすり合わせなどを行うようにしています。
おわりに
弊社でのリモート開発の取り組みを紹介しました。 少人数でのささやかな活動ではありますが、こういう取り組みが、地域活性化などの社会貢献、会社の利益、さらにはエンジニアの働き方を改善することににつながっていると考えています。
地方でのエンジニアの活動がより良いものになるよう、継続して取り組み成果を公開していきたいと思います。
ありがとうございました。
本コンテンツはクリエイティブコモンズ(Creative Commons) 4.0 の「表示—継承」に準拠しています。