天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

第6回Enablersの会 エキスパートテストエンジニアはテストの知見をどう蓄積し活用しているか?に参加してきた

enablers.connpass.com

会の概要

以下、connpassのイベントページから引用です。

Enablersの会では、ソフトウェア開発の知見の共有を議論しています。今回はテストのエキスパートにテストの知見をどのように蓄積して、自分が他のソフトウェアのテストをするときにどう活用しているか、自分の知見をノービスや中堅に伝えるときにどのように伝達するかをパネルディスカッションの形式で議論します。

パネルディスカッション形式で進めます。

パネリスト : 長谷川 聡 氏 (ベリサーブ), 松木 晋祐 氏 (ベリサーブ), 山崎 崇 氏 (ベリサーブ)
モデレータ : 森崎 修司 (Enablersの会/名古屋大学)

イベントで話されていたこと

以下、イベントで話があった内容のメモです。

前段~知見活用レベル~

知見の活用レベルには、同一*1、周辺*2、経験なし*3があると考えているというお話がありました。

今回は知見活用について、この前段の話も踏まえながら考えるという会でした。

自分の知見を自分でどう蓄積しているか?

知見の記録は具体的にしているものの、コンポーネントレベルの知識やメンタルモデルは暗黙知として蓄積されているというお話がありました。以下、お三方が話していた内容の詳細を記します。

長谷川さん

面白いと思ったことをプロダクトと関連付けながら記録している。
情報がどういう体制になっているか、どういう作り方かになっているかを関連付けして管理している。

松木さん

知見となる本や論文を一括管理して全文検索できるようにしている。
また、プログラムに落とし込めるものはプログラムに落とし、そうでないものは研修として他人に教えるならどのように教えるか?を考えるようにしている。

山崎さん

松木さんと同様に一括管理して全文検索できるようにしている。キーワードに関してはある程度覚えている。ただ、たまにキーワードが思い出せずに困ることはある。
使えそうな表現は写経して、パワーポイントに落とし込む。その間に考えを深めるようにしている。

あるメーカーのビデオカメラのテストの知見を他のメーカーのビデオカメラのテストをはじめようとする他のテストエンジニア(ノービス、中堅、別のエキスパート)にどう伝えるか

以下、上の質問と同様にお三方が話していた内容の詳細を記します。

長谷川さん

エキスパートに対しては、どの本を読んでも書いてないであろうこと(プロジェクトの状況など)だけ教える。それ以外は何も伝えない。
伝えられても、エキスパートはその伝えた知識を使わないため。

中堅に対してはやり方を教える。情報は調べて分かることは伝えない。やり方を教えることで、中堅が今まで経験したことのない考え方を体感してもらい、視野を広げてもらう。

ノービスに対しては、事細かにやり方を教える。また、やる気もモチベーションは一定高いもののやる気が向かう対象が間違っていることがある(何のために仕事しているのかを知らないことがある)のでそこは注意して接する。
ノービスはやる気を意識せずにやり方だけを教えると、「何となく自分できるじゃん!」と勘違いしてしまうため、やる気に注意をしている。

松木さん

エキスパートに対しては自分がやったことを全て伝えてみて、相談する。相互レビューをお願いするようなイメージ。

中堅には得意なフレームワークを一つ選んでもらって、そのフレームワークを徹底的に考えて使ってもらう。「なぜ」を説明できるようにとか。この「なぜ」にもレベルがあるので、レベルアップを目指してもらう(レベルが上がると「なぜ」がより抽象的になるイメージ)

ノービスはまだ経験量が少ないので、型にはめて教える。

山崎さん

エキスパートに対してはひたすら質問してもらえる。こちらが伝えることでバイアスがかかるのが嫌なので、エキスパート側から気になることを聞いてもらい、答えられることは何でも答える。

中堅に対しては理解を対話で確かめた上で、チェックポイントを決めて成果物をレビューしながらアドバイスをする。

ノービスに対しては役割(やる範囲)をまず決める。要求分析やアーキテクチャ設計をやってもらうイメージが湧かないので、教えることがある意味ないような気がしている。なので、達成可能な目標を立ててあげて、ティーチングメインでサポートする。

未知のドメインでのテスト案件をマネージすることになり、自分がリーダーで部下二人とプロジェクトを始めることになった場合どうするか?

以下、上の質問と同様にお三方が話していた内容の詳細を記します。

長谷川さん

関係者を見てどのように作っているのかや、誰に聞けばどんな情報が仕入れられるのかというのを一通り抑える。知識のキャッチアップは最低限するが、(プロジェクトの後半から入ることが多いので)どうせ最初から入っている人には追い付けないので、元々いる人たちの力を借りる。

松木さん

ドメインルールを探し、見つけたルールを他の知見と比較する。
また、なぜその機能があるのか?という観点で仕様の読み込みを進めていく。

山崎さん

基本はモブワークで進める。一緒にテスト対象の情報を得て理解を深めるようにする。
ただ、ドメイン知識が足りないせいで到達できない地点はあるので、一定レベルまでいったらドメインエキスパート的な人や開発者にテストの要求を獲得していく。(アーキテクチャもある程度知らないとテストレベルが決められないので知識として獲得しに行く)
暗黙知になるのはある程度覚悟をした上で、知識をどんどん蓄積していく。

全体を通した感想

テストのエキスパートの方々の話ということで、中々レベルが高くて理解しきれない話も多かったのですが、森崎さんや参加者の方々の補足にも助けられ、エキスパートの方々がどのような視点を持っているのか、どのように知見を活用しているかを垣間見ることができて良かったです。

Enablersの会は久しぶりでしたが、今回も濃厚な会でした。

*1:同じソフトウェアの異なるバージョンの知見を活用できるレベル。知見定義はエキスパートの必要もなく、口頭やメモレベルの伝達で事足りる

*2:似た種類のソフトウェアの知見を活用できる。抽象化が必要で、伝達時にはメモだけではなく関連知識の説明も必要

*3:殆ど共通点がないソフトウェアにも知見を活用できる。どういう風に知識を活用しているかはよく分からないので、ここを今日のイベントで教えて欲しい