はじめに
今年もあっという間にこの季節がやってまいりました。
前回のアドベントカレンダーでは
「障害対策は開発チームと二人三脚で行こう!」として
開発チームと障害対策を進めようと記事を書きましたが
今回は更に踏み込んだ内容をお届けできればと思っています。
開発と進める障害対策の内容について
開発チームとの協力体制構築は前回の記事で説明させて頂いているので
今回は私が障害削減を実施するために行った対応について説明します。
開発チームとは下記の流れで障害対策を実施しました。
①開発とQAで障害再発防止を継続的にすり合わせるMTGの用意
②MTG前にQAから再発防止を実施したい障害の共有&参加者の選定
③MTGまでに各セクション(プランナー、エンジニア、QA)で再発防止案の検討
④MTGを実施し各セクションの再発防止案を持ち寄りすり合わせ
⑤再発防止案の実施
上記①から⑤の詳細は以下となります。
①開発とQAで、障害再発防止を継続的にすり合わせるMTGの用意
障害が0というのは理想としつつも
運用を続けていると大なり小なり問題は発生するかと思います。
私が対応しているプロダクトでも継続的に障害が発生していたので
障害再発防止は一時的ではなく継続的に実施する必要があると考え、
開発チームとはスポット対応ではなく、継続的に話し合う場を用意しました。
②MTG前に、QA側から再発防止を実施したい障害の共有&参加者の選定
基本障害周りはQAが管理している事が多いかと思います。
なのでQA側から再発防止を検討したい障害を選定し、関係者に共有する流れをお勧めします。
また、参加者についても、常に開発者全員が参加すると相当コストがかかってしまうので、
選定した障害にかかわるメンバーをMTGに呼ぶ形が良いかと思います。
③MTGまでに各セクション(プランナー、エンジニア、QA)で再発防止案の検討
MTG時に初めて再発防止案を検討していると時間が足りないので、
MTGまでに各セクション内で再発防止案を検討します。
どういう点に気を付けて再発防止案を検討しているかは後述します。
④MTGを実施し各セクションの再発防止案のすり合わせ
MTGの場では、自分のセクションで検討した内容を持ち寄り、
その再発防止案に考慮漏れ等が無いか。より効率的に対応できる方法がないかを、
他セクションにも確認してもらいながらすり合わせします。
⑤再発防止案の実施
MTGですり合わせた再発防止案を実施します。
実施できているかどうかは次回以降のMTGの場で確認したり、
JIRA等のプロジェクト管理ツールを使用して、再発防止用のタスクチケットを作成。
再発防止策を検討/実施出来たらタスクチケットをクローズする流れで進めます。
上記①から⑤の流れを続けることによって継続的に障害の再発防止対応を進めました。
再発防止案の検討について
また、特に気を付けていたのは各セクションで再発防止案を検討するタイミングとなり、
その際に重要視していたポイントを紹介できればと思います。
①確認を他セクションに丸投げしない
自分のセクションでの再発防止ではなく、例えばQAへの仕様共有を徹底する等、
再発防止を他セクションに丸投げする事はNGとしました。
(対策の一つとして実施する事はOK)
そういった再発防止案になっていた場合はMTGの場で、
まずは自分のセクションで対応できることが無いかをヒアリングし、
対策のすり合わせを行うようにしました。
②ツールや機能を欲しがるだけ
なぜこの障害が発生してしまったかの深堀りをせずに、
安易に自動化や補助ツールを求めることもNGとしました。
まずは、なぜこの障害が発生してしまったかの原因を明らかにし
そのうえで問題を事前に検知し防ぐ手順や工程を明確にする。
そして必要に応じてその手順の自動化や補助ツールの検討を行うようにしました。
他にも注意していたポイントはありますが、
特に上の2点は再発防止を開発チームと進めるにあたって重要視していました。
効果について
開発チームと連携してこれらの対策を進めることで
障害を前年と比較して約40%削減する事が出来ました。
QAだけでなく開発チームと一緒に発生原因を深堀りし、
他セクションではなく自分事として考え再発防止を検討/実施した事で
得られた結果だと思っています。
最後に
障害を減らしたいというのはQAだけでなく
開発チーム全体の思いでもあるかと思います。
改めてにはなりますが、
障害対策は開発チームを巻き込んで進めるようにしましょう!
ありがとうございました!