ITシステムの品質とは何か

ITシステムの品質はどうやって担保するのでしょうか。色々な考え方があると思いますが、少なくとも某大手企業の考え方や自身の考えを含めて考察をまとめます。
前提:ITシステムってどんなもの?
ITシステムってどんなものでしょうか。実態としてはサーバやルータ等の集まりですが、ユーザから見ると形のないものです。
ウェブインターフェース等で見えはしますが、裏でどう動いているかは知りません。つまり、ITシステムを提供するという事は、モノを提供するのではなく、サービスを提供するという事です。
そして、ほとんどの場合、ユーザが求めるアウトプットが決まっていて、それが正しいことが前提です。「1+1」と入れると「2」と返すと決まっています。このような前提で、どうやって品質が担保されるのでしょうか。「2」と返さないシステムは品質も何も不良品ですね。
どちらが品質が良いと思いますか
ここにシステムAとBがあるとします。「238×10」という計算式を入力した際に、それぞれ以下のように計算します。
システムA:10倍なので238に0をひとつ足して2380
システムB:10倍なので238を10回足し算して2380
どちらが正しくて、どちらがより品質の高い計算ですか?
答えは「分からない」です。返り値2380はどちらも正しく、ユーザの求める答えそのものです。処理時間が違うかも知れませんがそれは品質とはまた別ですね。
良い機器なら品質が高いのか
この記事の流れで答えはNoだとすぐに気付かれるかと思いますが、答えはNoです。
機器のスペックが高くても、設計やアルゴリズムの品質が悪いと全体のシステムとしての品質は低いままです。
先ほどのシステムAとBの例で、システムAはスパコンを使っていて、システムBがWindows98を使ってたとします。どちらが計算の品質が良いですか?と言っているのと同じですね。
ITシステムの品質はどう計測するか
これって無理なんじゃないかと私は個人的には思います。ITシステムはユーザごとにカスタマイズして構築されるし、同じシステムは存在しません。
例えば、世に溢れているペンだと、耐障害性、耐熱性、インクの何%が実際に書けるか、等基準を設けやすいですが、ITシステムの場合は、同様の目的の製品であっても機能がイコールではないですし、前述の通り設計やアルゴリズムの品質が大切になってきます。
設計やアルゴリズムは人間の頭で考えられるものですから測定不可です。脳みそのスペックは計測不能ですからね。IQ200の初心者とIQ100の経験者だったら後者の方が品質が高いでしょうし。
ITシステムの品質はいかに担保される努力がされたか
努力と言う言葉を使うとプロフェッショナルぽく聞こえませんが、その通りだと思います。
設計にあたっていかに考慮されたか、レビューされたか、試験を行ったか、です。そしてそれを証明するものが設計書、試験仕様書、試験結果、バグの潰しこみのプロセス(文書として)です。
明確に品質を提示できないからこそ、品質が高くなるように(問題が起こらないように)、どれだけ念入りに丁寧に構築されたかを示す必要があります。
余談
時々ドキュメントなんていらないから構築してよ、なんてお客さんがいますが、それはつまり「品質なんて気にしないからとりあえず作ってよ」と同義です。
ドキュメントがないという事は、前述の通り品質の担保もできないし、なにかトラブルが起こった時にどうやって構築されたか分からないのですごく困りますね。