はじめに
こんにちは!コドモン プロダクト開発部でQAエンジニアをしている楚良(そら)です。
コドモンでは基本的に機能群ごとに職能横断のチームを編成しており、プロダクトマネージャー(PdM)・プロダクトデザイナー(PD)・開発エンジニア・QAエンジニアが一つのチームとなって開発を進めています。
今回は、アジャイル開発を取り入れている私たちの開発チームで、インプロセスQAがどのような動き方をしているのか、ある1日の流れを例に紹介していきます。
開発に携わる方、特にインプロセスQAの方に、コドモンでの働き方のイメージを掴んでいただければと思います。
チーム構成
私が所属する保護者機能系のチームは以下のような構成になっています。
- プロダクトマネージャー(PdM)1名
- プロダクトデザイナー(PD)1名
- 開発エンジニア 6名
- QAエンジニア 1名
ある1日のタイムライン
それでは、具体的にどのように動いているか、時系列で紹介していきます。
9:30 ~ 10:00:勤務開始
朝の時間は各自のペースで勤務開始となります。私は現在富山県在住のため自宅の仕事部屋からフルリモートで働いています! 私の所属する保護者系機能チームは遠方在住者が多く、北海道から九州まで各地から業務を行っています!
10:00 ~ 10:30:デイリー(チェックイン)ミーティング
基本的なコミュニケーションはGatherというバーチャルオフィスのサービスを利用して行っています。
デイリー(チェックイン)では、主にその日どう動くかを決めていきます。具体的には以下のような内容について話し合います。
- 各メンバーのその日の勤怠(早上がりや中抜け)などの共有
- 全体に問いかけたい事項の共有
- タスクの進捗の共有
- 時間が余ればバックログのタスクのリファインメント
Gatherでのデイリー風景
10:30 ~ 11:30:Datadogを見る会
Datadogとは、クラウドアプリケーションのためのモニタリングとセキュリティプラットフォームです。 毎週金曜日にはDatadog上で、1週間分のSLI/SLOや負荷状況をそれぞれペアになって確認していきます。
このブログを書いた直近では、SLOのエラーバジェットを消費し切っている機能があり、普段より時間をかけて原因を調べていきました。 (結果的には特に問題とならないものでした)
11:30 ~ 12:00:個別タスク開始
この日はフロントエンドで採用されているフレームワークのバージョンアップに伴うテスト依頼が他チームからあり、自チームの管轄機能においてどのようなテストを実施するかの方針をまずは固めました。
モンキーテストとして各チームに依頼が来ていたのですが、バージョン更新における変更点のドキュメントを読みつつ、通常業務におけるシナリオを基本としながら変更点が含まれるコードがないかを調査しました。 該当するものがあればそこもテストしていくという方針にしました。
開発エンジニアとペアでテスト方針を決めることで、技術的な部分も含めてその場でテストを考えられています。
12:00 ~ 13:00:お昼休憩
私はフルリモートで業務をしているので基本的に昼食は家でとっています。簡単に作れるものがいいので、パスタ(だいたいペペロンチーノ)を作るかカップ麺が多いです!
13:00 ~ 16:00:タスク再開
午前中に決めた方針のもと、テストすべき対象画面一覧をチェックリスト化し、ペアでテストを実施していきました。 結果的にアップデートに伴う不具合はなかったのですが、機能を全体的に見ていく中で既存機能の不具合を発見したり改めて対象機能への理解が深まったりと、学びの多い時間でした。
テストの実施もペアで行うことが多く、開発エンジニアとQAの視点で気になるところを探索的にもテストしています!
16:00 ~ 18:30:0.5投資
コドモンでは週の業務時間のうち0.5日分は業務時間の範囲で自己投資に充てられる「0.5投資制度」というものがあります。
個人でも複数人で一緒に勉強することも可能で、この日は生成AIに対して再現性の高い(不確実性をなるべく抑えた)プロンプトを探ってテスト設計時の壁打ちにできないか、個人的に取り組んでいました。
まとめ
コドモンにおけるインプロセスQAのある日を例に紹介させていただきましたが、動き方には以下のような特徴があると思っています。
1. ペアプログラミングでのテストプロセス
コドモンではQAエンジニアもペアプログラミングに参加し、テストの方針や設計を共に決めています。これにより、次のようなメリットがあると思っています!
- その場でフィードバックを受けながら多角的な視点でテストを設計できる
- 認識齟齬を早期に解消できる
- プロダクトコードの振る舞いを確認しながらテストを設計できる
また、テストの実施においても、QAエンジニアと開発エンジニアがペアで取り組むことがあります。これにより、テスト実行中に発見した課題や改善点をその場で議論し、次のアクションにつなげることができます。
2. フラットなチーム
職能横断でチームを編成しつつも、チーム内では課題に対して職種に応じた特定の役割のようなものはあまり持たず、フラットに議論し解決に向けて動いています。 そのため(今回のように)開発エンジニアが積極的にテストプロセスに触れていくこともあればQAエンジニアが実装に染み出すこともあります。
チームに入る際、軸として自身の職種はありつつも他職種の領域にも広く携わっていくような動き方になっています。 アジャイル開発でよく語られるシフトレフトも、この環境の中で自然に実現されていると思っています。
おわりに
コドモンではQAも開発チームに入り込む形となっており、紹介したようにシフトレフトが自然とできやすい環境になっています。 また、課題に対しフラットに議論できたりと品質について幅広く考えやすい環境となっています。
現在プロダクトをよくしていく仲間を絶賛募集中なので、もし興味を持っていただけましたら一度カジュアルにお話ししませんか?