• GIZMODO
  • FUZE
  • DIGIDAY
  • gene
  • gene
  • cafeglobe
  • MYLOHAS
  • Glitty
  • roomie
  • machi-ya
  • GIZMODO
  • DIGIDAY
  • gene
  • cafeglobe
  • MYLOHAS
  • Glitty
  • machi-ya
  • roomie

ライフハッカー編集部  - ,,,,,  08:00 PM

書評:『パーフェクト ソフトウェア』

書評:『パーフェクト ソフトウェア』

100827Weinberg.JPG


編集委員のひらたです。

いつの間にやら8月も終わりが近付いてきました。東京は猛烈な暑さが続きますね。一体、この暑さはいつまで続くのでしょうか。最近のデータセンターは暑さを避けて寒冷地を目指すそうですが、もしかすると人間も気候のよいところに移動したほうが、TCOを低減できるんではないかと思う今日このごろです。

さて、今月のライフハックはワインバーグさん(公式サイトはこちら)の『パーフェクトソフトウェア』の書評をお届けしたいと思います。

この本は、ソフトウェアの「テスト」について書かれた本です。ソフトウェアのテストなんてライフハックと関係ないじゃないか、と思われるかもしれませんが、この本に書かれていることは、様々な場面で応用が効くんじゃないかと思いますので、書評といいつつ、本の筋は気にせずにピックアップしてみたいと思います。

 


そもそも、なんでテストをするんでしょうか。完璧なソフトウェアを作っていればテストの必要なんてないんじゃないか、と思った人、正解です。この本、パーフェクトソフトウェアでも完璧でないからテストをするということが書かれています。さらにソフトウェア同様、「完璧なテスト」もありません。なので、テストは失敗のリスクを減らすものでしかありません。そもそも完璧を追求するのは間違いなのです。

完璧でないテストですが、実施するにはコストがかかります。ありとあらゆる、すべての項目をテストしたりするには膨大な費用がかかってナンセンスですね。テストはリスク回避に必要な情報を集める手段、コストに見合うだけの価値がある情報が得られるかどうか、なのです。得られた情報は、なんらかの判断、決定を下すために利用します。利用しないなら...。

テストは、実はいろいろなプロセスの組み合わせです。発見、再現条件の絞り込み、バグの特定、重要度の決定、トラルシューティングなどのプロセスだけでなく、学習のためのテストも重要なスキルといっています。マニュアル通りに動くかどうか、だけでなく、自分のやりたいことをどのようにすれば実現できるのか、実際に使って推測しながら試してみることで、なにか重要な情報が得られるかもしれません

ところで、ソフトウェアのテストは、心理学にルーツがあるそうです。心理学といわれてもピンとこないかもしれません。例えば、テストの結果、問題を発見したら報告しますが、報告したからといっていつも感謝されるなんて限りません。問題を知ることを脅威と感じるときもあります。「ああ、これで出荷が遅れる。なんてとんでもない問題を発見したんだ!」とか。エンジニアであれば「オレサマがこんな間違いをするなんて。バカなのがみんなにバレちゃうじゃないか」と恐怖を感じてしまう人もいるかもしれません。発見した問題を報告しただけなのに、怒られちゃった経験のある人もいるんじゃないでしょうか。これを本書では「知りたくない情報への免疫反応りたくない情報への免疫反応」といっています。いい言葉ですね。恐怖を手なずけるためには、まず恐怖を見つけること、クリティカルシンキング、そして練習だそうです

また、ソフトウェアテストを難しくするのには、人の野心が関係しているそうです。人の野心は大きくなるもの、規模が大きくなると、規模の経済で単価は安くなりますが、失敗のコストも大きくなります。大きいほど失敗が起こる可能性がある場所が増えますし、原因を絞り込むことも難しくなります。大きいと修正も大変ですし、稼動させつづけなければ機会損失コストも大きくなります。規模とコストは非線形の関係なので、システムを小規模に保つのがポイントです。確かにそうですね。

どうでしょう。ソフトウェアでなく、普通の仕事のときにも応用できることが本書にはたくさん詰っているような気がします。まあ、感情をもった人間のやることなので、いつも合理的でいられるわけでもありません。改めて肝に命じたいと思います。


ライフハッカー[日本版]編集委員・平田大治)
 

MORE FROM LIFEHACKER

powered by
    
    
    
  

Kotaku

Recommended

© mediagene Inc.