∑考=人

そして今日も考える。

品質水準とは何ぞや

今日は仕事をほっぽり出して、品質管理の研修に行ってきましたので、簡単にその内容でもまとめておきます。やっぱりソフトウェアなんてちゃんと動いてナンボのもんですからね。品質をいかに担保して、担保するために何をすべきなのか、というのは一つの学問になっているくらいです。

 

さて、そもそもソフトウェアにおける品質とは何なのか。品質というと、電化製品みたいな目に見えるモノに対して言いますよね。普段の生活の中で私たちは「日本の製品は品質が良い」みたいな言葉を安直に使っていますが、それって一体どういう時に使われるんでしょうか。

 

携帯電話を例にとって考えてみますかね。単純に形が整っていることについて品質が良いという人もいれば、カメラが綺麗な(解像度が高い)ことに対して品質が良いと考える人もいるでしょう。逆にiPhoneなんかだと、落とすとすぐ画面にヒビが入ってしまうことに対して品質が悪いと考える人もいると思います。こうやって列挙してみると、幅広い意味合いで使われている言葉です。

 

ソフトウェアの場合は、(お客さんの)要求事項を満たしていることが品質が良いと定義されています。おそらく、一般的な製品についても同等のことが言えるのでしょう。ISO9000という国際規格で定められています。

 

つまり、iPhoneの画面がすぐ割れること=品質が悪いということではなく、iPhoneという製品に求められる要求事項として、「高度1mから落としても操作に支障をきたす障害が発生しないこと」というものが含まれていなければ、別に品質上問題はない、ということになるのです。

 

ソフトウェアの場合では、例えば、中に記述されているソースコードが凄く読みにくかったり、無駄なソースが含まれていたら品質が悪そうな印象を受けますが、そのソフトウェアが提供するサービスがお客さんに求められた要求を満たしているとすれば品質の良いソフトウェアとなります。(厳密にはユーザ目線の品質と開発者目線の品質があるのですが、ユーザ目線の品質が良ければOK的な風潮があります。)

 

要するに”品質”という言葉は、あるべき姿(=要求事項)が定義された上でしか、意味を持たない言葉になっています。

 

さて。この品質ですが、どうやって実現していくのかが大切になってきます。入念に作れば良いという単純な話ではないんですね。ソフトにしてもハードにしても大体が実際に使ってみないとどうなっているかわかりません。設計なんて所詮想定でしかないですから。

 

なので、現場では実際に作ったものを動かしてみて検証します。いわゆる試験ですね。どんな仕事でもそうでしょう。

 

ソフトウェアの試験というのは実は結構大変です。ぶっちゃけシステムを作る以上に労力を必要とします。しばしば、見積額がとんでもない額になってしまうのも、試験工程にかかる工数が多分に含まれているからです。

 

また、システム開発において基本的に完璧な試験というのはできません。特に仕様ベースのブラックボックス試験などにおいては、規模が大きくなりがちで、全て条件の組み合わせパターンを試験することは不可能である場合がほとんどです。

 

なので、代表的なものだけを選ぶ、という方法に走らざるを得ないのですが、闇雲に代表的なものを抽出していくと、結局試験項目の数は膨大になってしまいます。そういうわけで、どんなプロジェクトにも”品質水準”という基準値が設けられています。

 

品質水準はザックリ言えば、「このぐらいの試験やっとけばええんちゃう?」「こんぐらいバグが出ればええんちゃう?」という値です。具体的には、ソースコードのStep数と、過去の類似プロジェクトの実績値から算出されます。

 

この品質水準値は、品質の妥当性を判断するため、すなわち品質管理のために用います。仮に、試験を100個やって、バグが10個ぐらい出ればいい、と予め決められていたとしましょう。

 

例えば、期間が足りず試験が50個しかできなかったら品質はちょっと悪いかもしれないな、と予想することができます。あるいは、試験を100個やったらバグが50個出た、となっても品質は悪いかもしれないと類推することができます。

 

では、100個試験をやってもバグが1つも出なかったらどうでしょう。この場合なら品質は凄く良い、と考えられそうなものですが、実は全く逆です。そもそも実施した試験の網羅性や観点が十分ではないと判断されることが多いです。

 

