MasaoApril's Library.

Software Testingなネタを書いてみた。

TEF東海勉強会参加レポート:SWKYT(ソフトウェア危険予知トレーニング)ミニワークショップ

 先々月になりますが2014年2月、静岡県静岡市TEF東海勉強会のミニワークショップ「SWKYT(ソフトウェア危険予知トレーニング)」の企画がありましたので、在来線で名古屋から静岡県静岡市まで、鈍行列車を乗り継いて参加しました。

SWKYTとは?

SYKYT実施に至った背景

  • 市場不具合の再発防止のため、実例を取り挙げたいが内容が生々しく、対策が打ちにくい。
    1. メンバーの中には、情報開示に消極的なメンバーが多く、失敗から学ぶ機会が少ない。
    2. 再発防止として、チェックリストを検討し、歯止めをかけるために運用するが、形骸化しやすくなかなか定着しない。
    3. 開発部署のコンテキストは共有しやすいが、新鮮味がないためマンネリ化しやすい。

SWKYT運営準備

  1. 実失敗事例を募集する。
    • 実失敗事例は、各メンバーが実感する内容が多いため。
    • アンチパターンといった、何に注意しますか?というよりは起こりそうなことを題材としたい。
  2. コンテキストを共有するため、抽象化する。
    • 抽象化する理由は、同じミスはもちろんのこと、類似ミスもしないよう、想像力を働かせたいため。
    • 類似した開発ドメインだと、状況がわかりやすい。
  3. メンバー構成
    • 仕様検討担当、技術営業、開発者など

SWKYT運営の流れ

  1. 司会者は、お題を読み「実はこんなことがあったんだよ」と実失敗例を提示する。
    もしくは、自分のグループにあった内容、自分が体験した内容に変えても良い。
  2. 教訓となるスローガンを参加者で考え、発表する。
    • スローガンは、印象に残りやすい。
  3. 3点を持ち点として投票し、優勝チームを表彰と副賞を授与する。
    • モチベーション維持のため。

お題(今回実施した内容)

『一部の仕様は「前のデバイス(製品)と同等」という前提で製品開発をしています。その後、起こりそうなことは何ですか? 』
  1. 【開発の状況等】
    • 「今回初めてお付き合いするお客様から、仕事を受注しました。この後起こりそうなことは?」
  2. 【何が起こりそうか、どのような危険が潜んでいそうか?】
    • 実はタイミングが違っていた。
    • (ハードウェアの)改訂版が違っていて、ソフトウェアでバージョンチェックしていた 。
    • 前開発の仕様書が無い。
    • 実は変更部分が○○%であることがわかった。
    • 実は、非公開機能を使用していた。
    • ミドルウェアと整合がとれなかった。
    • 前の製品での仕様は未完成で終結していた。
      • 実はコードの○○%は使われていない。
    • ○○レジスタの未定義だった部分が(知らないうちに)定義されていた。
    • ハードウェア(ASICやFPGAなど)の挙動が異なっていて動作しない。
      • 入力クロック信号のマージン不足など。
    • コンパイラのオプションで最適化を指定したら、タイミングやメモリマップ配置が変わった。
    • 仕様通りに動作するが、劇的に遅い。
    • 半導体チップのバグ回避対策が不要になり、副作用として誤動作するようになった。
  3. 【類似するような経験はあるか、疑似して考えられることは、それはどんなこと?】
    • ※2と同時に実施したため、割愛。
  4. 【どのようにすればよいか、実施できる対策を考えよう!】
    • ハードウェア視点で変更があると考える。
    • テスト項目を考える。
    • テストしないのはダメ。
    • 性能比較テストはやる。
    • 非機能のテストケースは、表現が難しい。
    • 何が良くなっているか?
    • 安くしたところはないか?
    • 鉛ハンダ→鉛フリーハンダに変わった。
    • 材料を変えたところはないか?
    • 変更を通知せよと営業に言う。
    • 組織構成で言えない。
    • ハードウェア設計とソフトウェアが違う。
    • 情報の入手元に注意する。
  5. 【同様なミスをしないための未然防止のスローガンや心掛けること】

       『ハードウェアの コストダウンは 要注意!』  
    
       『変わらないはず という思い込みが 命取り!!』   
    
       『同じだね 同じじゃないよ 変えるだよ』   
    
       『変化なし? ミクロとマクロで 疑ってね』  
    
       『双子でも 環境違えば 性格ちがう』   
    
       『変わらないのはあなただけ』  
    
       『変わらない でも電子君は 変幻自在』  
    
       『変化が 見えなければ 同等なの?』   
    

 紹介した内容は、ホワイトボードに書きながら進めました。どのような雰囲気だったか参考頂くため、内容の一部を下記画像に示します(※主催者から許諾を得ています)。

当日の雰囲気

所感

 参加者層は担当者/リーダ/マネージャと立場が異なっていますが全員組み込み系開発でしたので、コンテキストは共有しやすかったです。同じ時間&同じ場所でみんなと知恵を巡らせ、「問題対我々の構図」と「チームで考える」ということは、自律的かつ賢い組織へ進化するための第一歩と思いました。
 また、本稿を書いているときに思い出したのですが、朝のミーティング時にインシデントレポートを紹介してメンバーと共有し、「どのようなテストを実施すれば、このバグは見つかっただろうか?」とメンバーで話し合った結果、メンバーで検出したバグから「○○な機能が怪しい、△△なパターンでテストしていないよね?」と自然に考えるメンバーが増加し、バグを検出する能力が向上していると実感しています。