ソフトウェアエンジニアが労働について情報発信するブログ

ブラック労働からホワイト労働まで経験したソフトウェアエンジニアが世の中にとって役立つことを情報発信していく。

「ソフトウェアにバグがないことを証明せよ!」というのはパワハラである

当ブログではアフィリエイト広告を利用しています

ソフトウェアには大きく二つのパターンがあり、一つはWindowsのソフト、スマホアプリ、カーナビの画像処理で少々のバグがあっても機敏に対応する、もしくは次のバージョンで対応すれば許される程度のパターンである。もう一つは自動車のエンジン制御、鉄道関係のシステム、金融システムのように、安全に関わるもの、バグが許されない品質最重視のパターンがある。

「ソフトウェアにバグが無いことを証明する」

このことは必要なことであると認識する方も多い。これを達成するには、どのようなプロセスで設計し、どのくらい検証、テストすればよいか? 気の遠くなる話である。

イメージとしては、かなり無理な要求であると思う一方で、正しいことを言っているように思えるので、何も言い返せなくて困る。はたして、これはパワハラに当たるのか?

パワハラに当たるとすれば、どのような裏付けでそのように言えるのか?

このような疑問や悩みを持つ、ソフトウェアエンジニアは多いのではないだろうか?

この記事では、そのような疑問や悩みについて、関連事項を調査した上での意見を述べたい。


1.ソフトウェアのテストでバグが無いことは証明できない

まず、結論から言うと、ソフトウェアにバグが無いことは示せない。ソフトウェアにバグがあることは示せる。テストとは、バグがあることを証明するために行うものである。

JSTQB (日本ソフトウェアテスト資格認定委員会)が定めるソフトウェアテストの7原則」というものがある。ここでは項目のみ挙げる。

  • 【原則1】テストは欠陥があることしか示せない
  • 【原則2】全数テストは不可能
  • 【原則3】早期テストで時間とコストを節約
  • 【原則4】欠陥の偏在
  • 【原則5】殺虫剤のパラドックス
  • 【原則6】テストは状況次第
  • 【原則7】「バグゼロ」の落とし穴

この記事で関係あるのは【原則1】【原則2】【原則7】である。

「あること」「起きること」を証明するのには1例をあげればいいだけである。しかし、「ないこと」「おきないこと」を証明するためには世の中すべてを調べないといけない。極めて困難どころか、気の遠くなる話である。なので、議論の場合には、まず「ある」という主張を先に証明することが現実的だ。「ない」ことを証明できないからといって「ある」とは言えないだろう。

無罪であることの証明、というのはとても難しい。すべての行動を明らかにしないといけないからだ。だからと言って「無罪であることを証明できないならあなたは有罪です」とはならない。有罪にする場合には、有罪であることを証明しないといない。

ソフトウェアテストや検証において現実的なのは、

「合意した確認範囲とテストケースにおいて、ユーザーに影響を与えるようなバグは見つかりませんでした。」
「これだけのテストを実施し、その限りにおいては、問題となる動作は確認されませんでした。」

という程度である。

余談であるが、私が過去に勉強した情報処理技術者試験の高度試験区分のひ一つ『システム監査技術者』の参考書に記載されていたのを覚えている内容が、

「○○の前提で監査を行った限りでは、特に問題となる点は見当たらなかった。」

という程度のものであり、

「監査をやれば完璧!」
「監査にクリアしたから、ウチの組織は全く問題ない。」

わけではないのである。ソフトウェア開発も同じである。

ソフトウェアに無知な顧客や組織内上層部から、

「バグはもうないよね!?」
「バグがないことを証明しろ」
「バグがないことを証明するために、〇〇の検証を計画せよ」

と力関係を背景に詰め寄られても、「もうバグはないです!」とは言えないのである。

ソフトウェア開発現場の管理職や上位者で「バグがないことを証明しろ。それまでは帰れない。」と言うと、その人はソフトウェアの素人であると断言できる。「ソフトウェアにバグがないことは証明できない」のである。

2.パワハラの定義と類型をおさらいしておく

パワハラ厚生労働省の定義によると、

  • ①優越的な関係を背景とした言動
  • ②業務上必要かつ相当な範囲を超えたもの
  • ③労働者の就業環境が害されるもの

①から③までの3つの要素を全て満たすものをいう。
なお、客観的にみて、業務上必要かつ相当な範囲で行われる適正な業務指示や指導については、職場におけるパワーハラスメントには該当しない。

詳しくはこちらを見てほしい。
www.no-harassment.mhlw.go.jp

続いて、パワハラの6類型(パターン)を項目だけ紹介しておく。

  • (1)身体的な攻撃
  • (2)精神的な攻撃
  • (3)人間関係からの切り離し
  • (4)過大な要求
  • (5)過小な要求
  • (6)個の侵害

詳しくはこちらを見てほしい。
www.no-harassment.mhlw.go.jp

パワハラの定義と類型については、以上のように説明されている。しかし、現実には皆が皆、これらを理解していないし、色々なところでパワハラが発生している。パワハラ発生とまではいかなくとも、グレーゾーン、パワハラ体質といった状況がよくある。