もちろん、実際に品質が良い場合もありますが、一般的には事前に設けられた品質水準値±数%の範囲内に収まっていないと何か問題があると判断します。ただ、品質水準値に収まっていても、品質が悪い場合もあります。。。

 

さらに言えば、品質水準値そのものがプロジェクト特性の違いなどによって妥当ではない場合もあります。みんなが口を揃えて、「あくまで目安だから」と言います。。。

 

なら、品質水準値とかいらなくね?

 

私はいつもそんなことを思っています。まぁこれは可監査性のための評価軸としてのみ有効です。

 

簡単な定量評価に頼らず、バグはしっかり定性的に分析しましょう。

 

n1dalap.hatenablog.com

広告を消すのにお金がかかる時代のサービス

スマホの無料ゲームアプリなんかをやっていると、必ず広告が表示される。それは常に画面上のどこかに表示されていたり、ある場面でボタンを押した瞬間に広告用の画面に切り替わったり、中にはいきなり動画がスタートするものもある。

 

特に小規模の会社や個人が制作しているものだと、それが鬱陶しい人のためにと、ちゃっかり”広告無し版”が数百円ぐらいで用意されていることが多い。未だにゲームアプリ業界がこういうビジネスのやり方をしているところを見ると、あんまり業界の未来としては明るくないように思う。参入障壁の低さから市場規模が上がっているように見えてるだけなんじゃないだろうか。

 

ともかく、昔であれば、広告などによって自分の知らない情報が手に入ることはありがたいことでもあったはずだ。しかしながら最近では、情報がないということはほとんどなく、適切な情報を見つけることが難しいほどに情報が世界に溢れている。

 

そんな世の中では、むしろ余計な情報をいかにそぎ落とすことができるか、に価値が置かれるようになったということだ。アマゾンのおすすめ商品も、見方を変えれば”おすすめでない”商品をそぎ落とした結果だと言える。

 

実際、私も余計な情報をそぎ落としたいと思うことがある。一番の例は郵便ポストに無造作に入れられるチラシだ。一週間も放置しておくと、パンパンになってしまっている。いつも全部まとめて捨ててしまいたい衝動に駆られるが、中には大切な書類も含まれているので、捨てるわけにはいけない。結局、全てのチラシに目を通して一つ一つ選別していくしかない。これは人生において3番目くらいに無価値な時間だと本気で思う。

 

これは、ちょっとしたビジネスチャンスだと私は思っている。少なくとも、ポストにチラシが入れられて迷惑だと感じている人はたくさんいるはずだ。しかし実際には、個人が「チラシお断り」の貼り紙をするぐらいの対策しか施されていないのが現状である。

 

また、ITの世界では迷惑メールのフィルタリング機能など、十分ではないにせよ当たり前に実装されている。一方で、物理世界の郵便ポストでは何の制御も行われていない。これは奇妙だと思わないだろうか。

 

もちろん、今の技術では難しいのかもしれない。今の家に付いているごく普通の郵便受けでそんな制御ができるはずもない。そもそも、郵便ポストが自動で必要な書類だけを選別するためのスキーム自体が存在しない。

 

しかし、ここにITの要素が加えれば、やってできないことはないと思う。例えば今の技術レベルでも、郵便ポストの投入口にスキャナを搭載すれば、文字列あるいは画像を認識するまでは実現可能だ。

 

郵便ポスト自体が住所に紐づくIPアドレスを持ち、その住所に紐づく家主のメールアドレスを記憶しておけば、スキャンした瞬間に画像を添付して通知を送ることもできる。あるいはWebインタフェースで郵便ポストに直接アクセスして、今そのポストに入っている書類一覧を画像として確認できる、でも良い。「あー今あるものは全部要らないから一気に捨てよ」みたいなことは可能だ。

 

もっと技術レベルを上げて、例えばAIが組み込まれれば、文字列や画像の中から家主にとって重要度の高いものと低いものに選別し、重要度の低いものについては処分することもできるようになる可能性だってある。外から家電を操作できるスマートハウスよりも個人的にはいいと思う。

 

まぁそもそも、昭和の価値観で生きてる企業が広告での営業活動をやめてくれれば済むんだが。