普段のお仕事を言語化してみるシリーズの第2段です。前回、普段のスプリントを言語化してみると言う記事を書かせていただいたのですが、あれから2ヶ月以上経ち生産性という言葉が何なのかが腑に落ちたため改めてそこだけをフォーカスして記事にしてみました。
生産性とはリリース頻度・量が多い状態を指すのだろうか?
以前の記事でリリース回数が1日2回ぐらい出来ており生産性が高いぜ イエーーーイ・・・と思っていたのですが、思わぬ落とし穴がありました。βリリース時にリリーススプリントをしてしまったのです。リリーススプリント(スクラムでは名前が付いている行為は大体アンチパターンです。)とは、機能追加が行われないスプリントになります。代わりに行われるのは機能の修正です。リリーススプリントは別名バーンスプリント日本語訳すると、炎上期間になります。つまり身の丈以上にリリースをしたとしても後にしっぺ返しが来てリリーススプリントや慢性的にバグチケット(プロダクトバックログアイテム)がバックログに存在し続け、機能追加が行えず生産性が低い状態を招いてしまっていたのです。また、リリース後にバグを抱え続けるということは低品質なプロダクトをユーザに提供することになり、ユーザが離れて行ってしまうリスクを抱えることになりビジネス的には大打撃であるということを自覚しなければなりません・・・。
なぜ、リリーススプリントを引き起こしてしまったのか
開発では、バックエンドのテストはほぼ完璧に行っており、フロントエンドでは出来うる限り単体テストを導入していました。しかし、リリース直前では検証環境を開発者が何となく正常系を一本通すだけの状態になっており、QAに依頼するテストはテスト設計がリリースの次のスプリントから開始され、実際のテスト実施は2スプリント(2週間)以降に行われていました。その間、発見されたバグはPOが判断し対応可否を判断し対応が必要なのであればバックログに乗るというフローになっていました。リリースを焦る余りそれが後に集約されリリーススプリントを引き起こしたと言う訳です。
対策と現状
その後、同じ問題を引き起こさないために対策が行われました。スクラムでは技術品質に関するタスクは、リリース前に行うことが鉄則となります。しかし、QAテストの実施が2スプリント掛かる状態でそれを実行することになればリリースは不可能になってしまいます。
そこで行ったことは、探索的テストの採用です。スクラム開発では一つの課題に対して、MVP(Minimum Viable Product)で提供することを推奨しています。それは、大きなテストを行わず限りなく最小の変更で、その変更範囲の周辺のみを重点的にテストすることで問題を短い時間であぶり出すことが出来ます。(※ 探索的テストに関しては、詳しくないため言及は避けます)。この対策により、リリース前の段階で問題を発見することができ、その場で手を打つことが可能になりました。またテストはQAと開発者のペアでテストを行うことで、仕様の確認がスムーズに行えたり、問題があったときに開発者がすぐ目星を付けられたり、テストの観点を学びとれたりなどの利点も享受しています。(本当にQA様様です・・・。)
もう一つは、e2eの自動化です。e2eテストは作成も実行も時間が掛かるため、正常系のみを行う最小限の導入ですが、検証環境に反映する前に開発が滞りなく行えたかを人間に依存せず確認が行えるため、とても効果があると実感しています。また、探索的テストではカバーできない今までの提供した価値が損なわれていないか(デグレがないか)の確認が簡単に行えるため、e2eテストが育てば育つほど効果は高いと実感しています。よくあるe2eテストの維持コストが高い問題ですが、正しくテストを設計してMVPを徹底すれば、問題は余り起きないと思っています(同僚がその記事を書いてくれるはずです)。
この二つの武器を備えることで、そもそも不完全な状態でプロダクトを提供すると言う事態を招くことが減り安定した開発・運用が行えると思います。まだまだ新しい試みのため、他の問題や改善できるポイントが出てくると思います(楽しみ)。一方で、数値上の生産性は以前より落ちてしまっているので、その底上げをどうするかも新たな課題として挙げられますが、これは本来の実力通りの数値になっただけなので、上げていけばいいだけです。今年も楽しいプロダクト開発になりそうです。
まとめと新たな課題
元々、品質面にはとてもうるさい性分であると自負していますが、リリーススプリントを招いてしまったことで、より強固にしていくことが生産性に繋がることだと痛感できました。さらに生産性が高いと実感できたとしても、ユーザにとって良い価値を提供できているかどうかはまた別問題になります。開発者は市場の変化にも敏感になり、ユーザへの価値とは何なのかを意識し続ける難しい職であるなと再実感しました。これからも精進し続けたいです。