はじめに

カルテットコミュニケーションズ開発部では職能チームとしての、PHP チーム、UI チーム、インフラチームが存在しています。プロダクトやプロジェクトに応じて適宜職能チームからメンバーをアサインする形で業務を進めています。
今回はその職能チームのうちのひとつであるインフラチームの働きかたについて、とくに「チームをどう運営しているのか」を主軸に簡単にご紹介したいと思います。

メンバー構成

マネージャ 1 人、メンバー 2 人 の合計 3 人体制です。基本的にはリモートワークで、人により毎週 2 日出社したり隔週で特定の曜日だけ出社したりしています。

価値観

各自が有しているスキルや経験に違いがあるのは当たり前です。私たちは互いにその違いを認めた上で等価に尊い存在であることを認識し、互いに足りないところを補い合いつつチームとしての価値を最大化するように振る舞いましょう。

現在のメンバーが集合して初期の段階で設定されたものです。これについては設定から一度も変更されていません。私たちのチームにフィットしているなと感じています。

タスク

基本的にすべてのタスクを GitHub issue に起票しています。
タスクは各人の意欲や得意分野を考慮しながら、ときにはランダムにアサインしたりします。これはそのタスクの関わる分野におけるスキルや情報がチーム内の特定の人に属人化するのをなるべく避けたい、また誰にでもチャレンジする機会を設けたい、という意図からです。

GitHub プロジェクト

また、これらを管理するための GitHub プロジェクトを設けています。GitHub プロジェクトには開始日、終了日、期日などをフィールドとして設けて管理しています。この GitHub プロジェクトを見ることでチームのタスクの状況が概観できます。
また、「中長期」ロードマップビューを設置し管理することで、私たちのリソースの配分検討や取得すべきスキルセットの把握の材料としています。ここには、たとえば「現在 CloudFormation で実現している IaC を AWS Copilot にリプレイスする」といったような 1,2 日では終わらないような「プロジェクト」やそれに準ずるような大きめのタスクを配置しています。

コミュニケーション

各メンバーの作業した内容や考えは GitHub issue などに基本的にロギングおよび記載するようにしています。
このようなテキストにだれでもいつでもどこからでもアクセスできるようにしてあるため、各メンバー間で互いの認知している情報の量や粒度に乖離が少なくなりますし、過去の自分たちを振り返ることもやりやすくなります。
また、私たちは前述したように基本的にリモートワークを行っているため、同期的なコミュニケーションは必然的に少なくなります。テキストによる非同期コミュニケーションをしっかりしておくことで、貴重な同期的なコミュニケーションの場をより有用なものにする効果も期待しています。

ドキュメント

ドキュメントをテキストファイルで管理しています。これを管理するための GitHub リポジトリを設けています。
ドキュメントにはルールや推奨事項を記載しています。
Pull Request を作ることで現状のドキュメントに対する改善案を提案することになっています。基本的には全員の合意をもってドキュメントは変更されます。

ルール

ルールは人を縛るということでネガティブな印象もありますし管理にもコストは掛かります。
一方、ルールが決めることで以下の恩恵があると考えていて、これらにはコスト以上の価値を感じています。

  • 業務を行なう際に迷う時間を減らしてくれる
  • 複数人の業務の進め方を一定の型に嵌めるため属人性を排し再現性を担保してくれる
  • このルールを見直すことや考えることはそれ自体がクリエイティブなことであり、常に見直していくことが私達自身の振る舞いを見直すことと等価である

なお、ルールを「守らない」ことと「守れない」ことは明確に区別をします。現状では幸いなことに意図的に「守らない」メンバーはチーム内に存在していません。「守れない」場合には当該メンバーは理由を共有し、その理由が一時的な例外なのか恒常的な事象なのかを吟味し、必要に応じてルールカイゼンの材料とします。

定期ミーティング

朝会

毎朝 30 分を目処にビデオミーティングにて行っています。
各人の今日の予定を共有した後、相談したいことや雑談を行っています。15 分で終わることもあれば 1 時間かかることもあります。また、たとえば A さんの相談ごとが B さんにはそれほど深く関係のないことでもこの朝会の中で協議されることもあります。
デイリースタンドアップ的な「早く切り上げよう!」というモチベーションはありません。前述のように基本的にリモートワークで働くメンバーでのみ構成されているため、ノンバーバルも含めたコミュニケーションにリソースを割くことには価値を感じています。

週次ミーティング

