
こんにちは!プロダクトマネージャーのさとうです。それにしても、今年は暑い夏から一気に冬がやってきましたね。秋はどこへ…というくらい季節の移り変わりが早くて、体調管理がむずかしい今日この頃。開発も同じで、段階を飛ばして慌てると後からしわ寄せが来がちです。最近、開発のやり方を少し変えたことで、プログラムの品質がぐっと良くなったので、その「しわ寄せ」を減らすのに効いた取り組みについて、お話ししたいと思います。
プロダクトマネージャーとして直面した課題
プロダクトマネージャーになって、自分が要件を取りまとめそれを開発メンバーに伝える立場になりました。自分には完成のイメージはあるものの、実際に出来上がったものとギャップがあることは多く、そこから修正となると、「この時間すごくもったいないな」といつも感じていました。これは開発メンバーに要件を伝える時に「行間」が生まれていたのが原因だと理解しています。「行間」によって仕様の勘違いが発生したり、詰めきれていない部分に気づけなかったり、後工程で大きな手戻りが発生したりといった問題が起こると考えるとしっくりきました。
従来のアプローチの限界
そんな課題を抱えながら、どうすれば開発の質を上げられるか考えていました。この「行間」を埋めるにはどうすればいいか。プロダクトマネージャーとして開発メンバーと協働する立場になってみると、「後でテストケースのレビューをして指摘するのであれば、先に網羅して欲しいテストケースを考える方がトータルで楽になるのではないか?」「加えて要件の意図も明確になり、行間を埋められるのではないか?」と考えるようになっていきました。
テスト観点を設計前に持ってくる
そこで試してみたのが、テスト観点の作成を設計前に持ってくることです。つまり、要件をまとめた後、すぐにテスト観点を考え、テストパターンを検討するようにしました。このアプローチの最大の魅力は、トータル工数を変えずに品質を上げられることです。従来の「後工程でテスト」から「前工程でテスト観点整理」にシフトするだけなので、全体の工数はほぼ変わりません。むしろ、後工程での手戻りが減ることで、結果的に工数削減に繋がるケースも多いです。
実際にやってみると、いくつもの効果が実感できました。まず、テスト観点を考える過程で、「この条件の時はどうなるんだろう?」「エラーケースはどう処理する?」といった疑問が自然と浮かんできます。これにより、設計前に仕様の抜け漏れや曖昧な部分を洗い出せました。テスト観点を考える過程で、要件から設計に落とし込む際の「考えきれていない部分」に気付けます。これが意外と多いです。要件書を読んだだけでは見えなかった、実装時の細かな条件や例外ケースが浮き彫りになります。
次に、テスト観点やテストパターンがあることで、開発メンバーに要件を伝える際の「行間」が大幅に減りました。「この条件の時は成功、この条件の時は失敗」という具体例があることで、仕様の意図が明確に伝わります。開発メンバー側から見ると、テストパターンがあることで機能の全体像(背景)を理解しやすくなります。「なぜこの機能が必要なのか」「どのような場面で使われるのか」という文脈が伝わり、実装時に迷いにくくなります。
また、テスト観点を先に考えることで、設計時に「テストしやすい構造」を意識するようになりました。結果として、保守性や拡張性の高い設計ができるようになったと感じています。
実践のコツとしては、「うまくいく場合」だけでなく、「うまくいかない場合」のテストパターンも必ず検討します。これにより、エラーハンドリングの仕様も明確になります。「0件の場合」「最大値の場合」「空文字の場合」など、境界値での動作もテストパターンに含めます。一人で考えると見落としがあるので、チーム全体でテスト観点をレビューする時間を設けています。特に、テスト観点を考える際にはQAエンジニアの知見があるとさらに良くなります。QAエンジニアは日々テスト観点やテストパターンを考えているため、見落としがちなエッジケースや、実際のテストでよく見かける問題点などを知っているからです。
トータル工数を変えずに品質向上
テスト観点の検討を設計の前段階にグッと前倒しして実施することで、要件の品質向上、開発メンバー間での認識のズレの削減、設計品質の向上、そして後工程での手戻りの抑制といった良い効果を実感しています。特にトータル工数を変えずに品質を上げられていると感じられるのはこのアプローチの大きなメリットだと思います。
このアプローチを事前にエンジニアにしっかり説明し、理解してもらったことも大きかったです。エンジニア自身が「この機能の真の価値って何だろう?」と深く考えるきっかけになったようで、以前に比べて建設的なアイデアを提案してくれることが増えました。これは嬉しい変化でした。
ただ、テスト観点検討にかけられる時間には限りがあります。なので、完璧(100点)を目指すのではなく、設定した期間内でできる限りのことをやり切る、というメリハリをつけて進めることがすごく大事だと感じています。
ちなみに、この記事を書いている間にも気温がまた下がってきました。今年は秋を飛ばして一気に冬が来たように、開発でも工程を飛ばすと後からしわ寄せが来がちです。テスト観点の準備は早めに、防寒対策も早めに、です!🥶
ユニファでは、新しい仲間を募集してます!
興味を持っていただきましたらぜひ採用ページをのぞいてみてください。