見出し画像

IT古典良書を読み解く《第12回》「なぜテスターが必要なのか? ~ テスターを雇わない(間違った)理由、ベスト5~」

第12回 Joel on Software(ジョエル オン ソフトウェア) 〜その7〜
「なぜテスターが必要なのか?
~ テスターを雇わない(間違った)理由、ベスト5~ 」



バグ

こんにちは。スクラムマスターの伊藤です。

突然ですがバグという言葉はご存知でしょうか? そして、いつ知ったものでしょうか? ファミコン世代はバグったという言葉と共にファミコンの動作がおかしいときにバグという言葉を知ったはずです(私もです)。

今でもアプリにバグが多いなどレビューに書かれることがあり、一般的な用語として定着した感があります。バグ(bug)とは英語の虫という意味ですが、ソフトウェアの不具合のことを指します。ソフトウェアにはバグが付きものですが、このバグを検出するのがテストの役割となります。そして、テストを実施する人のことをテスターといいますが、今回はこのテスターについて読み解いていきます。

引用: Joel on Software
191ページ「第22章 テスターを雇わない(間違った)理由、ベスト5」
(原文)
Top Five (Wrong) Reasons You Don’t Have Testers

(日本語アーカイブ)
- 残念ながら見つからず原文を翻訳してみてください

「なぜテスターが必要なのか」
なんとこちらは単行本未収録! なのに日本語アーカイブはある。なぜかって? 世の中は想像以上に複雑で奇妙なことが起こるのさ。

(原文)
- Why testers?
(日本語アーカイブ)
- https://bit.ly/3dfNEk7

《よもやま話》

Top5がベスト5と訳されていることに気付いた方もいるかも知れませんが、英語でのBestはその名の通り、1番のことを指すためBest 5といった使い方はせずにTopを使うそうです。何故、日本ではベスト○が定着してしまったのかは諸説ありそうですが、伝説の音楽番組「ザ・ベストテン」の影響が大きいかと思われます。
ちなみに5 bestという使い方はあるのですが、意味が変わってくるので割愛します。

テスターはいる?

ジョエルテストの質問の1つである「テスターはいる?」ですが、日本ではまだまだNoというプロジェクトも多いかも知れません。ジョエルテストの解説をみてみましょう

あなたのチームに、プログラマ2~3人につき最低でも1人の割合で専任のテスターがいなければ、バグだらけの製品をリリースするか、あるいは時給30ドル(月単価 50万円程度)のテスターにできることを時給100ドル(月単価 150万円程度)のプログラマにさせて金を無駄にすることになる。テスターの費用をケチるということは非常に不経済であり、多くの人がそのことを理解していないのに驚くばかりだ。

実際のところ、エースプログラマーにテストはさせずに新人にさせているというプロジェクトも多いかもしれません。

しかしながら、作った本人がテスト、まだシステムに不慣れな新人がテスト、テストの専門家がテストしたプロダクトはどちらの品質が高いと思いますか? という点に尽きるかもしれません。

では、専門のテスターがいないプロジェクトはどうしたらいいでしょうか。声を挙げてもタイトルにある理由で断られてしまうかもしれませんので事前に理論武装してテスターをプロジェクトに召喚しましょう。


テスターを雇わない(間違った)理由、ベスト5

1. バグは怠惰なプログラマから出てくる

プロジェクト現場にいる人からすると信じられないことですが、こう考えている方がいるそうです。

「テスターを雇うと、プログラマがいい加減になって、バグだらけのコードを書くようになる。テスターを使わないことで、プログラマに最初から正しいコードを書くように強いることができるのだ」 

┐(´д`)┌ヤレヤレ

本当にこういう風に考えている人が存在するということ自体が恐怖ですが、Joelはこう反論してくれています。

バグは、その定義からして漏れ出るものであり、プログラマは自分のコードにあるバグには気づかないものだからだ。多くの場合に、バグを見つけるためには他人の目が必要となる。

2. 私のソフトウェアはWeb上にある。バグはすぐに直せる

ソウダネ(・ω・`;)

おっと、この言い訳は現在でもよく使われるバグありの製品をリリースしてもパッチで直せばいい症候群ですね。大きな社会問題ともいえそうです。

静的なページであれば、こっそり修正することも可能ですが、例えばECサイトなどではメンテナンスとして1度サービス停止なども必要で、直すのは簡単でもリリースするのは影響が大きい場合があります。


3. ユーザーがソフトウェアをテストしてくれる

(||゚Д゚)ヒィィィ!(゚Д゚||)

こちらはオープンβテストといった手法で、うまく使えば悪くないとは思うのですが、最近はオープンではなくクローズ(限られた人で)が主流になっているように感じます。

Joelは 

ああ、恐ろしい「●etscape的言い訳」だ

(一応、伏せました ヒント:ブラウザ)と言っています。

オープンβテストは、Joel曰くプログラムが半分完成、プログラマができたと言ったときにテストをせずに、Web上にリリースし、フィードバックを得て、再度リリースを繰り返し完成させるという手法です。

