atama plus Advent Calendar 2023 20日目です。
こんにちは!atama plusのigawyです。
本記事ではatama plusのエンジニア横断組織であるギルドの紹介と、ギルド活動を通じて学んだことを書いていきます。
組織横断課題に対する体制面からのアプローチの一つとして参考になれば幸いです。
ギルドとは?
atama plusにおけるギルドは、以下のコンセプトを持つ組織体です。
- 特定テーマに関して、必要な観点を網羅したメンバーが合議を行う
- 特定テーマに関する定点観測と方向づけ、優先順位判定を行う
ギルドの活動は目的によって様々ではありますが、Spotifyモデルにおけるギルドと近しいものになっています。
ギルド発足の背景
atama plusでは、開発の規模が大きくなり複雑性が増していく中で、組織横断的な課題が表出してきました。これらの課題は、課題の性質上開発チーム単独では取り組みにくく、解決へのアプローチに工夫が必要になっていました。
そこで、このような課題に対応することを目的としてギルドが発足しました。
発足当初はエンジニアのみでギルドを運営していましたが、現在では他の職種もメンバーに加わり、ギルドの数もかなり増えてきました。この記事を執筆している時点では社内に11のギルドがあり、エンジニアだけでなくQA、UXデザイナー等が関心のあるギルドに参加しています。
なお、発足当初はこの組織体のことを「委員会」と呼んでいましたが、後にギルドという名前に変更しています。atama plusはゲーム好きな社員が多いため、とても好評です。
さて、以降ではギルドの一例として、私が所属している自動テスト推進ギルドの活動について紹介します。
自動テスト推進ギルドの活動
ギルドの目的
自動テスト推進ギルドは、自動テストの重要性と保守性を組織・チームが理解し、改善努力を継続的に行える文化を醸成するための体制を整えることを目的として活動しています。
atama plusでは用途に合わせてテストフレームワークを使い分けています。そこで、テストフレームワークごとの知見を溜めつつ、品質の高いプロダクトを提供していくためにatama plusとしてどのようなテスト文化を醸成していくかを議論しています。
体制
先ほど述べた通り、社内では複数のテストフレームワークを扱っているため、フレームワークごとにギルドの分科会的位置付けであるパーティーを組成しています(パーティーの有無はギルドによって異なります)。本ギルドでは、Playwrightパーティー、Jestパーティー、pytestパーティーという3つのパーティーが活動をしています。また、ギルド/パーティーにはエンジニアだけでなくQAも参画しています。
(Playwrightの記事は21日目にギルドメンバーの@ikegagagamiが、Jestの記事は24日目に同じくギルドメンバーの@pandineerが執筆予定です。お楽しみに!)
活動内容
ギルドの活動内容の一部を紹介します。
- テストに関する全体方針の議論
社内プロダクトにおけるテストの種類や前提となる考え方を合わせるところから始めました。前提知識を揃えた上で、社内のテスト状況を把握しながら、今後の方針について議論しています。 - コードカバレッジの収集と活用方法の検討
現在はCodecovを利用して、週次でカバレッジを収集しています。品質の高いプロダクト開発をするためのデータの一つとして、カバレッジをどう活用していくか検討を進めています。 - テストに関する知見や取り組み共有
テスト作成者向けのドキュメントが充実しているパーティーの取り組みや、良い取り組みをしているチーム活動の共有をして知見を溜めています。また、Playwrightを使ったE2EテストはQAが先行してテストを作成してきたため、エンジニアにも広げるための勉強会を企画しています。
ギルド活動を振り返って
これまでのギルド活動を振り返ってみて、良かったこと、これからの課題を述べていきます。
良かったこと
-
大きめの課題の相談先がわかりやすくなった
ギルド全般に関して、チームで知見がないトピックや詳しい人に聞きたいことがあった場合に、相談を投げ込みやすくなったと感じています。誤解のないよう補足しておくと、atama plusのエンジニアは誰かが困っているとすぐにサポートしてくれるので、すごいスピードで課題が解決していきます。ただ、根本的な課題の検討や施策の実施が必要な場合は、このような組織があることで議論しやすくなっていると感じています。 -
テストを書くことに対する機運が高まった
これは自動テスト推進ギルドの振り返りです。もともとテストに対してネガティブなイメージはありませんでしたが、ギルドメンバーによる布教活動により、これまでテストがなかった部分にもテストが書かれるなど、良い影響が出てきています(弊社ではテストを書かないと@t_wadaさんのライオンではなくパンダ(@pandineer)が登場します)。 -
(良い意味で)競争心が生まれ、課題を解決したことも
atama plusではCIで自動テストを実行していますが、時間のかかるテストがありました。一時期、Jestとpytestでテスト実行時間削減の煽り合い競争が発生し、その結果、それぞれのテスト実行時間が半分以下になりました。
これまでは、テスト実行時間が長いという課題があった場合、エンジニア全体での課題認識はされますが、具体の検討は該当するテストをかいた人やスポットでの取り組みとなることが多かったと思います。ギルドやパーティーができたことにより、このような課題に取り組みやすくなったと感じています。
これからの課題
これまで知見の共有が中心になっていましたが、テスト戦略についてはまだまだ議論ができておらず、目的に掲げたテスト文化醸成まで至ってません。今後も継続して議論していきたいです。
まとめ
本記事ではatama plusのエンジニア横断組織である社内ギルド制度について紹介しました。自分のチーム以外のメンバーとの交流も楽しいので、ギルド活動を今後も継続していきたいと思っています。
この記事が組織横断課題へのアプローチの一つとして参考になれば幸いです。
明日は@ikegagagamiさんよる「開発プロセスでPlaywrightを活用して自動化を進めている話」です。
自動テスト推進ギルドでもホットな活動をしているPlaywrightに関する記事です。ぜひご覧ください!