システムにおける品質、というものがIT業界へほとんど浸透していないようだ。
大手ベンダーは品質管理に関する部署があることも多いので、とりあえずはマシである。しかし、私が携わった中小零細では品質に関して敏感なベンダーは、ほとんどなかった。あったところでもバグがないか、テストを丁寧に実施する、というレベルである。

品質、というものについて、残念ながらまだまだ意識が低いのだ。

実例をいくつか挙げる。

--------
例1:俺が作ったものなんだからケチを付けるな
というのはどうだろうか?

人というものは間違いを起こすもの。人を信用するか否かの問題ではない。こういうエンジニアの成果物の傾向としては「独りよがり」である。プログラムであれば仕様を無視している部分があったり、仕様であれば要件を無視している部分がある、という傾向があった。
これはエンジニアの品質の考え方として最低で、この業界からそのような輩は追放すべきだと思う。


--------
例2:テストは十分にしたのでバグはない。しかし、テスト結果資料はない。
というのはどうだろうか?

実際、バグはなかったのかもしれない。しかし、どこをどうテストしたかの観点が全く分からないなら、安心して使えるものと言えるだろうか。
テストシナリオとテスト結果(エビデンスと呼ばれることが多い)を残して、確認が取れる状態にする必要がある。条件や状態の勘違いで誤っている場合もあるうえ、後で「あれはどうだったっけ?テスト項目にあったっけ?」という確認も取れないからだ。


顕在化しているバグがないことは高品質であるための条件である。しかし、顕在化しているバグがないだけで高品質であるとは言い切れない。
ここは実務上、このように勘違いしている方も多いようなので、敢えて日を改めて書いてみる。

こういう事を書くと、もの凄く叩かれる可能性はあるが、観点を変えるとこんな見方になってしまうという例として。

「すべての子供に公費で予防接種を受けられるよう働きかけている」団体がある。

この考え方自体にはあまり異論はない。「子供の健康を守る」という観点では必要な行為だろう。ただし、接種による事故が無い訳ではないので、それを防止する策も必要であるだろう。
しかし、この団体が、その働きかけによって受益者になるなら胡散臭さを感じてしまう。

これをとなえているのは医師会である。

予防接種を公費で行えば、対象者は当然ながら無償なので「受けておこう」となる。その診療報酬は窓口では不要だが、医療機関から公費負担者へ請求される。特に集客しなくても来院者数が増え、医療機関の売り上げに貢献できる、という仕組みになる。

もちろん、それにより重篤患者を減らす等の効果があり、医療現場の負担を軽減することで、本当に医療を必要としている方の受入を可能にし、より質の高い医療の提供を、ということも考慮しているとは思う。しかし反面、中には診療報酬の水増しなどを起こす医療関係者も居る。現在のところ、発覚しにく仕組みだからだ。診療報酬の請求を電子化するにも、本来は完全に終わっている時期のはずだが、まだあまり進んでいないのは、電子化されるとチェックが簡単になるため、不正をしている医師としては非常に困るものなので何かにつけて反対している、という話を医師から聞いたこともある。

そこまで崇高な意志があるのならということで、予防接種による診療報酬請求額を引き下げる、という「医療機関としての協力」もあって然るべきではないだろうか、と思う。


Visual Basic 6 でのプログラミング。
仕様追加でフォームを追加した。プログラミングのスタイルとしては、Formで起動させないで、Mainから起動させる。必要に応じてFormを表示させるようにしている。フォーム起動は単発ものならいいかもしれないが、複数の画面をコントロールする場合はどうも馴染めない。CでWindowsプログラミングをかじったことがあるからかもしれない。

さておき、フォームを作成。フォームはMVCでいうところのVであることもあり、イベントのキャッチと最小限のビジネスロジックに収める。Formはそのまま Show メソッドで開くことも可能だが、フォームを変数に定義し、Newでインスタンスを作成、初期処理のメソッドで初期値を与え、Showした後、後処理で結果を取得し、インスタンスを破棄する流れとしている。
(ちょっと分かりにくいよね。今度解説入れますか。)

実行すると、どうも挙動が変だ。ステップ実行するも、Showした後の処理もどんどん流れていく。exeを造作成してやっても同じ。どうやらモードレスで動いているような感じを受ける。
まさかと思いながら、Showメソッドをヘルプで確認する。デフォルトがどちら、というのは記載がなかったが、モードレスの説明が先にあった。ということは、おそらくモードレスがデフォルトなのだろう。
Showの際にモーダルとなるパラメータを渡して無事解決。Excelではモーダルがデフォルトなので勘違いしていただけかも知れない・・。