当然、バグだらけのためユーザーの印象は悪くなります。そして、大量のレポートは来るが、5~10個ぐらいの分かりやすいバグに集中し、検出が困難なバグはせっかくレポートしてくれても埋もれてしまうといった問題があります。ちなみに、そのバグレポート機能にバグがあったという笑えない話もあったそうです。


4. テスターとして優れた資質のある人間はテスターとして働きたがらない

(゚-゚*)(。。*)ウンウン

これはその通りでして、いいテスターを雇うのはとても難しいとJoelは言っています。案として派遣会社でQAチーム(Quality Assurance:品質保証)を作ってテストしてもらい、適正のある方を雇うという方法を提案されています、品質保証のアウトソーシングをしてくれる会社があるといいですが、そんな素敵な会社があるのか…|д゚)チラッ


5. テスターを雇う余裕がない!

「テスターはいる?」で述べた通りテスターを雇わないとプログラマ(または新人)にテストさせることになります。テスターは見つけるのが難しいとしても、プログラマより安く雇うことができるため、プログラマにはその時間を別の作業に当て、テスターにテストをさせたほうが経済的な上、品質も向上します。ちなみに、どのプロジェクトにも必ずQAチームがつきますとアピールすると優秀なプログラマが採用しやすくなるはずです。


《よもやま話》

Emoji(絵文字)が日本発祥でUnicodeに搭載されグローバルスタンダードになったことはそこそこ有名ですが、古(いにしえ)からの手法、顔文字は日本は横向き、欧米は横向きという違いがあったりします。日本は表現力豊かともみえますが、欧米はタイプライター時代から可能な文字で表現しているようです。
【日本】(^_^) (#゚Д゚) (≧▽≦) (´・ω・`) (T_T) m(_ _)m
【欧米】 :-) :-( :-D :-P ;-) :-O


テスターの効能

テスターの効能については、様々述べていますが、Joelはひとつ興味深いことを言っています。

信じられないかもしれないが、テスターを持つことの最も大きな効能は、プログラマの良い振る舞いに対して良い評価を与えることでそれを助長してくれることにあるのだ。


はい。フィードバックです。フィードバックが重要なのです。アジャイル開発の成功率が高いのも素早く頻繁なフィードバックによるところが大きいです。

褒めることが大事ともいいますが、突き詰めれば人は他者から称賛を受けることで行動することが出来るのかもしれません。テストも同様でバグを検出するというネガティブなフィードバックに加えて、ポジティブなフィードバックを得ることによってプログラマのやる気や幸福感、満足度が高まると言われています。


良いテスターとは?

ここまで読んでいただいて、テスターの必要性が理解できると共にテスターという職種にも興味を持っていただいたかも知れません。

Joelも良いテスターを雇うのは難しいことを再三言及しています。
そして、良いテスターの条件は以下のように挙げています。

●科学的。
●面白いパズルが好き。そのパズルが解くのに数日かかるような種類のものであっても構わない。
●系統立てて物事を考えたがる。
●大抵の場合、ソフトウェアやコンピューターを相手に働くのが好き。

そして、プログラムミング能力は問わないとのこと。最近、テスターに自動テストスクリプトを書かせることが増えてます。自動テストは便利ですが、他人のコードを評価するはずなのに自分のコードを一生懸命動かそうと本末転倒的になってしまうこともあります。

良いテスターを見極めるのは難しいため、非従来型の様々な人(Joelの挙げた例はテクニカルサポート、ティーンエージャー、大学生、パートで働いている退職者など)から探すことを推奨していました。

まだまだ、テスターがいないプロジェクトも多いと思いますが、品質向上のために間違った理由を看破して、品質の良いソフトウェア作成に望みましょう。

ただ、テスターを雇うのも大変そうだなと感じる方も多いと思います。
なんと偶然ですが(・ω<) テヘペロ 弊社では良いテスターを見つけるためCAT検定というWebテストにて適正を測るということを実施しています。テスターに興味を持った方、是非挑戦してみていただければ光栄です。
そして、テスターを雇いたい方もお問い合わせお待ちしています(ノ*・ω・)ノよろしく!


★IT古典良書を読み解く

__________________________________

執筆者プロフィール:伊藤 慶紀
大手SIerにて業務用アプリケーションの開発に従事。
ウォーターフォールは何故炎上するのか疑問を感じ、アジャイルに目覚め、
一時期、休職してアメリカに語学留学。
Facebookの勢いを目の当たりにしたのち、帰国後、クラウド関連のサービス・プロダクト企画・立ち上げを行う。
その後、ベンチャーに転職し、個人向けアプリ・WebサービスのPM、社内システム刷新など様々なプロジェクト経験を経てSHIFTに入社。
趣味は将棋、ドライブ、ラーメン、読書など

3分でわかるSHIFTについて
★SHIFTの導入事例はコチラ
★SHIFTの最新イベント情報はコチラ
★SHIFTの最新コラムはコチラ

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら  
https://recruit.shiftinc.jp/career/