私達のレビュー技法（リーディング技法）

# はじめに
私達のプロジェクトで使っていたレビュー技法（リーディング技法）をまとめておく。

# レビューの目的
参考文献[1]で、レビューの目的を分類すると以下の3つになりそうということが述べられている。

* 検査（Check）・・・やらなくてはいけないこと（Must）
* 学習（Learning）・・・やるべき（Should）
* 強化（Enhance）・・・やりたい（Will）

# リーディング技法
参考文献[2]では、リーディング技法について、以下のように説明されている。
> リーディング技法とは、「目的」を達成するために、レビューアが「ドキュメント類をどう読み進めていくか」を具体化したものです。
> 「目的」に応じてどのリーディング技法を選ぶかが、レビューを効率的に進め、望んだ成果を得るための重要なポイントの1つとなるのです。

参考文献[3]では、以下のリーディング技法が紹介されている。

|名称|名称（カタカナ）|読み方の特徴|
|:----|:----|:----|
|Perspective-Based Reading|パースペクティブベースド|レビューアに特定の視点を割り当てて読む|
|Defect-Bsed Reading|ディフェクトベースド|固有の不具合タイプを抽出することに焦点をあてて読む|
|Checklist-Based Reading|チェックリストベースド|チェック項目として課題をあげ、抽出したい不具合を探して読む|
|Usage-Based Reading|ユーセージベースド|優先順位付けられた要求レベルのユースケースにより、重大な不具合の摘出に集中して読む|
|ad hoc|アドホック|特定のリーディング方法を用いない読み方（読み方はバラバラ）|

# ダブルチェックとクロスチェック

https://qiita.com/kazuo_reve/items/f6e26643dc390b4a4120

# レビューで大切なこと
参考文献[4][5][6]で清水吉男氏が、「代替案の評価」と「肯定眼」の大切さについて説明している。

## 代替案の評価

### 「設計の原理＝代替案を評価せよ」
> すべての工学分野での重要な側面は，複数のやり方から試行錯誤的に仕上げていくこと，これらのトレードオフ分析を行うこと，及び最終的に一つを採用することである．

## 肯定眼
### 「XDDPプラクティス路線図とパターン・ランゲージ ～時を超えた派生開発の道～」
> レビュー対象の成果物について、欠陥の指摘を行うだけでなく肯定意見も出すことを重視する。
> 改善は何か一つでも良いものを取り入れようという能動的な姿勢がなければ進まない。

### 「反省の落とし穴」
>「失敗のパターン」を焼き付けるのではなく、「上手く行くパターン」を焼き付ける。

# 私達のリーディング技法
私達のプロジェクトで使っているリーディング技法を以下にまとめる。

|名称|対象成果物|読み方|
|:----|:----|:----|
|アドホックレビュー|すべて|特定のリーディング技法を用いない（読み方はバラバラ）|
|チェックリストベースドレビュー|すべて|チェック項目として課題をあげ、抽出したい不具合を探して読む|
|インプットベースドレビュー　※1|すべて|入力文書との不整合を探して読む|
|変化点ベースドレビュー ※1|コード|変更前後の成果物の差分を読む|
|形態素ベースドレビュー ※2|仕様|形態素解析結果を入力に、曖昧な文を探して読む|
|HAZOP+DRBFM ※3|仕様、設計、コード|HAZOPで心配点を抽出し、心配点に焦点を当てて読む|
|コンペ風レビュー  ※4|コード|各担当者が同じ仕様を元に作成したソースコードの違いを読む|

※1 今回のまとめのために、勝手に名付けた技法名
※2 詳細説明は、論文「要求仕様に対する形態素ベースドレビューの提案」（ https://researchmap.jp/reve/published_papers/33955217 ）参照
※3 詳細説明は、発表資料「DRBFMにおける一人HAZOPの活用方法の提案」（ https://researchmap.jp/reve/presentations/35990407 ）参照
※4 別途詳細説明予定。

実際にプロジェクトで実施した結果、いくつかの考察が得られた。
得られた考察を、各リーディング技法のメリット・デメリットとして以下にまとめる。

|名称|メリット|デメリット|
|:----|:----|:----|
|アドホックレビュー|準備がいらない。|個々のレビューアの能力に大きく依存。|
|チェックリストベースドレビュー|レビューアの能力に依存せず、チェック項目に対する問題を発見しやすい。|チェックリストを佐生政する工数が必要。形骸化しやすい。|
|インプットベースドレビュー|入力文書との不整合を発見しやすい。|-|
|変化点ベースドレビュー|変更誤りを発見しやすい。|-|
|形態素ベースドレビュー|曖昧な文を発見しやすい。|内容の妥当性を確認するレビューが別途必要。|
|HAZOP+DRBFM|考慮漏れを発見しやすい。|内容の妥当性を確認するレビューが別途必要。|
|コンペ風レビュー|非機能の観点で、良い点を発見しやすい。|成果物の作成工数が倍必要。|

# 私達のチェックリスト活用法

https://qiita.com/kazuo_reve/items/c467504084ba3441101b

# おわりに
レビューの目的に合わせてリーディング技法を選択することが大切だと実感しています。
リーディング技法によって、検出できることが異なるため、どれか一つのリーディング技法を使えばよいのではなく、複数のリーディング技法を組み合わせて使う方針がよいと思われます。

# 参考文献
[1] 及部敬雄，「レビュー再定義」，JaSST Review'18，2018
http://jasst.jp/symposium/jasstreview18/pdf/S2.pdf

[2] 森崎修司，「ソフトウェアレビュー入門（3）　“読み方”を知って、レビューをもっと効果的に」，ITmedia エンタープライズ，2009
https://www.itmedia.co.jp/im/articles/0911/19/news106.html

[3] 誉田直美，「レビュー技術動向」，ソフトウェア品質シンポジウム2017，2017
https://www.juse.jp/sqip/symposium/archive/2017/day1/files/happyou_F1-2-2.pdf

[4] 清水吉男，「設計の原理＝代替案を評価せよ」
https://www.affordd.jp/koha_hp/SCNews/hpblock110/SCNews110.html#anchor830805

[5] 川口典子，「XDDPプラクティス路線図とパターン・ランゲージ ～時を超えた派生開発の道～」，Agile Tour Osaka 2018，2018
https://www.slideshare.net/NorikoKawaguchi/xddp-184637465

[6] 清水吉男，「反省の落とし穴」
https://www.affordd.jp/koha_hp/LectureSE/LecSE.hansei.html

[7] 竹下千晶，「レビューの質をモデル化する！」，Think IT，2009
https://thinkit.co.jp/article/867/1

[8] 風間裕也，「「超」やさしいレビュー ～開発とQAに壁はない！～」，JaSST'18 Kansai，2018
https://jasst.jp/symposium/jasst18kansai/pdf/S3B-1.pdf

[9] 岡本博幸．内山敬太，鈴木彩子，高橋一仁，西山茂，野中誠．「要求仕様書の特性に着目した個人レビュー手法の実験的評価」，SQiP研究会 2004年度，2004
http://www.juse-sqip.jp/workshop/seika/2004/6/6_report.pdf


# 関連記事
https://qiita.com/kazuo_reve/items/4ca6b29eaa0cd9adcbf8

https://qiita.com/ktanizaki/items/e6266899263e8f26b5e4

https://qiita.com/nh321/items/d889a396238ff61647c0

https://qiita.com/kaizen_nagoya/items/ecaeb2664bd53f8b9034

https://qiita.com/kaizen_nagoya/items/bcd97b3358f0ee244fe5

https://qiita.com/aut44takada/items/b2940b1fe2dcffd44241