HOME > 活動報告 > イベント報告 > JaSST Review'21
2021年10月22日(金) 於 オンライン開催
全国で開催されている JaSST シンポジウムの中で、JaSST Review はレビューを取り上げている。JSTQBでは、レビューは静的テストに含まれており、シラバスが改版されて、記載分量が約2倍になっている。レビューに対する関心が高まっていることがわかる。
今回のテーマは「価値を実現するためにレビューができること」である。有名なイラスト「顧客が本当に必要だったもの」に象徴されている。この話題に対して、うまくいっている事例を聞き、レビューの役割を掘り下げたい。
今年の講演者・事例発表者への依頼背景は以下の通り。
【講演者に依頼したポイント】
【事例投稿の採用理由】
本日紹介するリモートショッピングサービスは、地方に住む人、隙間時間で百貨店の接客を受けたい人、リモートで選んでから買いたい人などを対象としている。
昨年4月にプロジェクトが立ち上がり、初期開発期間3ヶ月を経て、昨年11月に発表した。サービス開始後は毎週リリースしている。社内からは「なんだかわからないけど、ものすごいスピード感で改善されていく」という感想をもらった。
百貨店の特徴は、多様な商品と対面接客であり、三越伊勢丹は店頭接客の元祖である。よって、三越伊勢丹におけるDXは、接客のDXである。接客するのは人間であり、ECサイトでの販売とは異なる。販売員がデジタルツールを使って接客するという新しい常識をつくる。
既存の先頭接客の仕組みと異なり、リモート接客はこれから業務を整理する必要がある。現場と一緒に試行錯誤しながら作り上げる必要がある。
プロダクトオーナー(以降PO)は4方向の仕事をする。上下が「意志決定者」と「関連部門」、左右が「お客様」と「開発チーム」とする。一般的には横方向が重要で、大企業では縦方向も重要。4方向に調整しつつ、アジャイルに進めることが求められる。
関係者が多いので、完全に調整するのは困難である。そこで、以下のアプローチを取る。
上記の3つの項目(※1~3)について、表現方法と注意すべきポイントを示す。
※1→エピック:案件の目的および価値を表す。具体的な実現手段に落とし込まない。
※2→サービスブループリント:お客様の行動、業務、システムの挙動をセットで表す。開発した場合の費用対効果を示す。これがないと価値が著しく下がるか?
※3→受入条件:ユーザー視点でどうなっていてほしいのか。シナリオテストができるレベルの情報を示す。
筆者はアジャイル開発の推進をしており、この事例は非常に参考になった。企業の背景に合わせて、進め方を細部に至るまで工夫しており、納得感があった。また、ケーススタディも具体的でわかりやすく、アジャイル開発を実践している多くの現場が参考にできるので、社内など様々なところで紹介したい。
要件定義書も仕様書もないアプリの開発現場に対して、QAの立場で関わり、関係者全員でテスト設計をしてリリースした。
まず、1時間程度全員で会話した。開発者からはアプリの操作や機能の細かい仕様に関する説明ばかり、QAからは製品の品質やリリース後のリスクの質問ばかりで、このアプリにどんな価値があり、どういった⽬的でリリースを計画しているのか、共通認識を持つことができなかった。
私は「できるだけチーム全員が気持ちよくリリースしたい」という思いの元、関係者全員が持っている知識を共有して製品に対する理解を揃える必要があった。そこで全員でモブワークをして、下記の成果物を作成し、リリースができる状態にするための改善をすることにした。リーンキャンバスは、私が一度やってみたいと思っていたので作ることにした。
このプロジェクトにかかわる関係者全員は本業以外の業務として取り組んでいたため、毎週1時間のミーティングを設定し、以下のような⽇程で全員がモブワークをする時間を確保した。成果物はMiro+Excelで共同作成した。QAが質問をしながらドライバーとして成果物を作成し、開発者が質問に回答した。レビューという観点では、お互いがレビューアやレビューイになった。
1. 多種多様な意⾒の取り込み(認識共有)と共通理解が得られた
リーンキャンバスの作成では、これまでの会話が1つに集約された。また、目標も「街中で隣の人がこのアプリを使用している」に決めることができた。ユーザーストーリーマッピングでは、アプリの利⽤ユーザーとアプリ操作の観点からストーリーを作成するため、ユーザー視点とシステム視点の両⾯から、関係者が持つ認識が共有できた。また、関係者同⼠が使う⽤語がそれぞれ異なることが分かったため、⽤語集を作ることによって会話での齟齬が減り、バグの発⾒や、次期エンハンスの内容の決定ができた。
2. ワークの中(その場)でスピーディーに全員が合意できた
ユーザーストーリーマッピングにより、アプリの全体像の把握と、リリースまでのストーリーの優先順位を合意できた。また、ストーリーの受け⼊れ条件からテスト観点表を作成したことで、製品をリリースする際に確保すべき品質と、リリース後でも確保可能な品質(リスク)が優先順位付きで表現でき、関係者全員がリリースの判断に対する合意ができた。
3. ⼀体感が高まり、同時に学びになった
関係者全員で何もない中から成果物を⼀緒に作成することにより、⼀体感が高まった。例えば、質疑応答の結果が成果物に反映されるため、懸念事項や次期エンハンスについて皆で決定している感覚になった。また普段テスト設計書を書くことのない開発者が、モブワークの時間内にできなかったテスト設計を「やっておきまーす」と発言し、宿題として持ち帰る場⾯はステキな光景だった。
今後は毎週1時間のモブワークを継続し、テスト実⾏のタスク管理、テストの⾃動化戦略、リリース後のリスク管理、次期エンハンスのタスク管理をバックログで⼀元的に管理する。
プロダクトをリリースしなければいけないという状況を全員で乗り切ろうという皆の思いが、モブワークという場でひとつになり、結実してリリースを達成したと感じた。ペアワークやモブワークは、分業制を基本としてきた現場では導入のハードルが高いが、この事例を参考にして、試してみて欲しいと思った。
レビューは、参加者が理想的に行動するという性善説を前提としているため、人の意志に左右される不安定な技法である。レビューに参加している人達は、レビューに期待しているものが2種類ある。純粋な成果物の品質と、レビューによって発生する副次的な効果である。副次的な効果の例としては、技術担当者の場合は承認欲求(技術者としてのリスペスト)を期待する。その期待が達成されないとレビューが不調に終わる。レビューを正しく機能させるためには、参加者の大事なものをケアして、いかにうまく人を稼働させるかが一番大事である。
レビュー停滞にありがちな症状を列挙する。
特に最初の3つは頻繁に発生する症状である。最初の症状に対する解説は以下の通り。
「技術論の衝突」では、ナレッジワーカーが自己の技術や考え方の正当性を示すため、win-loseで対応を行う。その結果、誰も本音を語らないレビューになる。ナレッジワーカーに悪気はなく、周りの沈黙は肯定、途中の反論は否定行為だと考えている。以後のレビューに対して担当者がレビュー実施を拒んだり、ナレッジワーカーに聞いてから設計などを始めるようになってしまう。そこで書面レビューを導入してみた。レビュー摘録を用意した形でのパスアラウンドで、必要な場合は簡易ウォークスルーも実施する。非対面、時間利用、議論の最適化のいい所をとるスタイルである。レビュー期間が伸びるなどのデメリットはあるが、特定の指摘項目に対しての対策をしっかり練ることができ、ナレッジワーカーの意見を聞く場を設けてリスペクトも表現できる。その結果、指摘密度の向上が見られた。
レビューを正しく機能させるためには、その環境も大事である。参加者の役割やその中にある価値観を意識する、心理的安全を考慮した人選や手法を選択する、人・環境・手法を正しくマッチさせる、などを整えることができれば、大きな効果が期待できる。また、レビュー技法だけでなく、ファシリテート術や、傾聴、交渉スキル、エンジニアリング手段も重要だと再確認できた。
効果的な安心・安全があるレビューをするために、日々参加する人を意識して各環境に適した手段を日々模索していきたい。
レビュー停滞にありがちな様々な症状を、レビューに関わるそれぞれの立場の気持ちまで踏み込んで分析していたので、理解しやすかった。レビューは性善説だからこそ、安心安全な場作りが大切ということを改めて心がけたい。
テスト管理ツールを作っている。遠藤氏が開発役、松木氏がPO役である。ビジネスの成長に合わせて進化・改善したい。変わる市場環境やユーザーの反応を元に、柔軟に対応したい。
そのためには、保守性の高いコードを維持することが大切である。徹底的に無駄や矛盾を削らなければならない。プロダクトの本質を追求してシンプルな作りを維持することは、保守性の高いコードを維持することにつながる。
機能を増やすのは簡単だが、削るのが大変である。「いるそれ?」と問いかけるなど、機能が増えないようにしている。
機能について、POと開発者の両方の視点から、適切さと複雑さのギリギリを見極める。徹底的に対話を繰り返すことが大切である。QAの立場としても、ここの議論が不足するとバグや脆弱性が入り込むと感じる。
本当に必要な機能を見極めるには、プロトタイピングを繰り返したり、本質的な機能は何かを徹底的に議論して仮説を立てる。正解は誰もわからない。
バックログに上がるものは、以下の観点だが、(3)を最優先にしている。
(1)に関して、お客様は本当に必要なものを脇に置いて、機能名を言う傾向が強い。欲しい要件の後ろに真の要件が隠れている。それを見つけ、削って磨く。例えば、特定ユーザーにしか配信されないベータ版を作り、フィードバックをもらうと、意外な使われ方をする、などの発見がある。内部使用ではデータ量やバリエーションが足りない。
POもエンジニアも遠慮しない。遠慮して作った機能は後で酷いことになり、後悔する。機能を盛るよりも削るほうが遥かに難しい。どこまで削れば使い物にならなくなるのか、が難しい。「あったら便利かも」は、やらないほうが良い。
これとこれを組み合わせるとこれができる、という発想は危ない。「連携」は要注意なキーワードである。多くの場合、複雑さが増す。大切なのはPOの視点と開発者の視点の両方で違和感のない形を探し続けることである。「本当に必要?」「他の形ない?」と常に問いかける。
最後に、POの回想シーンを付ける。
渋谷にあるソニックガーデンを訪問し、クラウドで使えるちょうどいい感じのテスト管理ツールを作りたいと伝えた。「Excelでいいじゃないですか。」と返され、なぜExcelではダメなのかを説明するのに6週間かかった。最初の半年は1行もコードを書いていない。今作っているものも3~4ヶ月かかっているが、その期間の大半を議論に費やし、MVPは2週間程度で開発した。また「仕様書を作ったほうがいいですか?」と聞いたが、「それより、なにをやりたいのかを教えてほしい」と返された。最初は機能を言ってしまっていた。そこから、誰の役に立つのか、どういう時に役立つのか、を考えるようになった。ユーザーのペインポイントは何か、ツールユーザーであるテスト技術者にとってどうなったら嬉しいのか、などを考え続けた。最初は噛み合わず、知恵熱が出た。二人三脚で、壁を作らずに進めてきたと思う。
ソニックガーデンの取り組みには前から興味があったが、具体例を通して知ることができて良かった。プロダクトオーナーと開発者が密度濃く会話し、決して妥協しない姿勢を貫くことが、良いプロダクトにつながるのだと実感した。
前半はモデレータからの質問に回答、後半は参加者からの質問に回答する形式で進められた。
以下、発言者は名前の先頭一文字を表記する。
後半は参加者からの質問に回答した。
レビューは "Re-view" であり、もう一度見るということである。それはレビューミーティングに限ったことではない。本日の発表を通して、価値に向き合っているのか、を改めて考えることができた。来週から、今日の内容を役立てていただきたい。
JaSST Review は毎年新鮮なテーマを掲げて開催されており、気づきが多い会である。近年、正解がわからない状態で試行錯誤しながらプロダクトを作っていく状況が増しており、2つの講演はおおいに参考になった。環境も規模も異なるが核心は同じなので、その核心を外さずに、これらを組み合わせれば幅広い現場で応用できそうだと感じた。
記:和田 憲明(ASTER)