HOME > 活動報告 > イベント報告 > JaSST'19 Niigata
2019年7月19日(金) 於 まちなかキャンパス長岡(新潟県長岡市)
今回で第9回目の開催となったJaSST新潟は、会場を新潟市から長岡市に移し開催した。
テーマは「効果的で効率的なレビュー」である。ソフトウェアを動かさずに行う「静的テスト」に位置付けられているレビュー技術を取り上げた。プログラムは基調講演および事例紹介2件で、レビュー技術の全体像からコードレビューまで実践的な情報を共有した。各講演資料は公式サイトにて公開されているので、あわせてご覧いただきたい。
本報告では、各セッションでの講演概要をお伝えする。
基調講演では、レビュー技術の全体像について解説された。レビュー技術の体系的な解説に加え、安達氏がこれまで蓄積してきたレビューの問題点の解析結果から、それら技術を活用する上でどうすればキキメを得られるのかが語られた。
安達氏は冒頭に「レビューという活動は『レビュー』という範囲にとどまらないと思っている。日頃の業務のあちこちにレビューは存在する。例えば、承認依頼や同僚間での相談ごともそうである。ドキュメントに書かれていることを確認するだけがレビューではない。広く捉えたほうがよい。」として、レビュー技術はレビュー会だけで使うものではなく普段から意識して活用することが大切と意識付けした。
以下、講演の詳細を記す。
レビューのキキメとは「レビューにより起こる好ましい結果」である。好ましい結果を得るためにはレビューの終わりが、ぼんやりとしてはいけない。具体的なアクションが決まっていることが大切である。
「レビューが大切」とみんな言うが、教育が行なわれていない企業もあり、矛盾している。こういった状況ではキキメを得る素地が整備されていない。ぼんやりとレビューしてもキキメは得られない。
レビューは何故必要か、「人間は"とちる"」からである。レビュー対象であるソフトウェアは目に見えないため、レビューの開始時点ではレビューアそれぞれが持つレビュー対象(ソフトウェア)への"イメージ"や"認識"が異なっている。「このドキュメントが対象とするシステムはどのような価値や機能を達成するものなのか」「このドキュメントはどのような位置づけか」といったようなことをレビューア間で一致させることが重要である。レビューア間でイメージを一致させ、レビュー対象をよく理解することでより有効な欠陥を検出することができる。また、検出した欠陥からレビュー対象を理解できることもある。レビューを実施する中で、レビュー対象の理解と欠陥検出は相互に行なわれていく性質を持っている。
ソフトウェアの欠陥を見つけるためにレビューを活用する。レビューの利点は、欠陥を早期に検出し、修正できるということである。レビュータイプにはインスペクション・チームレビュー・ウォークスルー・ピアデスクチェック・パスアラウンド・アドホックレビューなどがある。また、リーディング技法もあり、それらを組み合わせることが必要である。このとき、レビュー関係者の人間特性を考慮しながら、レビュー設計を行なうことが大切である。レビューは、レビュー会が始まる前に勝負は決まってしまう。単なる資料読み合わせ会では、レビューのキキメは得られない。
レビューのキキメを得るためには次のことが必要である。
レビュー対象の品質が悪いとレビューの品質や効率が下がるため、むやみにレビューしないことが重要。また、目的(観点)を定めてレビューしないと、より重要度の高い欠陥を見つけることはできない。レビューで検出した欠陥や、レビューコメントはそのままにせず、確実にフォローすることが重要である。そうしないと、欠陥の摘出などの結果が得られなくなってしまう。
レビューを行なう上では次のことを考慮すると良い。
レビューを改善したい場合、レビューに関する問題の構造や因果関係を捉えておかないと路頭に迷う。一般的に「改善」にかけられる工数は少ないことが多い。解消すべき問題をきちんと定め、目的を持って取り組むことが大切である。
今日学んだことは、最低3回やってほしい。そうでないと身につかない。今日学んだことを実践した場合、一回目は成功する人もいれば失敗する人もいるかもしれない。失敗した人はそこでめげないことが大切。また、成功した人もたまたま成功したかもしれないので気を抜いてはいけない。3回くらい実践しないと本当の意味では身につかないので、是非継続的に取り組んでほしい。
聴講者は終始熱心にペンを走らせ、ときに大きく頷いており、沢山の気付きが得られたようであった。
氏の講演からは「レビューをきちんと技術と捉え、そのうえで人間の特性を充分に考慮して、レビューを組み立てて行くべき」との主張を強く感じた。ともすればレビューは形式的な行事に陥ってしまうこともある。今回得られたノウハウ・知見・問題意識を今後のレビューの改善に生かしていきたい。
ジェイマックソフトはエンタープライズ系のシステム・ソフト開発事業を行なっている。
本セッションでは品質を確保するための取り組みが紹介された。
以下、概要を記す。
ジェイマックソフトでは、開発における品質確保のために、教育、レビュー、テストの3つの観点を設け、施策を立てている。品質確保に取り組む理由は、品質が低いと顧客リリース後に何か問題が生じ、瑕疵責任が生じる可能性が高くなってしまうからである。来年の改正民法により請負契約における瑕疵担保責任が5年に延びることから、より品質が重要になってくる。
品質を確保することは大切であるが、過剰品質になってしまってはよくない。顧客から求められるままに合意したり、過去の合意事例をそのまま当てはめて合意したりするのではなく、受注側もその都度きちんと開発や検証の範囲、方法を検討して、そのうえで合意することが必要である。このとき、目が行きやすい機能要件に加えて非機能も重要である。IPAの「非機能要求グレード」などを参考に合意していくのがよい。
開発局面では、次のような取り組みを行なっている。
品質は結果では無く「作り上げるもの」である。皆さんにメッセージとしてお伝えしたい。
本事例では組織的な品質確保のためのノウハウが語られた。聴講者の多くは受託開発に取り組む企業に所属している人が多いようで、本事例は参考になるのではと思った。本事例では、ビジネス形態や自組織のあり方を考えながら施策を打ち、そこにレビューなどの技術がかみ合って、効果を生んでいる。レビューだけで無く他の技術や動向も視野に入れながらプロセスを構築していくことは大切である。レビュー技術(と周辺の技術)を組織に定着させるにあたり、本事例での取り組みは多くの人に参考になるのではと感じた。
ウォーターセル社では自社アプリを開発している。
本セッションでは、コードレビューに関する取り組みが紹介された。
以下、概要を記す。
ウォーターセルでは基本的に全てのコードはコードレビューしており、具体的には「プルリク」で実施している。
本セッションではコードレビューのメリットとデメリット、デメリットへの対応について紹介する。
まず、コードレビューについては次のような印象を感じている。
このデメリットへの対応であるが、ツールを活用しており、次のようなものを使っている。
これらのツールによりコードレビューでのタスクやレビュー対象のチェックの自動化をはかっている。
ただし、ツールだけでもいけない。レビューの際には「心構え」が大切である。レビューをされる側もする側も意識しておくと良い。
コードレビューは品質確保に効果があるので積極的に取り組むと良い。また、レビューで得られる効果以外にも、さらなるチームワークの醸成など、良い効果も生んでおり、ウォーターセルではコードレビューは文化として定着している。
コードレビューによる品質確保も重要であるが、松井氏の講演からはむしろコードレビューを通じた心理的安全の醸成への取り組みではないかという感想を持った。コードレビューをいうツールを使い、お互いに意見しやすくする。プルリクの作成は相手への気遣いも必要で、それがコミュニケーションに良い効果を与えているように感じた。コードレビューというとツール面に関心が集まりがちだが、講演で紹介された心構えなど、人間の心理を大切にすると良いコードレビューが実現できるのではと、参考になった。
筆者は新潟のソフトウェアテストシンポジウムには初めての参加であったが、参加者と実行委員の熱気に圧倒された。他地域とはまた違った形の地元密着な雰囲気の中、積極的な議論がなされ、それは情報交換会の時間があっという間に過ぎ去るくらいのことであった。これに刺激を受け、筆者もソフトウェアテストについての技術は勿論、素晴らしさなどを伝えていきたいと感じた。
来年はJaSST新潟として10回目の開催とのことである。この熱気を引き継ぐであろう来年の開催が大変楽しみである。
記:池田 暁 (ASTER)