毎週 1 時間を目処にビデオミーティングにて行っています。
前述の GitHub プロジェクトのレビューが主な作業です。この会では個別のタスクについての相談ごとは基本的には行いません。この会を個別のタスクの相談ごとの場にしてしまうとその相談ごとが最長で 1 週間棚上げ状態になってしまう可能性を危惧しています。相談ごとは基本的には必要に応じて行うのですが、定期的な場としては最長でも 1 日で共有・協議されるように朝会にまかせています。
GitHub プロジェクトを見ながら、中長期のロードマップの確認、各人のタスクの消化具合や進捗の確認、長い間スタッキングされているタスクの見直し、外部的な要請による期限(他のチームや部署からの期限付きの依頼や、セキュリティアップデートなど)のあるタスクの進捗の確認および前述のドキュメントの見直しを行っています。
以前は長い間スタッキングされているタスクやドキュメントの定期的な見直しは行っていなかったため、不要なタスクがどんどん積まれていったりドキュメントが陳腐化したりしていましたが、この役割を週次ミーティングに与えてからはこのような問題が軽減され、ドキュメントや GitHub プロジェクトが活き活きとしたものになってきました。

当番

週次の当番や月次の当番を設けてタスクとして設定しています。たとえばベンダーからのお知らせから発生するタスクの GitHub issue 化、朝会の司会、議事録係、コストの集計などです。
「気付いたから」や「良かれと思って」あるいは「誰もやらなさそうだから」というボランタリーなモチベーションからくる振る舞い自体に価値を感じながらも、ルールとして「当番」を設けて振る舞うことにそれ以上の価値を感じています。
ボランタリーなモチベーションからの行動が定常化すると、たとえば「毎週 A さんが議事録書いてるなー」とか「毎月 B さんがコストの集計してるなー」という状況に陥る可能性があります。これは「議事録書き」や「コストチェック」がチームとしての必要な振る舞いであるというコンセンサスが取られていない A さんや B さんに甘えた状態ですし A さんや B さんがその気をなくしたら終わりです。また、C さんや D さんのこれらの振る舞いに対するチャレンジの機会を奪っていることにもなります。初期衝動としては誰かのボランタリーでも、それがチームに共有され当番のタスクとして設定され可能であれば自動化する、というフローになるといいなと思っています。

振り返り

半期に一度、KPT を用いて振り返りを行っています。
最近は上がってくる Problem が少なくなってきました。これは小さなうちに問題の芽を詰めているのかもしれません。日常のコミュニケーションの賜物です。あるいは KPT という振り返りフレームワークがチームにフィットしていないのかもしれません。このあたりを含めて見直していきたいと思います。

課題

最近感じている課題を少し。

中長期ロードマップに記載のタスクがなかなか消化できない

どうしてもタスクの消化フローが Last In First Out になりがちで「重要だけれど緊急でないボリュームの大きい」タスクのスケジュールが後ろに後ろに追いやられてしまいます。スケジュールは「目安」であり変更すること自体についてはネガティブな位置づけはしていませんが、着手自体が遅れてしまったり取り掛かったはいいけれど進行中のまま停滞しているものなどの扱いをまだ上手にできません。

タスクの領域の幅が広すぎる

細かくは言及できませんが「インフラチーム」という名前からは連想できないような雑多なタスクがスタッキングされています。これはチーム外から降ってくることも多いため、適切に「やらないこと」も決められるようなコミュニケーションをチーム外とやっていくとか、逆に人員を増やすことでキャパシティを広げていくなどしなくてはならないなと感じていますが、これといった決定打をいまだ見つけられていない状況です。

おわりに

書き出してみましたがなかなか難しいですね。すべてを網羅はできていませんし情報の粒度にもばらつきがあります。課題もこれ以外にもまだまだあります。
チーム運営の手法はチームの数だけ存在すると思います。チームメンバーの編成が変わったりチームメンバーの成長や変化に伴って運営方法も常に変えて行く必要があります。私たちも私たちが設定した「価値観」を体現できるように日々試行錯誤しています。
なお各職能チームは各々の裁量でチームを運営しています。各チームでの工夫や特色があります。 弊社では気軽に Slack でお話する機会やカジュアル面談 を設けています。「他チームはどんな感じ?」とか「これってどういうこと?」とか「ここを詳しく聞きたい」あるいは「こうしたらいいんじゃない?」などご興味を持たれましたらぜひともご検討ください。