顧客や組織の上層部から力関係を背景に詰め寄られ、職場のモチベーションがダウンしたり、パワハラ体質や長時間労働で従業員が疲弊したり、心身に不調をきたし、優秀な人材の離脱、最悪の場合過労死や過労自殺が起きてしまう。第3者から見ると、異常でしかないのだが、当事者たちはなぜか頑張ってしまう。

3.なぜ「ソフトウェアにバグが無いことを証明せよ」というのはパワハラなのか?

ここまで、

「ソフトウェアのテスト」
パワハラの定義と類型」

について記載してきた。この2つを組み合わせればおのずと答えは出てくる。

繰り返すが、「ソフトウェアにバグがないことは証明できない」のである。JSTQBが定める「ソフトウェアテストの7原則」のうち、この記事に関係あるのは、

  • 【原則1】テストは欠陥があることしか示せない
  • 【原則2】全数テストは不可能
  • 【原則7】「バグゼロ」の落とし穴

の3つである。

次に、パワハラの定義の3条件。

  • ①優越的な関係を背景とした言動
  • ②業務上必要かつ相当な範囲を超えたもの
  • ③労働者の就業環境が害されるもの

6類型な中から関連する2つ。

  • (2)精神的な攻撃
  • (4)過大な要求

ソフトウェアに無知な顧客や組織内上層部から、「バグがないことを証明しろ」と力関係を背景(①)に詰め寄られ、「ソフトウェアにバグがないことは証明できない」(【原則1】【原則2】【原則7】)にも関わらず、これを要求される(②)。

その結果、職場のモチベーションがダウンしたり、パワハラ体質や長時間労働で従業員が疲弊したり、心身に不調をきたし、優秀な人材の離脱、最悪の場合過労死や過労自殺が起きてしまう(③)。

従業員に対して心理的に圧迫させ、「緊張感を持たせる」と謳いながら、「恐怖感でコントロール」している「精神的な攻撃」(2)となり、「過大な要求」(4)どころか不可能な要求である。

ソフトウェアテストの7原則」と「パワハラの定義・類型」を照らし合わせると、ぴったり上記のことが言えてしまうのである。

本記事では「ソフトウェアテスト」について述べたが、ソフトウェア開発は簡単なものではない。ソフトウェア開発組織の管理職、組織の上層部、ソフトウェア開発依頼組織は「ソフトウェアについての理解」と「パワハラについての理解」の両方が求められる

一方、ソフトウェアエンジニアは「ソフトウェアについての理解」と「パワハラについての理解」の両方が出来ている企業へ就職、転職した方が良いことは間違いない。

転職ドラフトは年収UP率93.8% / 平均年収UP額126万円と圧倒的な年収UP率を誇るエンジニア向け転職サービスです。審査に通過した優良IT/Web系企業約150社が参加しており、企業がダイレクトスカウトを行うため、質の高いマッチングにより、前述のような高い年収UP率を実現しています。「現年収を元に内定年収が決まる」ことは一般の転職エージェントにありがちですが、こちらは現年収非公開で転職が可能であり、スカウト時点で内定年収を提示いただけるため、求職者にとってありがたく、効率の良い転職活動が可能となります。年収アップを目指したい方は、是非ご検討されてはいかがでしょうか?




IT・Web系を専門とする『レバテックキャリア』は、2021年1月時点でサービス利用者数20万人突破し、年収アップ率7割を超える実績を持つ、「ITエンジニアが利用したい転職エージェント」として知られるエージェントです。高い専門性を持つアドバイザーがキャリアの選択肢を洗い出し、5000件以上のハイクラス求人の中からご登録者様のパーソナリティや志向性に沿い、まだ出会えていない理想の求人のご提案が受けられます。取り扱い企業も、大手IT企業からWeb系企業、スタートアップまでを幅広く網羅しております。IT/Web系エンジニアの経験者の方にとっては、是非登録しておきたいエージェントです。



4.発注側・受注側ともにソフトウェアエンジニアの労働環境に配慮せよ!

「ソフトウェアバグがないことを証明する」ことは不可能だが、世の中でバグが発生し、安全・生命におよぶ被害、経済への打撃、金銭に関する被害はあってはならない。

開発するソフトウェアが関連する製品・サービスの様々な使われ方を想定し、十分な設計・検証・テストがなされるには、「ソフトウェアバグがないことを証明せよ」と根性論をもって詰め寄るよりも、ソフトウェアエンジニアの労働環境を良好にすることが求められるということを、システム開発の発注側も、受注側も理解しておくべきである。
o08usyu7231.hatenablog.com

某金融系システムのように、ソフトウェアエンジニアの労働環境悪く、必要なシステム構築(設計・検証・テスト)に十分な工数が取れなければ、心理的な余裕がなくなり、悪意や怠慢が無くとも、システムの利用者側に跳ね返るのである。膨大で複雑なソフトウェア開発を「短納期」で発注し、「ソフトウェアバグがないことを証明せよ」と行き過ぎた要求をするという前段こそ改め、ソフトウェアエンジニアの労働環境に配慮した進め方が求められるのである。

o08usyu7231.hatenablog.com
o08usyu7231.hatenablog.com

優秀なソフトウェアエンジニア(テストエンジニアも含む)は、粗悪な要求元に潰されることなく、健全な環境で最大のパフォーマンスを発揮してほしい。粗悪な要求元は廃れ、健全な組織のみ繁栄してくれた方が世の中にとって良いことは間違いない。